Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

A Java Fan's Heartfelt Letter

DZone's Guide to

A Java Fan's Heartfelt Letter

A friendship is on the rocks and one user wants to make it right.

· Java Zone ·
Free Resource

Bring content to any platform with the open-source BloomReach CMS. Try for free.

Image title

Dear Java!

We have been your childhood friends since 1995. Now, you have grown-up and are looking different (in fact totally different in some developers’ hands).

You were born and surged in your adoption because of your simplicity and platform independence that you possesed, but your contemporaries of the time lacked (C, C++). Unfortunately, as time passed on, you now possess all of the features (aka complexities) that were part of C++ in the name of “flexibility”. I think but for pointers and manual memory releasing, you have all of the features of C++. How ironic, you lost the charm you had at birth – you are not simple any more. In recent times, your adoption has diminished in the startup space. Note: In the previous sentence I didn’t use the word “diminishing,” rather I used “diminished” – to emphasize that you have already lost your battle in startup space. None of the known startups started in recent years use you. This wasn’t the case with the startups which sprang up during the dot com boom (in 1999/2000). Most of the dot com’s where built on you.

Eight years back, I attended a Web 2.0 conference which was held in Moscone, San Francisco. I went pretty late (around 5.00pm), to the exhibit hall, and had a chat with a vendor at their booth. The vendor mentioned that I was the first Java developer that he met since the beginning of the conference. This sent me a strong message. From that day on, just to keep ourselves marketable, we have started becoming acquaintances with other programming languages – PHP, Ruby, node.js. Because with you, to build something simple, it takes too much time.

Here is another thing that frustrates your friends, instead of driving innovation you are trailing. It’s quite unfortunate that what one of your chief engineers, Bill Joy, says – “Innovation happens elsewhere” – has now become so applicable to you. You gained popularity because you solved the platform dependence problem in the server/desktop arena. When the same problem resurfaced in the mobile space (where there is a proliferation of devices, OSs, run time environments) – you didn’t capture this tremendous opportunity. This was your problem; you should have solved it.

Even within your community you are trailing at innovation. After IOC Factory the space has been saturated by Spring and Guice – and you are coming with the CDI specification for it. Another example is for an HTTP client. Oh, and there are several other examples that can be cited.

We understand you are getting the step child treatment in your new family, but don’t worry you have several unmatched assets:

  • You have a powerful foundation (JVM), which gives you great stability, and platform independence
  • A huge (9+ million) developer community
  • A strong framework/library ecosystem
  • You are still a rock-star in the 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' livelihoods are with you.


One of your long-time friends,
Ram Lakshmanan

To read my other blogs, please visit http://blog.tier1app.com

BloomReach CMS: the API-first CMS of the future. Open-source & enterprise-grade. - As a Java developer, you will feel at home using Maven builds and your favorite IDE (e.g. Eclipse or IntelliJ) and continuous integration server (e.g. Jenkins). Manage your Java objects using Spring Framework, write your templates in JSP or Freemarker. Try for free.

Topics:
c++ ,java ,php ,ruby ,node js ,web2.0 ,http ,jvm ,c++ interview questions ,java application server

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}