Sep 28, 2004

Lack of Standards Effects .NET?

In a letter to the editor of Visual Studio Magazine, Frank Molnar states that there is not much buy into .NET because of the lack of standards. The argument that he provides is that that previous model of was to standardize the language, thereby placing it in the public domain, and earn tools by providing compilers, interpreters, and other components that support this standard for various platforms.

Instead of this model, Frank says that Microsoft has completely changed its paradigm for the simple reason of increasing sales by making previous versions of its software not only obsolete, but also unsupported. By not standardizing the language, Microsoft is essentially selling its language, and this makes it difficult for people to buy into the language.

In Leveraging Frameworks, Douglas Schmidt et al mentioned that it takes up to nine months for developers to become productive with a framework (what .NET is). As such, for an organization to adopt Microsoft's latest tools, it must factor in at least six months in learning. This can obviously be shortened by hiring employees with experience with .NET and/or providing appropriate, timely training.

But Franks argument is really more that when a language is standard, this investment can be amortized over a number of products. When you take the time to learn a standard language like C++, the language remains the same, no matter the operating system and environments you work in (of course, techniques and culture pertinent to the domain may change your language usage habits). The only portion that needs investment is learning the new tools available in the new environment.

Another advantage to the standard language is portability. This is slightly touched upon in the above paragraph, but here I really mean source code portability. Per se that you require a real-time operating system, and you buy into a companies product. If that company fails, you probably do not want to rewrite your entire application and tools on a new platform. Instead, you would probably want to port these applications to another vendor's operating system. With standard languages and proper abstractions, this can easily happen.

If any other company had come out with .NET, it would probably have been a complete failure, but as Windows usage is high, it is unlikely that Windows would suddenly go away, so this protects it a bit. But per se that Longhorn license fees go up considerably or you just need another platform, it looks like Mono is your current bet, but based on experience with Samba, changes in the language or protocols (that are closed source) could take a little time before appearing here. Depending on what the hiccup is, this could be as simple as “Do not use feature X”, but if your software interoperates with other .NET software, it is possible that updates could render the program broken for sometime. Again, this is just looking at the worst-case scenarios.

There is, however, one place where Frank and I disagree, and that is in Java. He seems to think that it had a chance and now it is done, but I see Sun has been paying more attention to Java in the last year, and with the Tiger release probably coming on Thursday, I think it is just the beginning of the future evolution of Java. Of course, Java is not a standard language (they tried and failed), but it is freely available and there is the Java Community Process to change the language. And furthermore, there are a number of implementations that do not come from Sun.

Interestingly enough, also in the news today is Azul Systems, which plan to make a network appliance for plug-and-play boosting of applications. They are initially targeting J2EE over .NET, because “most of the market is J2EE”. Depending on what you read, the opposite phrase could easily be found, but I am sure part of the reason that J2EE is popular in this space is that no one is selling the Java language, just Java tools.

Filed In