We have been your child-hood friends since 1995. Now you have grown-up and looking different(in fact totally different in some developers’ hands).
You got your birth and surged in adoption because of your simplicity and platform independence of the contemporaries of the time (C, C++). Unfortunately as time passed on, now you possess all the features (aka complexities) that were part of C++ in the name of “flexibility”. I think but for pointers and manual memory releasing, now you poses all the features of C++. What an Irony, you lost the focus of birth – you are not simple any more. Thus in recent times your adoption have diminished in the start-up space. Note:In the previous sentence I didn’t use the word “diminishing”, rather used “diminished” – to emphasize that you have already lost your battle in start-up space. None of the known start-ups which sprang in recent years use you. This wasn’t the case with the start-ups which sprang during dot com boom period (in 1999/2000). Most of the dot com’s where built on you.
8 years back, I attended Web 2.0 conference which was held at Moscone, San Francisco. I went pretty late (around 5.00pm), to the exhibit hall and had a chat with a vendor in the booth. Vendor mentioned that I was the first Java developer that he meet since the beginning of the conference :-). It sent a strong message to me. From that day, just to keep ourselves marketable, we have started making acquaintance with other programming languages – PHP, Ruby, node.js. Just because to build something simple, you are taking too much time.
Another thing that frustrates your friends: Instead of driving innovation you are trailing at it. It’s quite unfortunate that one of your chief engineer Bill Joy’s words: “Innovation happens elsewhere” has now become so much applicable to you. You got your popularity because you solved the platform dependence problem on the server/desktop arena. When the same problem re-surfaced in the mobile space (where there is a proliferation of devices, OS, run time environments) – you didn’t capture this tremendous opportunity. This is your problem, you should have solved it.
Even with in your community you are trailing at innovation. After IOC Factory space has been saturated by Spring and Guice – you are coming with CDI specification for it. Similar theory is applicable for HTTP client. There are several other examples that can be cited.
We understand you are getting step child treatment in your new family, but don’t worry you have several unmatched assets:
- You have powerful foundation (JVM), which gives great stability, platform independence
- Huge (9+ million) developer community
- Great framework/library ecosystem .
- You are still a rock-star in Enterprise Space.
We all love you a lot. Please start to practice your foundational values of ‘simplicity’ and ‘innovation’. You have huge responsibility in your hands. Several engineers lively-hood are with you.
One of your long-time friend,
Java developers are sick when they not create millions of DAOs, DTOs, facades, unused interfaces etc, and most of these patterns remember CORBA.