Whilst browsing the EDS Internal Blogs I came across a posting from Phil Haigh, commenting on (this post) the complexities of JEE and how it’s complexity will be the death of it. I don’t think thats particularly true. Its not the complexity of the platform that’s causing a decline[1] in Java’s usage, after all, its not like .NET is any less complex, just look at WPF in .Net3 and you’ll see what I mean. In fact, if complexity were a problem, we wouldn’t be programmers, we like complex brain mangling stuff. (Why else would Haskell be making a comeback?!)
The argument of .NET vs Java reminds me of the old days when Direct3D was first thrust upon us game developers. Along with the usual FUD distributed by the usual Open Source/Anti MS Zealots, the general sentiment was that OpenGL = Good, Direct3D = Bad. Even John McCormack weighed in for OpenGL. All the usual arguments were trotted out, closed source, proprietry, from M$, etc,etc, but what happened? DX had a release schedule of ~6 months. OpenGL had releases measured in years. DX advanced at such a phenomenal rate, matching hardware releases, it gathered pace, gathered developers and gatherd tools. Suddenly OpenGL was playing catch up. That was ~1996. 10 years later, it’s almost OpenWhat? There’s the sign of DX’s ubiquity, that when we talk of 3D on the PC, it’s inevitably driven by DX. When was the last time you worried that your video card was OpenGL compatible? DX wins. Vista’s interface is built on it.
Now compare this to holy war of Java Vs .NET. Java was at least as capable as .NET , until recently. In fact C#2 was a turning point as Java implemented (botched) generics in response to C#s generics. (Java’s Generics are implemented completely at the compiler level, the VM has no knowlege of generics, unlike C# where the generic type is implemented directly into and supported by the CLR.)
As a pragmatic kind of guy, it’s always been the case of choose the best tool for the job. With .Net2.0, the platform is starting to look more attractive than Java’s equivalent offerings to more than just the .NET afficionados, and we find we’re now in the great position of having choice. Given that the base Platform is also shifting at an ever increasing monthly rate, it won’t be long before the choice also applies to the server platform too, another opportunity for .NET to gain a bigger foothold in JEE’s arena.
Using .NET it’s now easier than ever to create robust software and services quickly ,and the toolset is maturing faster with each release. Java, like OpenGL ,is now playing catchup. The elegance of the features .NET provides is starting to show through, gaining the affections of developers, gathering momentum, much like DX did. And don’t forget, we programmers love elegance, that’s why we love(d) Java.
How soon before Java can introduce robust features that match next version of C# ? Lambda functions? LinQ? Type Inference? They’re all features that allow us programmers to more clearly and naturally express a our intent. After using Orcas for a few weeks I have to say I’m thoroughly hooked on Anders’ direction for the language. It’s not that I don’t like Java its just I like .Net more, and I think many developers are starting to feel the .Net Love.
In the end, Java won’t dissapear anytime soon, after all, it is a pretty solid platform and for now, it still has the market share. Its not the complexity that will undermine Java’s dominance, its the inability to respond to the competition that will seal its fate. Developers are a fickle bunch, we’ll switch allegiance for the smallest geeky feature of coolness, just look at the squaring off between flash & WPF/e and you know it’ll just end in tears!
Anyway don’t look now, Java7 C#3 is only a couple of months away.
Rob
[1] Ok, so google trends only reflects what people search for, not what people are using. After all, this could indicate that the documentation for Java is useless and all the .Netters end up at MSDN instead of google, but, taken at face value, java still seems popular, even if people are searching for coffee 😉
Pingback: Anonymous
Pingback: RKinski
Pingback: MsAdams