I've been watching the language changes being proposed by the community for Java 7.0 like a hawk.
Alex Miller's
Pure danger tech blog has become one of my favourite reads as a result.
However I'm pretty sure I'm not the only one who seems to be rather disappointed about what came out of JavaOne this year regarding the proposed Java language features.
It seems that many of the changes will probably be
postponed until Java 8.0.
Maybe this is not such a bad thing though.
If I look at the message coming out from JavaOne I could summarise it as being: "Please use Java as a platform but you don't need to use the Java language at all".
In fact I have have a vast array of excellent choices:
If I want a highly productive platform for doing web development, use JRuby.If I want a highly productive platform for my existing Java Developers use Groovy.If I want a concise type safe platform with high productivity use Scala.If I want a mainstream language with Java benefits and high producivity (when it matures) use Jython.Of these languages, Jython (Python in Java) and JRuby (Ruby in Java) are the most "mainstream" being in the top ten on the
Tiobe index with Python and Ruby respectively sandwiching C# - which in itself is quite amazing considering that neither have had C#'s marketing.
Groovy and Scala are a little less mainstream but both have broken into the top 50 with Groovy at number 33 behind Smalltalk and Haskell and Scala finally breaking into the top 50.
Would I still need to write stuff in Java? sure, but only for those bits and pieces which need some low level stuff where speed becomes important especially considering that Java is the only language in the list which still supports primitives, In this scenario the Java language takes on roll much like C.
In fact I'd even go so far to say that Java needs to stay the way that it is in in order to keep it viable for this very important role.
After all we wouldn't want to turn it into the new C++.
Maybe then we should stop regarding Java as the new Cobol but rather look at it as the new C.