Home
About
Perspectives
Writings
Contact
Resources
PerspectivesCollateralMediaResearchOverviewWritings

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 isn’t 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 Java’s 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 Java’s 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 Microsoft’s raining on its “Write Once, Run Anywhere” parade while Microsoft retorted, in effect, “It’s 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 wasn’t 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. It’s 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 natively—no 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, we’re 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 doesn’t, but that doesn’t mean an impregnable wall to viruses. Furthermore, C# allows restricted access to pointers, meaning it’s 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 isn’t trying to play that game. They’re submitting C# to ECMA, the same standards body that Sun spurned a few months back. Don’t be distracted by the standards sideshows, however. ECMA’s endorsement won’t change the fact that the real issue is whose web computing vision to embrace. With C#, the choice is more competitive.


all original content copyright © 2001 - 2006 onstrategies
site designed and copyright © 2001 - 2006 oz barron