Milen Dyankov

on a mission to help developers build clean, modular, and future-proof software

Java: 21 & Legally drunk!

June 13, 2016 | 6 Minute Read

I’ve stated that before but allow me to repeat myself: jPrime is one of my favorite conferences. I’ve been there two years in a row and to quote Karol Kaliński “it costs about 80 EUR, but can easily compete with western Europe conferences in terms of quality”. This year, apart from great talks, fantastic atmosphere and the cute new Bulgarian JUG logo there was one more thing I was pleasantly surprised by, namely the conference’s headline “Java: 21 & Legally drunk!”.

I have no idea how they came up with it but it surprisingly correlates with the spirit of my “What’s NOT new in modular java” talk. It also perfectly describes how Java appears to me these days and perhaps can explain some of the weird perturbation and confusion that seems to be having place in the Java community these days. As Internet seems to be bloated with technical articles addressing Java’s condition, I decided to have a look at it from slightly different (less serious) angle.

First things first, though! When I write software, I use Java. I don’t use other programing languages on a daily basis (experiments, finding and reporting bugs in 3rd party apps and “Hello world” projects do not count)! I’m quite happy with it regardless of all the criticism it gets and the fact it’s been announced dead every once in a while for the last … I don’t know how many years! The combination of general purpose programming language and stable platform, allows me to solve business challenges in reasonable period of time. That’s all that counts, as far as I’m concerned! That said, I’ll happily move on to another language when and if Java becomes insufficient or inefficient tool for addressing those! Which brings me to the question that bothers me recently - “Has the time come …” to which I can now add “… or is Java simply legally drunk?”. Oh, and when I say Java in this post, I actually count on your intelligence to relate to particular people and organizations!

If you have ever been at a party where some people (normally nice folks) get seriously drunk, you must know what fun it could be to see them act and behave not like who they actually are, but like who they think they are or dream of being. They’ll happily reveal some of their secret, unreasonable and childish desires and believes. Moreover they try hard to convince you they can do anything, right here, right now. They’ll tell you the story of their life and how it will be all different from now on. And Java makes no exception. The story goes like this:

All of it’s life, Java has been trying to allow companies stick their flags on the top of variety of “Business applications” mountains. Frankly speaking it’s been quite successful at it. As those mountains are diverse, dangerous and generally very hard to summit, one has to carry a lot of equipment. Java has gathered such equipment over the years and helped many companies see their dreams come true. One really big backpack (labeled “SE”) typically get’s the job done! For those willing to get on even higher peaks, Java suggest to also take with you another one (labeled “EE”). That one is a bit different. It needs to be packed with 3rd party’s equipment, compatible with Java standards! And of course clients have various backpacks of their own. But all those need to be carried and everything that’s inside need to seamlessly work with everything else that’s inside. This types of issues, make the journey far from pleasant (especially when you need something that needs something else, that needs something else, …).

Recently some competitors discovered they can trick companies into sticking multiple flags on multiple low hills instead! And frankly speaking they have been quite successful too. Wanna climb those hills, no problem, each takes just a few things to get there. It’s basically a walk, no serious climbing! The hill doesn’t match your expectations anymore? Just climb the next one. Wanna talk to your coworkers? Just shout to them, they all REST on some other hills. How do you know which one is on which hill? Simple, just get your discovery employee RESTing on a well known hill! Easy peasy! And companies buy it. Of course, those who are used to Java’s way and equipment try to prove they can do it too. It’s just somewhat ridiculous and sometimes frustrating to have to carry all those backpacks for a “walk”!

And so Java gets jealous! But there is no problem a drunk man can not solve! Think! Hmm, the problem seems to be, people don’t want to walk on low hills carrying all this climbing equipment. Need to get rid of this EE backpack then! Why bother on standardizing equipment, it’s so expensive and time consuming task. Equipment vendors will find a way to sell their stuff to those who need it anyway. It’s their business after all. Oh see, as soon Java stated that, a number of folks announced themselves as “Java EE guardians”. With “EE” out of the way now, what about “SE” backpack? It’s all useful stuff after all so … got it … convert every pocket of it into micro-backpack! That should work! Actually Java wanted to do that long time ago anyway. It’s been what … oh my god … over 15 years since JSR 277 … so it’s really just about time! But it needs to do it soon, competitors are springing up quickly. No worries, Java has a drunk’s man solution for that one too. It will put together, things that belong together! It will put a sticker on each micro-backpack stating which other micro-backpacks are also needed! Actually Java will go even further! It will instruct everyone else that they also need to pack their stuff in micro-backpacks with labels. If not, well Java will put all those into one huge “everything else unnamed” micro-backpack! Simple and elegant right? But let’s face it, people will be so happy not to have to carry everything, they’ll go for micro-backpacks instantly! And besides everyone is using docker donkeys these days anyway. It doesn’t matter how much you take, as long as donkeys don’t get too overloaded. Here it is! Problem solved! Beware competitors, all micro-hills will belong to Java soon. And it will not give back the macro ones, hell no!

If only Java was not drunk, it could perhaps listen to some folks that have been on those Java trips from the begging, experiencing and solving (or figuring out a ways around) those issues. It could join forces with them and learn from the mistakes they made in the past and the solutions they have now. It could realize that while micro-backpacks are indeed essential, they are by far not enough. It could try to look in future beyond the buzzword horizon and imagine that while donkeys and labels makes things easier to carry and find, having a drone that will deliver the right equipment at the right place exactly when needed, is what many companies would much prefer despite the investment.

In long term, it could be far more beneficial for Java to try to address the shortcomings of current low hills offerings by making the mountain climbing experience as much fun as it is a challenge! Let’s hope Java will realize that, once it gets sober!