  |
Originally appeared in MSI Magazine
August 1, 2000
Grudge Match
Current troubles with the Dept. of Justice notwithstanding, Microsoft is boasting that competition is a good thing. While the notion might seem laughable for desktop operating systems and office suites, third parties like Citrix and Symantec have carved out credible markets competing with some of Windows bundled features.
It could be argued, of course, that competition isnt such a good thing when the effect is to divide the opposition. Using that logic, Microsoft killed UNIX and X Windows as desktop alternatives because of divisions in the UNIX camp. That argument holds little water since UNIX was never as simple as Windows, or even DOS for that matter. The only real desktop competition was the Mac, which hemorrhaged market share from its own marketing mishaps, and more recently, Java, which promised a platform-independent GUI.
After all that, Microsoft remains king of the desktop. In Javas case, was it a case of Microsoft intimidation, through its attempt to create a Windows-optimized Java Virtual Machine (JVM)? Or was the real problem Javas technical shortcomings, due to the added overhead and performance penalties attributable to using virtual machines rather than native code, not to mention the time-consuming process of Java applet deployment?
In this case, religion rather than technology ruled the agenda. Sun complained about Microsofts raining on its Write Once, Run Anywhere parade while Microsoft retorted, in effect, Its the machine, stupid! In other words, portability vs. performance. While the courts eventually judged Microsoft in violation of its Java license, the dispute could have easily been settled by some clever technology and diplomacy if the will was there.
But the will wasnt there. Both sides claimed they were standing up for users, but in reality, they were standing up only for themselves. The result was fewer choices and more complexity for the user. Sun won the court battle but lost the desktop war, while Microsoft lost the opportunity to steer the Enterprise Java agenda on the server.
Today, although Microsoft claims a credible share of Internet servers, Sun Solaris and Linux combined have won the hearts and minds of web server developers. Meanwhile, Java continues to be the most popular language of computer science programs and e business. While VB has long dominated as the language of Windows clients, it lacks the coolness, e-business cache, portability, and object-oriented flexibility of Java.
Enter C# (pronounced C Sharp), Microsoft's better Java than Java. Like Java, C# is object-oriented. Its also a kinder and gentler C++, in this case eliminating complexities, like multiple inheritance, that can get developers in trouble.
In other ways, there are important differences beyond the fact of C#s non-Sun lineage. The most obvious is that C# is designed to run nativelyno inefficient virtual machines allowed here. Not surprisingly, C# supports Windows APIs, and has hooks so you can write to UNIX natively. Just when you thought it was safe to deploy on all sorts of platforms, were back to porting again.
C# has some clear advantages, like its superior XML support, where developers can attach XML attributes directly to C# classes. In other cases, the advantages are debatable. For instance, C# supports versioning down to the class level, a useful feature that Java bigots might consider overkill.
C#s approach to security is classic Microsoft: you have a lot of freedom to configure it via rules that are set by administrators, and embedded features that sense the environment. Theoretically, the environment-sensing capabilities should figure out what the administrator doesnt, but that doesnt mean an impregnable wall to viruses. Furthermore, C# allows restricted access to pointers, meaning its not immune to memory leaks. Score two points for Java here.
The bottom line is a mixed bag: C# and Java each have different strengths. The real bottom line is that a little competition might be healthy for Java, which until now has suffered for its political correctness. Not that Microsoft isnt trying to play that game. Theyre submitting C# to ECMA, the same standards body that Sun spurned a few months back. Dont be distracted by the standards sideshows, however. ECMAs endorsement wont change the fact that the real issue is whose web computing vision to embrace. With C#, the choice is more competitive.
|
 |