FreeAgent sign-up

Peak Java

There’s an unpopular scientific theory in the oil industry that is really popular amongst the unscientific doomsday crowd on the internet. It’s called Peak Oil.

The essence of the theory is that the more oil we find, the more we suck out of the ground every year, and because oil isn’t renewable (not in our lifetime anyway) at some point the amount we suck out starts to decrease rather than increase. But, we are told, this decrease isn’t a period of steady decline where we all start running our SUVs on vegetable oil, it’s exponential which means production will fall rapidly until the amount of energy needed to dig it up is greater than the energy you get from the oil itself. At this point, no one can get hold of any oil which means the world will come to a grinding halt and we all strip to our loincloths, become feral savages and start building wattle and daub huts in the hills. Grrr.

But I digress.

Java developers have had it good for years and right now it’s boom time. It’s top of the heap in the latest popularity index, there are more Java jobs on www.jobserve.com, www.monster.co.uk and www.jobsite.co.uk than any other language and they pay more. Even Universities are teaching it to freshmen*.

Now, here are your typical skills a Java developer needs experience of these days on your average ‘enterprise’ project:

  • Java (’core’)
  • JMS
  • JDBC
  • Struts
  • JSP/Servlets
  • Hibernate
  • Spring
  • XML/XSLT
  • Ant
  • Eclipse/IntelliJ

That’s some barrier to entry and it’s getting higher all the time, with the increase in popularity of SOA and Web Services, AJAX, and no doubt several other ‘new’ frameworks and enterprise patterns which I’ve yet to hear about. Here’s a picture:

I think Java-based production is peaking and productivity has long-since peaked — the ratio of satisfaction returned on energy invested is spiralling down.

We have reached Peak Java.

Programmers like being productive. They like new and cutting edge technologies. If I had a fiver for every developer I came across who was learning Python or Ruby on Rails in their spare time, I’d have… thirty quid or something.

There’s change coming. People are talking about it more and more. Java will be around for a long time but the next generation of programmers, today’s hackers who will be tomorrows CTOs, haven’t got time nor the inclination to learn ‘the stack’ — they’re far too busy churning out killer web applications in PHP, Python and Rails.

As for me, I’m running to the Welsh mountains to build a hut and learn to subsist on a diet of grass and rainwater before the oil runs out.

Posted by Olly on January 20, 2007 at 10:39 am in java, jobs, software
Comments (4) | Permalink

4 comments on “Peak Java”

  1. Andy Stewart wrote on January 23rd, 2007 at 3:23 pm:

    You might be interested in James Duncan Davidson’s What Does No Java On The iPhone Mean? — with the revealing question:

    How many compelling desktop end-user Java applications have ever been created?

    It’s much easier to create a lovely GUI in a browser than with Swing. And it’s easier to write a webapp in, say, Rails than J2EE.

  2. Stephane Grenier wrote on January 23rd, 2007 at 6:43 pm:

    I think the key to remember with Java is that it’s a great language for larger projects. If you have to slap together some simple and quick application, then Java may or may not be the tool for you. However if you need a lot of extensibility, a lot of complexity, a lot functionality, etc., then Java quickly becomes more and more interesting!

    As for a Swing application, we use Java at LandlordMax. It might have taken a bit more time initially, but because of the power of language we’re able to really use the framework in extremely powerful ways. For example we’ve created many gui components which are composites of other components, including listeners, etc. So for us to add certain types of functionality it’s extremely easy.

    Again, it all depends on what you’re trying to do. If I had to slap together a quick prototype webapp with no scalability, I’d look at PHP (scalability can mean traffic, extra features, etc.). If I new I had to move to a clustered environment, add loads of features, etc., then I’d be looking at a J2EE stack with frameworks such as JSF, etc. Yes, PHP has some amazing frameworks too (CodeIgniter.com for example), but I feel the J2EE frameworks are more mature and have more “power”.

  3. Jivlain wrote on January 25th, 2007 at 7:19 am:

    What I really enjoyed was the link which led me here:
    http://www.chadfowler.com/2007/1/10/supply-and-demand-in-technology-skills

    Do the Google Trends searches – the Java/.NET is all India etc whereas the searches for, say, Ruby on Rails, is from the US. Interesting.

  4. Jivlain wrote on January 25th, 2007 at 7:21 am:

    Hmmmm confusion. Eh. But it was worth it!