ThoughtWorks’ technology radar suggested to start thinking about ‘Java end of life‘ in its January 2010 issue. In following issues of the same document they list several languages that strive to be Java’s successor on the JVM. In order to lure the Java community into their net all these languages promise to run on the JVM with interoperability with existing Java code and familiar, but easier and more concise syntax. On top of that they pack recently buzzing functional programming features, which get sold on their ability of easier parallelization.
The most prominent candidates are (in alphabetical order)
The ThoughtWorks guys see Groovy ahead of Clojure and Scala, whereas I personally see myself more drawn towards Scala. Which language shall it be? Groovy, Clojure, Scala, some other language? What’s your favorite and why?
Update 13. Aug 2011: With Kotlin there is soon to be a new language in the race for Java’s succession. It certainly sounds very promising. Also follow the discussion on Quora.
I have asked myself the same question several times. I am wondering when the next big step will come.
But at the same time, I hope that it won’t come soon.
Do we need a new programming languague? Why do new languages come up anyways?
Is a new programming language for the benefit of the users of programs? That is the relevant question. In my opinion, the IT has
moved forward for it’s own sake sometimes. One example: Thousands of companies are still migrating from mainframe applications to modern applications like Jave etc.
But they are completely satisfied with their old applications. They are fast, reliable and have a high user acceptance. There is no need for a new application.
Only because the knowledge for the old systems dies out, they are forced to invest in new programs. They have the same functionality, but sometimes, they are even
slower or less reliable. They are only migrating, because they can’t find people any more who can do the maintenance work.
Companies have to invest millons of dollars without a benefit. This migration period from mainfraime applications will be ongoing for decades still. A new change in technology
is really not what these companies need right now.
Of course, I am not against technological progress. But it should not be for its own sake. If there is a real need and a real benefit, then it makes sense.
Otherwise it would be better to improve existing technology. A company can’t handle a protfolio of 10 programming languages.
From this point of view, SOA is the right step into the future. A new methodology instead of a new technology. Let’s use the established old systems and build
applications for new business requirements on top of it.
Well, yes, new languages emerge because they either offer an easier way of doing something in an existing language or a way of doing something that could not be achieved by an existing language. So users get new functionality for cheaper. Even though they don’t specifically ask for a new programming language, I think they appreciate the consequences.
I don’t think Java’s successor will require another platform migration. It will most likely run on the JVM and have interoperability with existing Java code.
Groovy. Because it’s easy.
[…] software. Agile Methodologies, XP Practices and other Software Development Goodness. « Who will be Java’s successor? What I like and don’t like about Scala November 4, 2010 This is a follow-up post to […]
I think Clojure will be my next language, though scala takes some good principles from Ruby…groovy is probably too slow.
Explain “too slow @ groovy” ? I’m not understanding that, it compiles down to java bytecode ergo runs on a VM, how in the world does that make it a poor successor to Java due to speed ?