We’ve been having some discussions at work recently, trying to determine what programming languages & frameworks to use on a new project we’ll be ramping up shortly. It’s always fun to have these discussions because there really is an amazing amount of choice available today. It also can be exhausting because everyone has their favorites, and people can tend to get wrapped up in what they want to do vs. what’s the right choice.
Me? I try to be somewhere in the middle, but it’s human nature to want to stay with what you know, and have your choices picked.
So it can be a bit of a balancing act trying to stay objective. It’s usually best to try and focus on the data where possible and not get into discussions about less concrete aspects. To that end, I’ve found the following sites pretty helpful in putting programming language popularity into perspective.
The first site on my list is TIOBE. I’d never heard of this site until recently. A good friend of mine, James, suggested it. It would seem to offer the most accurate analysis of where programming languages are with respect to one another. You can see how various programming languages stack up against each other and whether they’re rising or falling year over year.
The next site on my list is langpop. It takes a more traditional approach of looking at which languages are “popular”. This is a loaded word, but I like langpop’s approach of assessing popularity by looking at the following areas:
- Yahoo Search results for “language programming”
- Job postings on Craigslist – language programmer -“job wanted” site:craigslist.org
- Programming Language Books available on Powell’s Books
- Projects on Freshmeat via their new API
- Google Code Search
- Data from Del.icio.us – “language programming”
- Data from Ohloh – number of people committing code in a particular language
- Data from programming.reddit.com
- Data from Slashdot
- Freenode IRC – number of users per a given programming languages channel every few hours
- plus others….
Builtwith is another site that I find useful, but its focus isn’t just programming languages. It has a mix of languages, frameworks, widgets, and platforms, such as JQuery, Apache, Amazon CloudFront, etc. The interface doesn’t really allow you to compare specific solutions but it is helpful in seeing if a particular technology is trending up or down and also what types of penetration a technology has over another. There is a lot of data to mull over however, and it’s definitely worth a look.
Another site that’s pretty useful is w3techs. Specifically the Server-side Languages Trend. Their approach is a little limiting in my mind, mainly these couple of bullets on their Technology Overview page:
- We investigate technologies of websites, not of individual web pages. If we find a technology on any of the pages, it is considered to be used by the website.
- We do not consider subdomains to be separate websites. For instance, sub1.example.com and sub2.example.com are considered to belong to the same site as example.com. That means for example, that all the sub-domains of blogger.com, wordpress.com and similar sites are counted only as one website.
But all in all, I still find their data useful to look at in the context of all the other data I’m comparing it with.
The next thing I like to look at is the The Transparent Language Popularity Index. Again it’s another site that tries to give you a general profile of how language X ranks based on the occurrences of it’s name in various search engines. It’s moderately useful IMO.
Computer Lang. Bencharks Game
And Last but not least I find it useful to take a look at the debian.org project’s Computer Language Benchmarks Game. This site has pretty extensive benchmarks of various algorithms written in different programming languages but then run on the same hardware running Ubuntu. Here’s a couple of examples:
There is a LOT of detailed information that you can get your hands on here, if you’re interested in comparing one programming language with another in terms of time, memory footprint, and Lines of Code (LoC). Also they make extensive use of box plots.
- TIOBE Software: The Coding Standards Company
- TIOBE Programming Community Index for February 2012
- langpop.com – Programming Language Popularity
- W3Techs – World Wide Web Technology Surveys
- W3Techs – Historical trends in the usage of server-side programming languages for websites
- BuiltWith Technology Usage Statistics
- Computer Language Benchmarks Game
- Rosetta Code – present solutions to the same task in as many different languages as possible