Channels ▼
RSS

JVM Languages

The Rise and Fall of Languages in 2012


Programming languages are living phenomena: They're born, the lucky ones that don't die in infancy live sometimes long, fruitful lives, and then inevitably enter a period of decline. Unlike real life, the decline can last many, many years as the presence of large legacy codebases means practiced hands must tend the code for decades. The more popular the language once was, the longer this period of decline will be.

More Insights

White Papers

More >>

Reports

More >>

Webcasts

More >>

The emergence of a new language, however, is almost always tied to needs in a specific sector. For example, Ruby's sudden adoption when Ruby on Rails appeared, and Objective-C's surge, which began in 2007 when the iPhone first shipped. So, understanding the movements up or down — the fluctuations as well as the trends — often delivers valuable insights into the current coding issues.

The most recent processor phenomenon — the transition from the multicore to many-core era — was expected to set the stage for the emergence of functional languages, which fit well with concurrent programming. But most surveys from 2012 still show no major breakthrough. If a functional language does separate from the pack, the leading candidates are Scala and Clojure, with Scala enjoying the greater adoption right now. (Per Ohloh's language figures, which cover all open source projects, and Google trends, which indicate search traffic. On the venerable Tiobe index, which tracks the number of Web pages that mention a given language, Haskell, Erlang, and Scala are effectively tied and ahead of Clojure.)

Language popularity numbers tend to frustrate advocates both for and against certain languages. For years, the fall of Java has been predicted for example. But numbers from the aforementioned three sources suggest otherwise. Java, year over year, is effectively unchanged during the last three years. It is holds either the #1 or #2 (behind C) spot in all major language surveys. This might appear to indicate that the constant complaints about the language and the availability numerous alternatives that run on the JVM (JRuby, Scala, Kotlin, Clojure, Fantom, Gosu, and the rest) have not diminished Java's popularity. However, I think the greater truth is that the language is in decline in its traditional settings, but that the popularity of Android has made up for the shortfall.

The other major mobile language, Objective-C, did well, too: It surged in the Tiobe index (garnering the most growth of any language year over year). On Google trends, it has remained at the same high levels it reached after 2007 (when the first iPhone was launched and mobile development came into its own). However, if Android continues to eat into Apple's worldwide market share, we should expect to see Objective-C stabilize and Java grow.

In general-purpose scripting languages, Python continues to grow slowly, JavaScript and Ruby are treading water, and Perl continues its long decline. According to Google trends, the number of searches for Perl is 19% of what it was in 2004. Its declining role in open-source communities further cements the perception that it's in an irretrievable tailspin. One should always be careful pronouncing a language dead or dying, because rare resurrections have occurred: JavaScript and Objective-C being two stand-out cases. However, Perl is unlikely to see such a new lease on life because of direct competition from Python, which is considerably more popular (whereas Objective-C and JavaScript had no direct equivalents when they came back).

The primary native languages, C and C++, remained effectively the same, rising or falling slightly in the various surveys. The numbers undermine the hope articulated by Microsoft's Herb Sutter that we would see a C++ "renaissance." Google Trends for the last five years shows a steady drop in queries about C++:

Most established languages see a downtrend in Google queries over the last five years, so the decline is not inherently damning — although if a renaissance were afoot, you'd expect to see some upturn. Other indicators of the language (such as changed LOCs in OSS) are, in fact, holding steady. Some even have increased slightly. I think that part of Sutter's hope of renewal was based on C++11 being finalized and the expectation of greater adoption of the language in conjunction with the release of Windows 8. However, I can see nothing that suggests this is occurring. In fact, I can find no evidence that C++ is breaking into new niches at a pace that will affect the language's overall numbers. For that to happen, it would need to emerge as a primary language in one of today's busiest sectors: mobile, or the cloud, or big data. Time will tell, but I feel comfortable projecting that C++ will continue to grow in its traditional niches and will advance at the same rate as those niches grow.

Other quick thoughts: Lua and Tcl, the two languages most used for embedding in C and C++, continue to head in opposite directions. Lua is widely used in gaming and the advent of the new, screamingly fast LuaJIT has made it an attractive option even in performance-sensitive contexts. Tcl meanwhile continues its decline, which has been attributed by insiders to core design issues, slow releases, and poor marketing decisions.

In 2012, we covered several emerging languages we thought had good potential for breaking into the mainstream, notably D, Go, and Dart. While they have not yet entered the premier tier, they are slowly working their way forward and gaining adherents. We will examine more new and interesting languages this year and report on their progress as they vie for developer love.

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


Related Reading






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_-eea9eedca2f8579afcfd0b9e4c922058
2013-11-05T17:41:52

It's important to remember that a few of these Google searches might be related to C# rather than C/C++. And anyway, the death and rebirth of languages is as common in technology as it is in the real world, consider VB (let heated debate commence):

http://www.dotnetresourcing.co...


Permalink
ubm_techweb_disqus_sso_-c9258060c13798f293a329f55b051509
2013-03-02T06:54:50

Digia will shortly release Qt for Android and ios. That should give big boost to c++. Productivity depends on the framework, not the language. So with Qt, the argument of productivity some people are trying to bring up against c++ is simply not acceptable. A Qt / c++ programmer can be as productive as a Java or .Net developer.


Permalink
ubm_techweb_disqus_sso_-31bd3a9eeb03e2e772da97b26df0c4ac
2013-02-14T21:10:52

I am curious as to why C# was not mentioned. Seems as Microsoft goes, so will C#.

Additionally, I would have to disagree on the steady decline of Perl comment. While your numbers may indeed show this decline, my analysis, going back 10 years, shows that indeed Perl has declined but recently has flattened out. I have heard for years now that PHP and/or Python would replace Perl. But with the largest open-source library in the world (i.e. CPAN), I do not see Perl going away anytime soon. And when (if?) Perl 6 ever becomes a reality, while not actually being Perl (i.e. Perl6 is a sister language of Perl), I can see Perl or a Perl-like language being a player for the near future at the very least.


Permalink
ubm_techweb_disqus_sso_-d23dc655c6b8fefd5017cfd6374f9e5c
2013-02-04T15:54:47

Investing into any programming language can be future assets.


Permalink
ubm_techweb_disqus_sso_-92d9a0020a9a018d96cc59edb6a768da
2013-01-17T18:59:08

From the article: "JavaScript [and Ruby are] [is] treading water..."
This may be true for Ruby, but I have a difficult time believing that JavaScript is "treading water". It's a part of HTML5, tons of books are being published on it every month and new JS libraries (jQuery, BackboneJS, Ext JS, KendoUI, too many more) are surfacing every day. YAJL is occurring every day? YAJL? Yet Another JavaScript Library is created every day. This one statement from the article and the fact that there is no mention of C# throws a shadow of doubt upon this entire article. Although, since this is a "rise and fall" article, maybe the lack of C# mention means it is basically steady. Maybe rethink the "JavaScript is treading water..." statement. :) I always enjoy your articles though.


Permalink
ubm_techweb_disqus_sso_-c0afd50b1f3d85e79c8ce635276aeedf
2013-01-14T18:07:35

Every programmer should agree in that there's no good computer languages, but some languages are good for some specific software block. read more http://abc.misproyectosenred.c...


Permalink
AndrewBinstock
2013-01-12T04:20:29

"you ignore the fact that Tiobe rates C++ as having gained 1.1% in the last year" and "you're cherry picking data to support foregone conclusions."

I specifically said that some indicators have C++ growing slowly (did you not read that?) but on average they're flat. The data across the three indexes I used is exactly as I represented it.


Permalink
ubm_techweb_disqus_sso_-73f5f7dcae278ba776a6dc944163ff32
2013-01-12T02:39:12

It's interesting how many different interpretations can be put to the same (or at least very similar) data. You quote Tiobe about some things, but then ignore the fact that Tiobe rates C++ as having gained 1.1% in the last year. That may not sound like much, but it's the second biggest gain of any language among their top 20 (beaten only by Objective C in this respect).

During the same time, C showed a rather more modest (0.9%) gain, while Java and C# both showed losses -- a minuscule one for Java, but a rather more serious one (2.6%) for C# (by far the biggest drop they show, at least among their top 20 languages).

I'm not sure who @dg_to is saying named C# the language of the year for 2012. Tiobe certainly didn't. They named Objective C the language of the year.

I don't think Tiobe is the be-all and end-all of measuring language popularity or use, but it does seem to me that you should either treat it as an authority or not. The way you've written the article looks (at somewhat) as if rather than drawing conclusions from the data, you're cherry picking data to support foregone conclusions.


Permalink
ubm_techweb_disqus_sso_-73f5f7dcae278ba776a6dc944163ff32
2013-01-12T02:12:46

Read Ian's critique of C++. Whether you agree with it or not (I don't) by the time you finish, you'll realize that trying to argue with him on this subject is pointless.


