Microsoft gets a lot of flak for its Windows operating system deficiencies, and until .NET came along, for its punishingly tough programming interface. Some of these criticizms are deserved, but I have a different take on Windows. If you were one of the fortunate ones programming in the late early 80’s, you would have been confronted with a dazzling array of computer platforms. Similarities ended at the the microprocessor. Z80-based machines ran CP/M, 6502 ran dozens of firmware-based ‘OS’s”, etc.
What Microsoft Windows provided was a common programming interface for developers, who could from their basement’s write applications that could reach a broad audience of users- each with an individually customized computer system. Each computer system, potentially sold by a different vendor. The screens could be monochrome, EGA, VGA, and printers could range from dot-matrix to laser printers and plotters. Microsoft’s NT futher extended the reach of independent software developers onto corporate desktops and later into datacenters.
Azure promises to extend the reach of developers once again- this time to a worldwide Internet audience. While it is a common marketing device by industry professionals to write about Azure providing developers with the tools to write the next FaceBook or MySpace, this is mostly true. It is not that Azure provides storage or application components that you would have access to in typical .NET, Ruby, Python or Java environments. While these new Azure services are open to developers of any language preference, its’promise lies availability in the ability to scale on demand- to meet demand.