Channels ▼
RSS

.NET

The Rise and Fall of Programming Languages in 2011


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.

PHP's decline is tied, in my view, to JavaScript's emergence. JavaScript grew modestly this year on Tiobe but significantly in OSS projects. To the extent that PHP and JavaScript functionality overlap, JavaScript will increasingly rule the day. In a new survey (kindly shown to me pre-release by Zend, the company behind PHP), 82% of PHP developers use JavaScript as a second language. (The nearest competitor, Java, tipped the scales at a piddling 24%). Whether JavaScript's importance as such will continue to grow is hard to say. As I wrote a few months ago, I increasingly believe that JavaScript will become a universal intermediate language, with other languages, such as Coffeescript or Dart, serving as the front-end languages. Personally, I'm hoping that the browser vendors might agree to a compiled binary representation of JavaScript as a way to further accelerate its performance in the browser, but I believe this development could leave open possibilities for instruction extensions by individual browsers that might ultimately prove to be enough of a portability hindrance to off set any performance benefit.

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.

— Andrew Binstock
Editor in Chief
alb@drdobbs.com
Twitter: platypusguy

Related Article

The Rise And Fall of Languages in 2010


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Comments:

ubm_techweb_disqus_sso_-a91c0d9fd61468353047e3956256244c
2012-01-18T17:06:07

Thank you for a very interesting article, but I'd like to make an addition to your points. As you point out the one scripting language which is going up in the rankings is Javascript. I think some of the rise in JavaScript is due to the increasing power and sophistication of browsers which makes JavaScript a viable language for cross platform desktop app development.

But other factors which should be counted in the rise of JS are mobile web apps and hybrid native+HTML5 apps written in JavaScript which are both on the rise. They might not be as efficient or as powerful as compiled native apps but many informational and content based apps don't need a lot of computing power to deliver a great customer experience.

At AppFurnace we create tools to enable web developers and designers to create great cross-platform smartphone apps using their existing skills. To do this we have managed to create a very effective desktop designer/editor in pure HTML/JS/CSS and the apps people build use JavaScript as their programming language. So far performance has been fine for both case. It's free to play around if you want to have a look http://appfurnace.com

(Disclaimer: I'm a founder of AppFurnace)


Permalink
ubm_techweb_disqus_sso_-32cbe724cd324df6a146c781b239e8fb
2012-01-11T23:09:42

Clayton: I can't disagree with your point of view. Indeed, the maturity of alternatives has to be among the drivers. Thanks for adding that point.


Permalink
ubm_techweb_disqus_sso_-74ea3e3d1d1213a58d665990473fe793
2012-01-11T15:49:02

I agree with much of your assessment, especially concerning the rise of mobile development. However, I think Java's decline in popularity is less a reflection of Java's relevance and more of a statement about the maturity of competing platforms. In the late 1990's and early 2000's, Java was the only widely used managed development platform and over time, it enjoyed a very rich ecosystem and strong support from the open source community. What we are seeing, at least in part, is that other languages and development platforms are coming closer to parity and other viable solutions now exist. Essentially, what we are seeing is the programming language equivalent of capitalism.


Permalink

Video