Permalink
ubm_techweb_disqus_sso_-f6c55380be8ca712bf9310205f5e223f
2013-01-10T16:47:08

This article is incomplete without mentioning C# - seeing as how it was named top programming language of 2012.


Permalink
jack_anonymous
2013-01-09T16:25:08

Re - functional languages, many-core and concurrent programming.

Current popular application architectures and usage typically involve many people/requests running on few CPU's (standard web server transactions, REST, etc).

If we are expecting concurrent programming requirements to drive the adoption of functional languages - we need application scenarios where a single user request needs the muscle of many-cores to complete in a timely fashion. Off the cuff, I cant think of any such domains/application scenarios where we need that much horse power behind a single mouse click.

I suspect current language threading technology will do the job for the foreseeable future. The adoption of functional languages will need another reason to become mainstream.


Permalink
ubm_techweb_disqus_sso_-04dfd4d4820955bea6e151758a9179ac
2013-01-09T15:45:02

I think it's too early to call an end to a resurgence in C++ adoption.

Tooling is still lagging in commercial compilers and while the open source community has provided an extremely strong showing in both GCC and Clang, platform/OS (MS, OS X) adoption of the latest compilers still run at least a rev or 2 behind.

Until broader platform adoption arrives, the mainline business developers, and many product development teams will have to be content with hoping for better things to come.

