At JavaOne 2007 I spent some of my time trying to figure out where things are going. It has always seemed to me that you either knock yourself out keeping up with every last thing (shiny new toy syndrome) or you try to figure out what is going to be important and focus on that (pragmatist). I am in the latter camp, but fortunately I know many people in the former camp. For programming languages I read the TIOBE Programming Index each month.
The May 2007 edition confirms a trend that I mentioned to a few people at JavaOne. Ruby had leveled of at the end of 2006. It is now in decline. From Tiobe’s commentary:
Although, Ruby is the rising star if you look back 1 year, it is not growing more the last couple of months. Even worse, since April it is slightly declining. If this appears to be the new trend, then also Ruby does not become the “next big programming language”.
Java, C and C++ have been dominating the TIOBE index from the start and it seems as if they will keep this status for a long while. Possible new candidates are Lua (from 55 to 23 in 1 years time) and Groovy (from 103 to 52). These are, just like Ruby, lightweight scripting languages. I have the impression there is a maximum to such dynamically interpreted languages. Although very popular for web-based programming, statically compiled languages remain the core of all enterprise software systems.
The significance of the drop in May and the leveling of is that “Ruby does not become the ‘next big programming language'”. I learned both Ruby (and Python) in 2005 in preparation/mitigation of that happening.
Does this mean that Ruby is not important? No.
Firstly, Ruby (and Rails) are having enormous influence on the development and direction of the more entrenched languages and frameworks. In evidence of this I cite what is happening to Java. By Java I specifically include the JVM runtime. Within this broad church we see JRuby, JSR241 aka Groovy, JSR292 invokeDynamic (http://blogs.sun.com/jrose/entry/jsr_292_deep_dive_notes), and numerous influences to web frameworks such as SEAM. I have suggested to Paul Hammant that he create a graphical representation of web framework influences, which would make this last point clearer.
Secondly, if you look at the chart above, Python, JS, PHP and Ruby make up a pretty big chunk. They are not going away. Taken as a group they are slowly growing. So let the appservers and runtimes (see Glassfish V3 and JVM7) run them. If developers do not use Java they will be using Java infrastructure. And just as the dynamic languages run everywhere, so does Java Infrastructure.
So we see that the Sun, and the broader Java industry, is taking an each way bet. Suck up the good ideas from the Ruby community into your own stuff so that you keep your own adherents. Failing that be a great place to deploy apps written in dynamic languages. Either way you stay relevant.