Monday, May 30, 2005

Telirati Newsletter #53

In this dispatch, I give a very postive review to .NET, which was, at the time, the best archiecture for multi-tier Web applications, and which, if Microsoft had executed on the potential to use .NET to tie desktops to Web services, could have enabled Microsft to dominate Web applications.

Four years later, Microsoft still can't seem to unholster the .NET gun, which could make Google's JavaScript hacks look pathetic compared to the level of desktop integration that mail, calendars, and search that employed .NET could provide.

Telirati Newsletter #53: What C#, .Net, SOAP, and NGWS Really Means

Microsoft holds some kind of world record for inept naming schemes for what is really pretty simple stuff. The whole COM/ActiveX nomenclature swamp, for example. It all refers to various levels of interface conventions in the COM distributed component system. (And you thought DCOM was the distributed version, eh?) That’s it. Now that you understand that, be assured the Microsoft nomenclatura have been working overtime to bring you the next deluge of impenetrable labels. Which is why you should turn to your trusted chronicler for the Magic Decoder Ring:

C#: A computer language. Who needs a new one? You do, trust me. And C# is a good one. As good as Visual J++, but without the lawsuits. Better than Visual C++, which is encrusted with macros and declaration obligatos that impede the coder and obscure the result from others understanding it. Better than Visual Basic, as much as Java is better, adding strong typing and removing the legacy compatibility that invites mistakes through lack of historical awareness.

.Net: It means many things (and that’s Microsoft for ‘ya). But the one we’ll focus on is that it means a common set of class libraries for all languages that enable creation of a desktop user interface, access to databases, access to other important Windows APIs, as well as a common set of class libraries and architecture for creating Web server applications. It may also mean support for Windows code associated with Web pages that enables code to “animate” Web pages behind the scenes. This aspect of .Net means Microsoft has finally unified the class libraries, and, implicitly (when you consider support for Java-style reflection and COM in the class libraries), the execution environment, for all languages for Windows programming. Halleluiah! But this is more than convenience for programmers: it represents the recognition that the class library, and not the API, is the platform. Pop-quiz for would be Microsoft-busters: Is .Net part of the OS, or a common library used by applications? Who maintains it? And who directs the architectural direction? Bzzzt, time’s up, thank you for playing, Judge Jackson.

NGWS: Next Generation Windows Services. This is stuff built using .Net that makes building Web sites easy. One of the most important aspects of it is that it enables easy outsourcing of Web site functions, like credit card processing, user identity management, chat support, call-center integration, etc. It represents the productization of distributed component interfaces.

SOAP: A common underlying protocol for distributed component (object) systems. Whew! And you thought this was going to be a simple newsletter. Again, trust me, you need it. The old way of making COM talk to CORBA or other distributed component systems involved gateways that were supposed to translate interactions. These presented scalability bottlenecks. They were always implemented by COM bigots, or CORBA bigots, or some other bigot who thought the other guys’ architectures were secondary. And, though I’m sure those who toiled in the gateway vineyards might differ, they never worked as well as one would want. SOAP puts interoperation where it belongs: in a common, standardized, Web-oriented protocol based on XML. It makes finding out about distributed component interfaces an XML application. And it makes software that does not employ distributed component systems, such as legacy database and transaction processing systems, able to play in a distributed object world through the use of XML.

What does it all add up to? It adds up to the fact that Microsoft gets it. It will be easier to make architecturally sophisticated and interdependent Web sites with Windows programming tools, Windows 2000 servers, and services from Windows-oriented B2B sites than with any other family of tools, OSs, and Web services.

Yikes! Does this mean Microsoft has a good shot at being the dominant force in Web-based systems? Does this mean that the loosely integrated Oracle/Solaris/Java way of making big Web systems might be overwhelmed? It sure does. Has Microsoft behaved virtuously? It has: SOAP is a benefit to all, though it does have the effect of bringing into relief the fact that COM is by far the most widely deployed distributed component system (marketing studies indicating CORBA and COM are in some kind of parity only take into account large IT projects, and ignore the fact that COM is vital to the operation of every Windows desktop).

Does it mean Windows CE will topple Palm with a startling burst of Web-oriented distributed applications that take advantage of the multi-platform execution environment in .Net? Ah… no. Not real soon anyway. That will have to wait for the deployment of real mobile wireless Web access at attractive prices and I don’t mean WAP.

One thing to understand is that while Microsoft has shipped some dodgy stuff, in the form of an over ambitious windowing environment built on top of a creaky DOS foundation, Microsoft has generally prevailed on the merits. Even Windows 95 was better than Apple’s development torpor at the time, not to mention Sun’s desktop user interface strategy. Oh, sorry, they didn’t have one. Allegations that Microsoft out-markets its competitors will have to come up with an explanation for the goofy naming conventions: perhaps a New World Order conspiracy to lull the masses into paying no attention to Microsoft’s plans for world domination. Well the Orbiting Mind Control Satellites are powering-up again, this time to turn all those Visual Basic zombies into tools of Web domination.

More seriously, those who fail to notice that Windows 2000 is very nice product indeed, and who fail to see the parallels between Microsoft having gobbled up the desktop, from school-child’s learning toy to engineer’s CAD station, based on products that are cheaper and easier to buy and use, will fail to see that complex multi-tier interconnected Web sites would benefit from the same formula. Sun won’t vanish tomorrow, but if Sun does not come up with a direct response to the PC server challenge, Sun will soon enough be marginalized, just as minicomputers and mainframes have been. And those who think this is a bad thing, and who would step up their efforts to crush Microsoft with the tools of state, will only deny the economy of the benefit of a significant productivity gain. If Microsoft’s potential to make Web development more productive is considered in the same light as a new vaccine or a more-efficient electric generator, keeping Microsoft down qualifies as equivalent to cutting off our nose to spite our face.

Copyright 2000 Zigurd Mednieks.