contact us at info@solidstategroup.com
or on +44 (0) 845 838 2163

Home >  Company > Tech Blog > Beyond Java

Beyond Java

Posted by Arnaud Valle on 27 February 2006

Beyond Java

I've been reading Bruce Tate's new(ish) book, Beyond Java over the last week or so. I've almost finished it, and it has made very interesting and provoking reading. As someone who has been earning their daily bread with Java for the last 6 or so years some of the concepts are a little difficult to stomach.

The interesting thing is that I am feeling myself drawn to the arguments that Tate raises, and that's precisely the reason that I am finding things hard to accept. People are naturally afraid of change, and this is no different. Tate's argument generally runs as follows:

  • Java has got us really far. It was a revolution over C++ and has immeasurably helped the art that is software development. Concepts like the JVM compelled real advances in software engineering and code portability.
  • Java is not the golden bullet. Certain design decisions that were made to help people move from C/C++ to Java helped make the language such a success, but are now acting as a hindrance to the software development process.
  • The benefits of harnassing modern language concepts like meta-programming, fully dynamic languages, closures and code blocks, continuation servers, convention over configuration should not be underestimated.
  • Languages like Ruby may well be the next big thing. They just need a killer app and a groundswell of public support.

A lot of people seem to think that Ruby on Rails is that killer app. We've been playing with Rails here at Solid State towers for a few weeks and generally like what we see. For me, the single biggest factor is the speed of the code-test-debug cycle. Not having to wait for the JVM to think for a few minutes about dynamically reloading the class that I just changed, let alone having to restart it if I introduce a new method, is something of a revalation.

I think that a lot of things still need to be proven. Stability, deployment factors, portability, documentation and community support are all still boxes waiting to be checked. Tate brushes passed one of the most important decisions that has to be made by the guy in charge of development; how easy is it to hire someone with a decent level of experience in both Ruby and Rails that can hit the ground running.

We are toying with the idea of attempting a ground up re-write of one of our applications in RoR. Or at least the first few screens, just to see how hard (or easy) it is. No doubt we will let everyone know how we go.