Beyond Java. What happened next

A few years ago (2005), Bruce Tate wrote ‘Beyond Java’ where he tried to glimpse into the future and guess at the next big thing. He used criteria including language features, community, marketing and killer apps to help with his analysis.

In some ways the book is a thinly disguised introduction to Ruby for Java developers. However he correctly predicted that Ruby, and particularly Rails would gain significant traction. He also identified that static typing, which was such a help for so many many years, wasn’t always appropriate and in some ways was starting to hold us back. Any pretenders to Java’s throne would likely incorporate dynamic typing.

Just as interesting to me are the areas where history took an unexpected turn. Here are a few of the developments since the book came out.
  • Python reinvented itself with Python 3
  • Objective C is now one of the biggest languages on the back of the iPhone and iPad.
  • Javascript is now recognised as a first class programming language, and may even have its killer app in the form of Node.js
  • C# started to diverge from Java, adding functional elements including lambda’s and features such as the var keyword which start to blur the distinction between static and dynamic typing
In addition there is plenty of buzz around many languages that either didn’t exist then or have started to go mainstream… examples include Lua, Scala, Clojure, Erlang and F#.
Also interesting is how, even with all thats new, the Tiobe programming index still shows Java in number 2 position, while Ruby and Python are at 11 and 9 respectively (as of Nov 2012).

The big challenge for people like me is what to focus on. The only thing thats clear to me is that the future is polyglot programming, and that other than that, I can’t predict it.

I think that beyond the static languages, the big three to have familiarity with today are Javascript, Python and Ruby. I love Pythons simplicity and Ruby’s flexibility. I’m still coming to grips with Javascript, there’s plenty of power and plenty of pitfalls, though maybe more on that in a future post.
Beyond that, an excellent resource to explore other languages is (funnily enough) another book by Mr Tate, called ‘Seven Languages in Seven weeks’. He covers Ruby (of course), as well as Io, Prolog, Scala, Erlang, Clojure and Haskell.

None of which solves the problem of where to focus. I need more hours in the day…