What this simply implies is that realization of Mr. Sutter's belief may extend, if at all, well into 2013 or early 2014.


Permalink
ubm_techweb_disqus_sso_-95de93ae003f4002be70941a776f4baa
2013-01-09T13:31:04

Your definition of good performance is probably different than definition used by C and C++ programmers. When systems are tuned to the microsecond and nanosecond level, which is not as uncommon as you might think, interpreted and managed languages are not an option.


Permalink
ubm_techweb_disqus_sso_-c1319b5c2a8b278ec6190de7d1d46918
2013-01-09T02:19:58

C and C++ have too many flaws to continue on too much into the future. Many have realised the programmer productivity in interpreted and managed languages. But any performance advantage of C and C++ is undermined by the fact that it is too easy to subvert systems written in C. Native and systems languages can have performance along with security and programmer productivity.

http://members.iinet.net.au/~i...


Permalink
ubm_techweb_disqus_sso_-eab14e0d5fe883c2c4be3863f1f572b7
2013-01-09T01:39:37

Seems like the elephant in the room that no-one wants to talk about is C#?


Permalink
ubm_techweb_disqus_sso_-cd85bd728905f9805f84c121986c9abb
2013-01-08T23:37:23

Some trend of queries on Google in no way contradicts Herb Sutter. Seeing the industry from inside doesn't make me to think that C++ used any less but upgrading it to C++ 11 definitely changes the game at least for some.


Permalink

Video