As the Dynamic Languages Experts we often get asked:

Which open source dynamic language has the greatest usage?

Which open source dynamic language is currently growing the fastest in usage?

Why are these questions relevant? Our customers and partners want to know:

How to evolve their products to support the needs of these languages

What language to use as they create new applications or upgrade systems

What language has the biggest community they might be able to rely on and

What languages are popular so they can keep up with the market

There are six key dynamic languages (or scripting languages, as some people say) that we focus on: Perl, Python, JavaScript, PHP, Ruby, and Tcl.

One source that is often used to answer the “usage” and “growth” questions is the TIOBE Index, which tracks a variety of different programming languages. However, some people have voiced concerns about the reliability or accuracy of this index. At ActiveState, based on our own web statistics, interaction and conversations with developers, and sales figures, we also have our own data on answers to the “usage” and “growth” questions, but we wanted to expand our data set with other third-party sources beyond are own or TIOBE.

We looked at the following additional sources: MarkMail, Indeed, Ohloh, and BlogPulse. See “Detailed Approach & Methodology” section for complete research details). Indeed was the source that received a higher weighting relative to the other sources as it represents how ingrained or prominent each programming language is within development environments. Furthermore, we feel Indeed captures both new development and older code bases, exemplifying how “sticky” a programming language has been over time.

So what’s the answer?

Based on a compilation of data from all these sources, we tabulated scores, weightings, and rankings for these languages.

Which Dynamic Language has the greatest usage?

When it comes to usage, not surprisingly, PHP is the leader due to its huge presence on the web. This is followed by JavaScript, then Python/Perl (which are effectively equal), then Ruby and of course rounding out the list is Tcl, which is a very niche language.

Which Dynamic Language is currently growing the fastest in usage?

No question. Python is the fastest growing Dynamic Language today. We think many are under-estimating its popularity and we expect to see a lot from Python in the coming years. Python is then followed by JavaScript, then PHP, Ruby, Perl, and Tcl. What will be surprising to many is that Ruby ranked 4th on the list!

Why does Python have such high usage and growth? We believe there are a few reasons:

Companies from Microsoft to Google have embraced Python and are not only supporting its use, but also investing in its development

Strong support and community

Established developer base

Enterprise friendly licensing

Popularity for web applications as cloud computing becomes more prevalent

Proposed by the SEC for use in financial modeling

Except for Tcl, eWeek recently included Python, Perl, Ruby, PHP and JavaScript in the “Top 10 Programmer Languages to Keep You Employed“. Some of the drivers for the popularity of dynamic languages include:

Younger programmers (tomorrow’s software leaders) are preferring to learn Python, Ruby, or PHP; rather than static languages.

IT is a big user of scripting solutions

Ease of use

Lower development costs, reduced maintenance costs, and faster development times/faster time to market

The large communities around these languages have built considerable knowledge bases and broad code repositories for potential reuse across a wide range of applications.

What do you think? Why do you think Python is growing so fast? Are you planning on switching to Python, if you haven’t already done so?

Detailed Approach & Methodology

To compile and summarize the information, in addition to the TIOBE Index and our own internal data, we used the sources and methodology below.

MarkMail: MarkMail is a free service for searching mailing list archives. By searching on specific terms, such as “Perl” you can get an indication over time how often Perl is used on the mailing list archives compared to say “Python”. You can get an indication of both “usage” and “growth” from MarkMail. The following two figures for Perl and Python are examples. As you can see, Perl has been steady since 2001, while Python has been showing growth over the years.

Perl

Source: http://markmail.org/search/?q=perl

Python

Source: http://markmail.org/search/?q=python

Indeed: Indeed.com is a search engine for jobs and we use their “job trends tools” to track how often job postings reference the popular dynamic languages. They have both an absolute and a relative comparison which can be seen below. As you can see, JavaScript and Perl are the most popular languages mentioned in job descriptions. But Ruby shows the most relative growth.

Ohloh: Ohloh is a free public directory that tracks open source software and people who are involved in open source projects. They have a very good tool for tracking and comparing what is going on with many different programming languages. For purposes of getting more insight into our “usage” and “growth” questions we focused on three specific tools: commits, contributors, and projects. The results for commits are shown in the two figures below. The “values” figure allows us to gauge usage activity whereas the “relative” figure allows us to gauge the growth of the languages relative to each other.

BlogPulse: BlogPulse is an automated trend discovery system for blogs. Similar to MarkMail but rather than focusing on mailing list archives it focuses on what is being said in blogs. BlogPulse is good for a feel on the “usage” question, but not on the “growth” question for the timescale they use is too short. What we found on BlogPulse is as follows:

Of course with MarkMail, Indeed, and BlogPulse our analysis will include counts for search terms that do not have anything to do with a Dynamic Language (such as snakes for “python”). This is not a science, but it broadens our view by considering a number of different factors rather than just using TIOBE and or our own internal data.