Since SUN was bought by Oracle, many people are speculating what is going on at Oracle, and how this will affect the future of Java. When you are relying heavily on java for your daily work, it is obviously extremely interesting, what is going to happen with java. At least I don't want to become a COBOL developer. So speculating about the future comes natural. But as a saying goes: Predictions are difficult, especially when they are concerned with the future. So I think there are two things which are more important to consider then what is actually going on at Oracle:
What are the signs to look out for, that Java is turning into just another kind of COBOL?
What are you going to do when these signs show up?
For many the answer to the first question obviously will be: Java already is the new COBOL. It's true in the sense that there exists tons of legacy codes, which will continue to exist for the decades to come. But Java has still a big difference: Tons of new projects get started. This includes commercial products as well as FOSS.
Another difference compared to COBOL is: Java is moving forward. Java 7 is (still) announced for 2010, and possibly more significant, new languages are living on the JVM, like Scala, Groovy and Clojure.
This leads to the signs, that mark the point in time to switch to something different:
- No new versions of the JDK. Java never was especially fast or aggressively evolving, but when new versions stop to come at all, or aren't containing the significant improvements we need, that is a bad sign.
- Companies stop using Java for new projects. Actually when they do stop, it is to late. You should get nervous, when serious discussions are started at large companies that are using mainly Java right now. Obviously this is especially true, when these companies are your customers or employers.
- The Java FOSS community moves to new languages and platforms. Keep an eye on Sourceforge, Apache and Co. are the new and relevant projects still based on and targeted for Java?
- Drop in number of events and number of visitors at events targeted for Java. Does it get empty at your favorite Java conference? Or does it turn into just a couple of booths on a more general targeted conference?
So one day you will notice, that to many of the indicators mentioned above are flashing at you. What do you do?
- Determine if only the language or the Java platform is affected.
- Pick Up a new language or a new platform. Actually when you are early to move, two or three, because you won't be able to reliable identify the next big thing.
- Do real project using these languages. Get involved in open source projects or do your own in order to really learn the new language.
- Do marketing for your decision. Once you are heading for a new platform, you don't want to go there alone. There are only few projects that are small enough to be done alone. It is hard to learn, when you are on your own. Get a group going, that can learn and work together. This will at least in the small accelerate the move to the new language. And that is a good thing once you are heading that way.
- Once you are confident to seriously get some work done, using the new tools, push them for your professional projects.
Of course your mileage will vary but for me, it is about time to consider alternatives to Java. That is one of the reasons, why I learned a little Scala, why I will learn groovy and grails, and why I will have a look at Clojure. I'll do personal projects doing those. And I am marketing that decision right now.
And even if Java stays healthy and Scala dies, I'll profit from learning new languages and concepts.