Back to newsletter 079 contents
So many people have been shouting at me that "Java has peaked, time to jump into Ruby" that it was time to find out about the hype. So I listened carefully to Ruby advocate Tim Bray. I found out that Ruby will reduce maintenenance costs because it takes a third of the lines to express the same things as in Java. That's a big plus. But I also found out that Ruby is not going to be able to handle any significant part of the hugely concurrent multi- threaded apps that I tend to deal with - apps that are the present and future of programming. Sounds pretty restrictive. I listened when Elliotte Harold tells me that Java developers are looking to Ruby and Rails - but then I spoke to some Java developers who have made that move, who tell me that it's a great system to get that initial prototype up and running, but that they end up with a mess when they try to advance the system.
Yet I'm told Ruby is the future and everyone is moving to it. Well I wondered, maybe my head is down in the trenches and I can't see the bigger picture. So I decided to do a comparative analysis of the market of the top computer languages. I tried to be as objective as possible for my own benefit - I've moved primary language twice before so I'm open to the possibility, as you have to be in I.T. My goal was just to see what was being used and will be used for mainstream development. (I ignored specific niches and products like SQL, SAS, SAP, Oracle, etc.). I wanted to know how widespread was Ruby's adoption, what are the competitors, and whether anything leaps out at me.
I did a general analysis of languages for their usage, community, jobs, marketplace, popularity and how widespread their use is. This was interesting for me, it produced a nice ranking that I had not noticed before. The result is that in first place is Java, which has a clear lead and is still growing in size. In second place is C/C++. I tried to distinguish between C and C++ as separate languages, but all I could see was that C++ seems to have started to decline in use, whereas there are so many legacy C systems out there that the C/C++ combination is not going away any time soon.
So first is Java, second is C/C++. Third comes a cluster of three languages: Perl, PHP, VB. This is an interesting cluster. These three are qualitatively different languages from the two leaders, all three being well established rapid development languages, dominant in a number of niches and valid options for many types of general purpose development. These are also all languages that seem to have plateaued.
What to make of it all? Firstly, we need something better than all of these (including Java), but none of those listed above is that "next generation" replacement language that we need. Java looks set to dominate for the next ten years given its health and support and huge numbers of libraries (and even after that the JVM will likely be the engine underneath whatever replaces Java). Ruby might be worth using - if I need to add a scripting language to my Java project (given the nice integration with Java touted for JRuby). But otherwise Ruby may just be yet another fad, it's difficult to know at this stage - the Tiobe index, for instance, indicates that Ruby interest has already peaked. Maybe it will move up to replace one of the "old hot" scripting languages, and maybe it will fade away like so many others have already done. It's not something I'm rushing to use just yet.
Now on with the rest of our newsletter. Of course we have our usual news, article links, tools, and extracted tips. Over at fasterj.com, I talk about whether writing a technical book is worthwhile; Javva the Hutt tells us about his new job; and, of course we have extracted all the tips from those articles.
Java performance tuning related news.
Java performance tuning related tools.
Back to newsletter 079 contents