Last year marked many changes in programming: Mobile devices emerged as a major programming platform and, at the other end of the spectrum, clouds became an established platforms for data and applications. In between, desktops and laptops gained substantially more RAM and somewhat more processor cores. Predictably, some of these changes trickled down to the choice of languages.
The well-known Tiobe Index (an index that culls frequency of mentions of languages and language products and translates it into a percentage of overall mentions) found the greatest language growth last year to be in Objective-C. I believe few readers would be surprised by this. Between the iPhone, iPod, and iPad (and to a lesser extent Macs), the demand for Objective-C skills has clearly grown.
The effect of mobile appears as well in Java, which over the last 10 years of Tiobe data has been in a steady decline. Two years ago, it began something of a comeback I believe driven by Android development and this year, Java stayed essentially even with last year. My belief is that Android is filling the gap caused by JVM languages, such as Scala, Groovy, and JRuby, which are drawing Java developers away from the language on desktop and server platforms.
As mobile programming takes off, it brings developers back to a lower level of programming that's closer to the hardware. Typically, because applications on a mobile device tend to have small code bases and require specific languages to exploit every new hardware feature, scripting languages have gained little traction in this area. (Apple's tight controls on languages and tools has also contributed to the phenomenon.) As a result, for the first time in years, possibly ever, all the primary scripting languages Perl, Python, Ruby and PHP declined this year. Of these, Python and Ruby's are the most interesting.
Ruby's showing in the Tiobe Index is seconded by its numbers on Ohloh.net, which tracks the number of contributions to open-source projects by programming language. LOCs of Ruby changed or added in 2011 were at their lowest level since 2006 a fifth of what they were in 2008. I expect that part of the reason for this is that the Ruby on Rails (RoR) jubilation has finally subsided; not because of any inherent defects in the framework, but because it is only one solution to a larger problem. In addition, other frameworks have started adopting some of the original innovations that RoR brought to the fore. Python's fall in Tiobe is not reflected in the Ohloh numbers, which suggests that the decline is likely due to the overall market expanding faster than Python's own ranks, thereby giving it a smaller share.
The trend away from scripting to more native languages was also evident in the .NET world. C# saw a huge rise in adoption (second only to Objective-C's jump). The surge was sufficient to move C# ahead of C++ for third place in the Tiobe Index. A significant portion of this rise, I believe, came from developers moving away from Visual Basic. This trend curiously undercuts the core .NET proposition; namely, that developers would use multiple interoperable languages on the platform. But in fact, as the number of languages on .NET consolidates around C#, the benefit is becoming less valuable. (Ironically, the opposite is happening on the JVM, where there is a proliferation of alternative, interoperable languages.)
One year does not a trend make, so changes need to be looked at as indicative but not conclusive. However, the move to non-scripting languages, because it's occurring uniformly across so many idioms, might well augur the end of the cycle that held developer time was worth the sacrificing of performance and closeness to the execution platform. We'll see.