At the Microsoft Professional Developers Conference in July, Chief Software Architect Bill Gates complained that the recent Microsoft.NET announcement would not get good coverage in the press because it was all about infrastructure details such as garbage collectors and the like. Then he quickly amended his own projection, saying that Larry Ellison's recent interest in garbage might provoke more press coverage. But just to be sure, Microsoft brought financial analysts out to Redmond at the end of July for one more briefing on Microsoft.NET (Forum 2000 and PDC having previously provided the grand overview and the technical details in late June and early July, respectively). This time Microsoft opened the kimono a little more and showed glimpses of how the next version of the Office Suite would be tied into Microsoft.NET.
Now the fact that Microsoft stock was drifting downward toward new yearly lows that could affect Microsoft employee options valuations this had nothing to do with the timing of the briefing. Also the fact that the FASB will be requiring repricing of stock options to appear on a company's financial statements absolutely held no sway over the timing of the briefing. But it is notable that during the two days around the briefing, technology stock prices were down over five percent, but Microsoft's stock saw small advances both days. Perhaps there are some hidden gems in those Microsoft.NET garbage details.
Four Opinions in One
The Microsoft.NET announcement actually breaks out into four parts something old, something new, something borrowed, and something blue. The old is the supposedly "new" .NET Enterprise Servers, some components of which are rendered stale, if not obsolete, by the very ambitious .NET Framework. However, the .NET Enterprise Servers do bring renewed enterprise-caliber credibility to Microsoft, which I will explore in a moment.
The something new in Microsoft.NET is Web Services comprised of .NET Building Block Services, plus proprietary and third party Web Services. Web Services are again dependent on the new .NET Framework linked to a whole range of .NET Building Block Services such as calendaring, messaging, authentication, and validation to be provided by Microsoft on a Internet-wide basis. In addition, there is a .NET Device component that allows Web Services to communicate with any new handheld, cell phone, or other so-called Web Appliance in as transparent a fashion as possible. However, .NET Devices is the least defined of the Microsoft.NET components. Similarly, .NET is still evolving, making it difficult to get an exact profile of the .NET Building Block Services and details of when they will become available, what the charges for them will be, and how they fit into the Web Services development environment.
The something borrowed in .NET is the aforementioned .NET Framework. In a tour de force of Microsoft-type innovation, the company has embraced and extended Sun's Java blueprint in some technically astute ways. First, Microsoft engineers have borrowed the strengths of Java and created a new, and yes improved, programming language called C# (C sharp). C# retains most of the simplicity, security, and ease of development of Java, borrowing most of its keywords and much of its syntax directly from Java. But C# improves on Java's lack of interoperability with other languages and components. C# also adds much better compile-time manageability, plus a half dozen other improvements large and small.
But there are some downsides. C# reopens the pointer and memory management can of worms and currently lacks Java's cross-platform portability, several deployment modes, and comprehensive API. These shortcomings tend to cause some analysts interviewed at the PDC to dismiss C# as either too little or too late or both. Sun should be so lucky.
Another aspect of Java borrowed by Microsoft is the Java Virtual Machine (JVM). Microsoft's counterpart, the Common Language Runtime (CLR) is the new executable environment for all Microsoft programming and scripting languages not just C#. This is one innovation CLR has over the JVM. Now, Microsoft emphasizes that CLR is not an interpreter like the JVM. However, just like the JVM, the CLR provides garbage collection services, type validation, assignment checking, plus a host of optional security and exception-handling services (the second value-add of CLR over the JVM). So having endured the slings and arrows of outrageous jibes from Sun's CEO Scott McNealy, Bill Gates has his troops pay Sun the ultimate IT compliment imitate and extend their Java system for Microsoft's own purposes. The plan has a luster of brilliance, but first one has to examine the Blue in .NET.
The Blue in .NET is Microsoft's getting IBM to co-sponsor the new SOAP extensions to XML before the Internet standards body, W3C. SOAP along with SCL and XLANG (Microsoft is alone on these latter two, so far) are the third part of the .NET Framework. XML has become the darling technology of the B2B and Internet set because of its simple yet transparent data interchange capabilities. SOAP adds transparent method-call capabilities to the XML resume. Even better, XML and SOAP are cross platform, running on Windows, Unix, Linux, OS/390, and soon dozens of other platforms. This fills a yawning gap that Microsoft's own distributed processing technologies, COM and DCOM, have failed to fill. And while Microsoft touts IBM co-support of its move to complete and open XML standards, Microsoft's own Internet Explorer fails yet again to meet Microsoft's three-year-old pledge to implement comprehensively other W3C standards like HTML 4.0, DOM, and CSS. A press type at PDC asked, "Is this IBM snookered again á la OS2 and Windows?"
The Bluster in .NET
.NET is not pure gold to Microsoft, because it creates three major problems. First, the critical technology for .NET is still under development. Visual Studio.NET, which unleashes the programming capabilities for third-party and user development of .NET systems, is six to nine months from delivery. As noted previously, the .NET Building Block Services and .NET Devices software are also still being refined. The result is that Internet developers, all of whom need to deliver yesterday, are being asked to wait or use beta, alpha, and partial release software in the interim. Not good.
Even worse, .NET renders obsolete such Enterprise Servers as Commerce Server 2000, and BizTalk 2000 prematurely ages to varying degrees all the other servers even before they get introduced. Why invest in Commerce Server when the underlying technology will be changing (and substantially) in six to nine months? Ditto for BizTalk. Because Commerce Server is a follow on, it will be introduced in two or three months so existing customers can get technology updates and a bit of a preview of what's to come. On the other hand, BizTalk is being delayed six to nine months to coincide with the availability of Visual Studio.NET (its key maintenance and support software), plus better-defined .NET Building Block and Device services. This rapid obsolescence could not come at a more inopportune time because the .NET Enterprise Servers, particularly SQL Server 2000 and Exchange 2000, will be delivering enterprise-caliber reliability, scalability, and/or security improvements.
But the third problem is perhaps the most serious. The rate of change in the IT business is so high that companies are deliberately going slow on enterprise technology updates. IBM, Oracle, Novell and other software vendors along with Microsoft have all experienced this phenomenon the rate of adoption of their latest technology is slower than in previous generations. Despite financial incentives and compelling technical features, enterprise software like server operating systems, databases, web application servers, and others get adopted more slowly. Partially this is due to the complexity of current enterprise software, which must be not only client/server-, but Internet-ready. Conversion can be costly and time consuming because it effects all aspects of an organization's IT operations; so organizations tend to freeze one or two of the software technologies say the OS and database while changing the web application server. Yet Microsoft is in effect asking users to change all at once with its wave of seven new .NET Enterprise Servers, plus Windows 2000. Second, the shortage of trained IT personnel is worsened by the rapid change in hardware and software technologies. .NET represents a major programming change. Bill Gates rightly described it as "bet the business"; but that applies equally as well to programmers from Rimouski to L.A. it's "bet the career." To organizations large and small, it can also be a case of survival against the dot.com invasion. So more than ever before, enterprises will be adopting new software at a rate that might not coincide with a company's EPS growth targets.
The Luster in .NET
Despite these provisos, there are some flashes of luster in the .NET tailings. First, as noted above, the .NET Enterprise Servers do bring enterprise-caliber reliability, scalability, and security to the table. Until now, Microsoft has relied on better price/performance compared to Unix, more third party applications with legions of developers, and better usability to carry the day. With the .NET Enterprise Servers, reliability, scalability, and security are the selling points. For example, SQL Server 2000 now bests archrival Oracle for the first time in the industry standard TPC database benchmarks by a factor of two while improving reliability and security. Likewise, Exchange 2000 will shore up the scalability and reliability of Microsoft's mail and messaging server while adding impressive new features. Similar arguments can be made for the other five .NET Enterprise Servers.
However, the most glaring hole in Microsoft's Enterprise offerings has been interoperability and security. As previously noted, COM and DCOM despite the efforts of Microsoft and a host of third party developers has not been ported to Unix and other OSes in a timely and comprehensive fashion (a mirror reflection of Microsoft's problems with implementing Internet standards). The result is that in the Internet era where software has to be promiscuous willing and able to interface with other enterprise systems and components on any other organization's computing platform Microsoft's COM and DCOM runs well behind the proven interoperability of CORBA, Java RMI, and other vendors' enterprise software.
In the area of security, Microsoft has been in the position of regularly wiping egg off its face, with hackers and virus attacks such as the Melissa Virus and ILOVEYOU taking advantage of security holes in Microsoft's OS and programming and scripting languages. In addition, IT administrators are not enamored of such recurring Microsoft reliability and security problems as .DLL hell, registry dysfunction and high failure rates. .NET Framework with C# plus XML and the Common Language Runtime are designed to attack and eliminate these problems. C# plus XML with its SOAP and SCL extensions certainly do promise to make Microsoft programs much more interoperable and secure. CLR is most interesting because it brings scripting languages, the biggest security hole in Microsoft's software platform, under the strict control of a central executable environment. CLR will not only reduce scripting security risks but also boost their runtime performance with a just-in-time compiler available through the CLR to boost runtime performance something not available to most other scripting languages. CLR reduces security vulnerability by allowing a hierarchy of security options of greater safety to be applied depending on the executable's intended usage. The result is greater security while reducing chances of .DLL hell or inappropriate registry settings. At the same time, Microsoft programs and scripts become more interoperable because they share the same managed executable environment with its highly interlinkable features.
In fact, Microsoft says that it intends to port C# and CLR to other Real Time Operating System (RTOS) environments. Now here comes the real shine in .NET. When repeatedly asked what prevents C# and CLR being ported to any operating system (say Unix or Linux), often with wry smiles Microsoft officials, often with wry smiles, said "nothing." This means the .NET Framework of C# and CLR makes Microsoft software not only highly interoperable but also portable. So if Linux takes off, Microsoft software will be there. If some .NET appliance software/hardware combination skyrockets Microsoft software can quickly move there. And if the DOJ splits up Microsoft, C# and some portions of CLR are already pledged to be standardized through the European organization, ECMA. So the two Baby Bills would have free access to the same programming language and development base; and all this with the help of the shining example of Sun's Java.
Built to Scale
Now the Microsoft.NET announcement may have been a garbage detail; but as can be seen, there is some real brilliance in Microsoft's strategy. During its current antitrust legal fiasco and inevitable loss of executive talent to dot.com start-ups, some pundits questioned whether Microsoft had lost its technical savvy. The .NET Framework alone should put that argument to rest. In software, generally, and in enterprise software, particularly, Microsoft has only two possible rivals not Computer Associates or Novell or Oracle or SAP or SAS or Sybase just the erstwhile tag team of IBM and Sun. These two alone have the requisite basket of operating system, office suite, programming language, database (Sun is out here) and web application service software that is necessary to match Microsoft's potent bundling/suite capabilities. Just as a refresher, Microsoft Office Suite knocked off Lotus, Word Perfect and a host of sometimes-functionally better desktop application software vendors. Likewise, Visual Studio has reduced the once-vibrant programming and development-tools market to a shadow of its former vigor. And Back Office Suite is doing the same in the server operations software market. But in the enterprise software market, Microsoft has always conceded some combination of interoperability, portability, reliability, scalability and/or security to its rivals. With Microsoft.NET, it is serving notice No More.
Jacques Surveyer is a writer, web developer and mentor; he can be reached at [email protected]