A lot of my work – both systemconsulting and software architecture/development -relies upon Microsoft technologies: Whether it’sre-engineering a legacy system to take advantage of new SQL Server features for performance or functionality,overhauling a network infrastructure to leverage ActiveDirectoryand the extensive platform security functionality, or developing aperformant and scalable time-tracking application for an enterpriseclient, Microsoft is often a very important part of theequation.
Partly due to specialization (it’s the tools we target), coupledwith simply being the best choice in a lot of scenarios in ourtarget market, we heavily rely on the Microsoft platform forourselves and our customers. As a professional I can say withconfidence that the platform is a secure, high performance,extremely scalable, robust one that compares very favourablyagainst all competitors.
That wasn’t always an accurate statement, though. Indeed, it isremarkable looking at the history of Microsoft and learning fromtheir success: On paper it really is hard to believe that Microsoftmaintained the market dominance that they did, and it’s amazingthat competitors couldn’t capitalize on Microsoft’s late entranceinto a lot of markets, and their missteps in others.
Was Microsoft a master of timing, holding off on technologiesand advances until the perfect time, or were they simply thebeneficiary of a captive audience that was willing to wait howeverlong Microsoft took, blind to the available alternatives?
I’ll provide a couple of examples that I recall marvelling at asthey occurred- these are hardly exhaustive, however I think it’s anice sampling.
- Microsoft core offerings were crippled by real/virtual modelimits until long after the 386 and 486 were prevalent. In anutshell, this made software development a lot less pleasant, andthe resulting applications more limited and unstable – Iremember being enormously unhappy learning real-mode assembly onthe x86 after dealing with the elegant, 32-bit flat world ofMotorola 68000 assembly. It seemed so primitive that it stillexisted, or that a software company continued to rely upon it longafter it was obsolete and irrelevant in hardware.
- Microsoft’s “operating system” for years was simply the DOScommand line, and a set of utilities and software interrupthandlers. While Mac users were busy with a rich graphical userinterface, we in the DOS world were anxiously awaiting fantasticnew features like DELTREE, and maybe a new version of EMM386 to deal with realmode nonsense. It amazes me now to recall actually going to a storeand paying real money for a stack of 3 1/2″ DOS 5 upgrade disks…6years after I was programming applications on a richer4MB platform, here I was excited that himem.sys could freeup some of the critical 640KB of low memory.
- Microsoft toyed with windowing systems, finally creatingsomething credible and successful in 1990 (Windows 3.0). Incontrast a variety of competitors had fully-integrated, rich,usable, robust Windowing systems many years before – The 1984Apple Macbeing an obvious example, along with the 1985 AtariST and Amiga…evenoptions on the Commodore64. I was an Atari ST fanatic in those days, and I marvelled athow primitive the PC world remained even years later.
- It wasn’t until Windows 95/NT that memory protection wasutilized to avoid processes stomping on each other’s memory. Again,many, many years after most competitors had implemented this basicfunctionality. Instead we dealt with the normal occurence ofmisbehaving apps taking down the entire system as a fact oflife.
- It wasn’t until Windows 95/NT that preemptivemultitasking was available in Windows. Prior to this a singlemisbehaving application could capture the CPU’s attention and neverlet it go (never yielding), which was a fairly typical event. TheAmiga featured pre-emptive multitasking a decade earlier.
- Microsoft released Windows 95 without a web browser, remarkablyenough, finally releasing a barely changed version of the NCSA’s Mosaic in the Plus!pack.
- Microsoft 95 was pretty much a security nightmare. Not only wasits software far-from-ready to be connected on the public internet- I remember being the unhappy victims of winnuke and friends whenI made people unhappy on IRC (you can’t please all of the peopleall of the time), it also had no real file/object security ofconsequence. While NT was built as a “multi-user” system from asecurity and kernel perspective, many of the shell and utilitieswere user unaware, undermining this capability.
- Microsoft’s web technologies were far behind the times untilBill Gates’ famous speech that changed their direction, reacting toNetscape’s lead rather than charting the course. Internet Explorerquickly ramped up and became the dominant web platform – until itbecame so powerful that the team was disbanded.
- Alternative 3D rendering APIs (Glide and OpenGL) led the way inan area where eventually DirectX would emerge dominant.
I recall during my early courtship with the PCsimply marvelling at how incredibly obsolete theplatform seemed to be compared to competitors like the Amiga andthe Mac introduced years earlier – from graphicscapabilities to software to hardware: Everything about itseemed so backwards in comparison to the superior alternatives, yetcustomers stuck with it. This was the platform that Microsoft wedthemselves to, so surely they would suffer as well, right?
Microsoft’s insistence on legacy compatibility led to a platformthat moved much slower than competitors – Competitors that had theliberty of just tossing it all out and starting from scratch withwhatever whizz-bang feature the newest chips offered. Maybe theycould run super-stable and super-fast, and offer the developers anelegant platform upon which to perform their magic…but could itrun CommanderKeen 1 through 3 Could it run that ancient text databaseapp?
Not All Negatives
Of course it’s easy to focus on the deficiencies and imaginethat they wrote the whole story, but in reality the situation wasmuch more complex. Windows, for instance, pioneered widely-usedvideo card acceleration (I still remember that shiny new DiamondSpeedstar 24x. 24-bit graphics, coupled with hardware accelerationof 3D primitives. It was good times running those benchmarks. Ofcourse the Amiga fanatics will point out that it supported hardwareacceleration, just as the STe featured a hardware blitter chip, butthe interaction between acceleration and the GDI in Windows reallyset the bar), and Microsoft’s push greatly accelerated the adoptionof optical media. Windows For Workgroups brought inexpensivenetworking to a lot of shops (NetBEUI was imperfect, but it was aneasy transition to TCP/IP), and Windows in general represented a”good enough” platform for a lot of users. Internet Explorer,for all of its ActiveX “holes” and CSS quirks introduced the richweb model that we rely upon today.
En Route to 64-bit x86
This all comes to mind as the x86-64 transitionaccelerates: More and more users are starting to switch to 64-bitcapable systems, and the 2/4GB limits of our machines is actuallybecoming a rational limit among desktop users: Everyday users areshouldered against a limit that seemed almost theoretically largejust a few short years ago.
Of course Microsoft has been releasing incomplete 64-bit optionsfor years (for instance you could get a 64-bit version of SQLServer 2000 for the Itanium platform, barring a laundry list ofexclusions and limitations, and way back with NT 3.1 Microsoftsupported 64-bit processors, albeit in 32-bit mode). Now that64-bit support is finally becoming a critical factor, Microsoft hasa wide gauntlet of support ready, and is finally ready todeliver.
Once again when the market really cares, Microsoft is ready. Foryears some have been talking about the advantage of variousoperating systems, such as Linux, being availabile on cutting edgeprocessors and 64-bit platforms. For years that has been paraded asan advantage to customers who continued to run their platform on astandard old x86-32 foundation. Yet now that those limits are beingreached, and the platform needs to accommodate new levels ofcapability and performance, Microsoft is ready. Another deficiencyovercome.
Looking at the platform now – the stability, security, andfeature set of Windows 2003, a lot of it already existing in XP -it really does seem like a tremendous window of opportunity for thecompetition has passed: What used to be a crop full of delectablelow hanging fruit is now a well protected enclave featuring armedguards.
If competitors couldn’t make inroads before, how do they have achance now If Linux couldn’t capture the desktop market against amonstrosity like Windows Me!, what chance does it really haveagainst XP?
The most obvious answer is web applications – render theoperating system irrelevant and you don’t really have tocompete.