The Java world seems to quite disappointed about the fact that the language will not evolve as fast any more as it used to. Java 7 will ship a whole lot later than expected, and most of the really “desired” features of it will now be part of a newly born Java 8 release that will not ship before mid-2012.
But I don’t think this is very surprising. Java today is regarded as THE platform for everybody. Oracle is trying to make it everybody’s darling by nailing feature over feature onto it. Since most of the newer features are aimed at overcoming the most painful restrictions of a static type system, some of the proposed syntax extensions turn Java sourcecode into a nightmare stuffed with braced constructs. The addition of closures will bring in a lot of power and expressiveness of sourcecode – at the cost of new syntactic constructs that bloat the language and make the code harder to read.
So Java projects will soon be faced with the same problems as C++ projects: in order to keep their code maintainable, they’ll have to set up rules on which language features not to use – even if they would be helpful.
So the question is: is there aything better? Sebastion Kübeck has some interesting thoughts on the topic:
I personally think that here is literally no chance whatsoever for a new languages to become as dominating as Java! The time for one dominating technology is just over. Language makers are in the midst of combining old things and selling them as something new. However, we have seen all this already and know that none of this will given us the feeling of productivity boost that we expect from a new language.
…So we’ll face a long period of an aging king and language mix (somewhat like the disputes after Julius Caesar was killed and before Augustus brought stability but with an aging, powerless Caesar), there might be the time for something new – or at least for something radically different.
I guess he’s not too wrong here: there will not be a next big thing any time soon that will revolutionize the IT world. No one platform or language to rule them all. Too many expectations that were put into Java were just not fulfilled. We had to realize that it is very unlikely that there is one language or platform that fits all projects.
We’ll see more and more language and platform diversity again, and we’ll have to face it. The success of Ruby, Groovy, Python or whatever currently-non-mainstream language you may pick, shows that this is a hard fact of life.
In fact, diversity has never gone away. Top Level management has had the idea of migrating every system in the enterprise onto one single platform: in the late 90ies, that platform was Java, later it was .net, today it seems to be SAP. But most of the times, this new platform just added to the existing mix and only a few projects really were ported onto that new platform.Porting onto the platform was way too expensive for many existing critical projects, and the benefits were mostly theoretical.
Nobody really believes that anything will replace Java, Cobol, C++, Ruby, Perl, Smalltalk or (just add whatever you want here) any time soon, and even if somebody entered the stage and proclaimed the next big thing, we’d be extremely sceptical.
So the challenge for the next decades will not lie in how to replace all systems written in X with systems written in Y, but to make the right choice of platforms and languages for certain projects and to make systems work together seemlessly. Another challenge will be to build up knowledge and talent for all the technologies in use.
The hardest part here will not be to educate people, because that is happening anyways, but to accept diversity as a positive thing in management. Companies will have to learn that it can be a good thing to have multiple technologies in use, each with their own strengths, and they’ll have to accept that it’s better to spend money in building up multiple competencies in their IT organization than to waste lots of money on useless and risky porting projects that really make nobody happy: neither the users, nor their IT staff.
So don’t ask what the next bif thing will be, because it is definitely the wrong question. Rather ask what technologies have particular strengths that make it worth adopting them in your organization.