Friday, 30th March 2007

Death of Java

Last week, i attended the ESRI Developer Summit at Palm Springs CA. During the summit, there was a keynote session by Mark Driver, vice president and research director at Gartner Research who spoke about the strengths and weaknesses of the Java and .NET environments. The presentation left me pleased (because I am a .Net Developer) but also got me thinking at the same time. The question is, What do you think of Java as a language and virtual machines as a platform for software execution?

Bjarne Stroustrup had this to say about it (in an interview from a long while ago):

Incredibly over-hyped. I'm unhappy about the degree of intellectual dishonesty surrounding its advertising. It is probably a nice platform for running small self-contained systems, but it is being proclaimed as the solution to every problem and for every programmer. It is not. No language and no system is. Even the platform independence issue is not as clear-cut as it seems.As the Java libraries are extended to deal with more application areas, these libraries themselves become a platform. As vendors add new facilities, portability to machines using facilities from competing vendors' portability becomes compromised.

Java is hyped as "Write once, run anywhere" but in my opinion, Java is failing miserably. It's true to the axiom of "write once, debug everywhere". Anytime you have a software stack, you always have support issues. JREs on Windows is one software stack and JREs on Linux, Unix, and MACs are three more software stacks requiring support. I find that Java does cross platform fine for basic web apps and simple file driven programs. But if you are developing for specialized embedded systems used by alien proctologists, then you better not sell your soul to the java environment.

Yes, java will be taught in universities 10 years from now and more importantly in the marketing classes and so you will still have fanboys with MBA degrees (but don't have a clue about programming languages) plug java as the panacea for software development. But a growing trend these days is that .Net and C# (its favorite child compared to the bastardized step child also referred to as VB) are penetrating the hallways of universities. With slicker and extremely impressive development tools for the .Net platform coming out, the days ahead look promising.

Note here, that I am not talking about the language differences between java and other languages since that argument is mute. But the focus is that enterprises who do not wish to sell their soul to Micro$oft (but inadvertently end up selling a large portion of their soul a vendor such as IBM, WebSphere, BEA, etc all on the context of staying vendor neutral and not getting into vendor lock-in) and opt for entire java stacks thinking that it gives them the most flexibility are actually fooling themselves. The problem is that java hasn't been able to reach the platform independence that it claimed (and everyone hoped) it would. The problem is caused by vendor (IBM, BEA etc) interests creeping into the framework libraries which compromise the platform independence goal.

One of the key points that Mark made was that neither java nor .Net are going away, but he also emphasized on how .Net has caught up with java which was once said to dominate large scale implementations (enterprise level) and how the vendor interference was hurting java badly, whilst allowing .Net to grow. He predicted a very rosy future for .Net and .Net developers which was music to my ears.

All is not lost for java developers. Atleast they are better off then developers working for non-software companies where a programmer is viewed as an expensive typist and people often associate programmers at the level of plumbers.

Posted by Nikhil on Friday, 30th March 2007 in TechnoBabble | Work | Nonsense

Post a comment