I was a Mac when Apple was beleaguered. Those were the days when Microsoft was in ascendancy, this new Blackberry thing was cool and Google was just a search engine. It’s traditional, and expected, for us Mac people to outright disparage Microsoft and all its products as things that suck. But the reality is that Microsoft has made some pretty amazing products in spite of its size, bureaucracy and inertia. These are some of the things I think they did just right.
.Net, up to v3.0
The Java programming language launched in 1995 and took the world by storm. It was easy to program in, ran everywhere, and was adopted by Microsoft’s core corporate customers in droves, especially on the server side. By 2000, the adoption of Java was complete, everyone used it. But Java was not perfect. Execution speeds were slow until Just-In-Time compilers came along. And the libraries that came with it changed so often that it was hard to upgrade code between versions (remember AWT vs Swing).
The Microsoft response to Java was .Net, and the initial versions, from 1.0 through 1.1 and 2.0 were just plain brilliant. They took the best features of Java, the name spaces, the c-like syntax, the virtual machine, and replaced the worst features, boxing and unboxing, and some unusual verbosity and released C# on the .Net runtime. But the biggest win was the .Net libraries. Microsoft had realized that a language on its own was not good enough, and a fast runtime was still not good enough. So they created the .Net libraries. In my correct opinion, the quality and consistency of the .Net libraries that shipped with the early versions of .Net were the best product ever made my Microsoft. They were clear, consistent, reliable, easy to use and fast enough.
Writing code in .Net was a dream, especially for the corporate developer. Productivity was high, performance was amazing, everybody was happy. There was always a library for that, the one way to do things, and the 1.1 and 2.0 versions were easy upgrades.
And then they blew it in .Net 3.0 and later by replacing the GUI libraries with WPF and bloating it with Linc. A fast, lean, well balanced language, runtime and library set bloated into a slow, complex and confusing mess, just like Java is today.
Word, 6.0 for Windows, and the 2004 version for Mac
I started using MS Word back in 1988 on an IBM AT when MS-DOS was the operating system and Wordperfect was just about to take over from WordStar. Most old Word hands would argue that Word for Windows version 6 was the best edition ever, but in Mac land, the 2004 version was the best.
These older versions of Word had all the great features we take for granted in a modern word processor, from style and font support to spell checking and background printing. They were fast, reliable and easy to use. And the files produced where readable by everyone.
In the case of Word 6.0, it was the last based off the old MS-DOS code base, which had been optimized for low memory and high speed. After that, Microsoft switched to the Word for Windows code base and the bloating and slow downs began.
In Mac land, however, Word languished behind the Windows versions for years. The Mac BU worked tirelessly and in 1998 they released a version that could read and write the Word for Windows 97 format. They then spent the next 6 years working on this code base, culminating in Word 2004, the last pre-ribbon release. And it was perfect. It had all the features of the Windows version, yet remained fast and reliable, and still felt very Mac-like. These days, most publishers still prefer document delivery in Word 2004 format.
SQL Server 2000
In one of its smartest decisions, Microsoft determined they needed a database server and picked up Sybase back in the late 1980’s. They then spent the rest of the 1990’s turning this already excellent database into an even better one. This culminated in the SQL Server 2000 edition, the last with the old Sybase code in it. They made installation easy, the database bulletproof, and query optimization and performance are legendary. And when they added 64-bit in 2003 to the same code-base, very large databases were also possible.
And then they blew it with 2005, by trying to make a database server do too many things, such as XML, reporting, data transformation and OLAP. It went from a fast product that did database well into a slow product that did everything mediocre. Interestingly enough, MYSQL and PostgreSQL these days are about as good as SQL Server 2000 was, and all they do is database.
Before Visual Studio, the best IDE’s were made by a company called Borland. You may remember them as the gang behind Turbo Pascal (later Delphi). But developing for Windows was a painful process. Then, in 1997, Microsoft took the Office bundling idea and applied it to it’s IDE and Visual Studio was born. They bundled all their programming languages and compilers into a language agnostic environment that took care of everything. No more
make files to manage, integrated documentation, source code highlighting and Intellisense. Software development just became easier.
In the years that followed, and with the arrival of .Net, Visual Studio grew and grew into a better and better product. By the time Visual Studio 2005 came out, it was by far the best IDE ever made. I think the key to Visual Studio’s success is that it handled all the complexity of build management, multi-language integration and language feature creep so well that developers could just roll on up to the new version with ease. And it’s performance never seemed to suffer. The 2005 version is proof that Microsoft can and does make hugely complex products with massive feature sets that are still accessible and easy to use. No matter what the Eclipse or Xcode people say, Visual Studio 2005 is the best IDE ever.
For graybeards like me, UNIX was the operating system we learned on and still use as it underpins our beloved Macs. But did you know that not only did Microsoft make their own variant of UNIX back in the day, but they ran their entire organization on it for years and years after they stopped selling it.
That version of UNIX was called Xenix and I ran it most of my university years (when not using Minix or MS-DOS). It came on a thick stack of 5 ¼" floppy disks, and it took ages to install because the files needed were distributed based on disk limitations and not on when they were needed by the installer scripts. But it was brilliant. It worked great on the early 80286 systems, using extended memory (>640kb) and had all the UNIX System V tools needed. And then they lost interest and sold it to SCO. Too bad, I think this was the best operating system ever made by Microsoft. Had they gone with Xenix as the underpinning for NT, there may not be an OS X today.
Microsoft Security Essentials
Of their modern tools, one stands out to me. Microsoft has figured out how to do anti-virus and anti-malware product without the concomitant slowdowns and memory hogging that all other similar products exhibit. I used the Norton suite in my old company, and the performance hit and maintenance hassles were legendary. With Microsoft Security Essentials, these seem to go away. And best of all, its free.
There are a few more Microsoft products I’d like to mention that stood out, but we not good enough to make them suck-free. Microsoft Access, their personal database product, was excellent in that it enabled millions of people to gain access to database and data storage without needing a server or fighting the odd FileMaker paged interface. Visual Basic introduced millions of people to programming, whether for applications or Office scripting, even though the language sucks and the programming practices it engenders suck more. And MS-DOS 5.5 was the best version of DOS before Microsoft moved us all into the GUI world.
As an old Mac user, I will continue to deride Microsoft for its current product behaviors, bloat, complexity and hassle factors. But I do not forget that they have made some of the best software products in their class, and there is always hope that they will do it again. They have the talent and the chops for it. But it’s a small hope. A really tiny hope. Minuscule really.