O’Reilly publishes a series of posts every year on the state of the computer book market. I want to spend a bit of time analyzing one of the posts from this year on languages. Although it’s no longer freshly minted news, I haven’t seen anyone else talking much about it — with the notable exception of Klint Finley, who saw me mention it on Twitter — and it remains timely today. It should be no surprise that book sales serve as a good predictor, because they indicate which technologies developers are learning (despite some unavoidable bias because of differences in who still buys books).
Perhaps the most interesting data comes from the graph showing each language’s trends individually over the past 8 years:
What trends can we identify here?
- Java is showing a resurgence, with a low in 2009. It remains the overall most popular language.
- Microsoft languages like C#, the .NET family, and Visual Basic are on the decline, while still remaining popular in absolute terms. As a company, MS should continue to invest in creating a great development experience and platform for non-MS languages.
- The only Microsoft language showing a consistent growth trend is PowerShell, indicating the need that existed for a solid scripting environment on Windows.
- PHP, Ruby, and Perl may have seen their peaks, as all have declined greatly in popularity since 2007–2009. Ruby surprised me, although the others didn’t.
- On the other hand, Python continues to consistently grow in popularity every year, and R has shown an explosion in concert with Big Data and data science, both areas where Python is also a popular choice. These quickly growing niches have doubtless also contributed to the revival of Java, since Hadoop is written in that language.
- Low-level, compiled languages like C and C++ are on their way down. No surprise, with shrinking use cases due to the realization that programmer time is valuable and speed increases of higher-level languages.
- SQL is going downhill, likely driven by the dual trends of NoSQL and heavier use of ORMs, which are often built into popular app frameworks.
Disclosure: Microsoft is a client, and O’Reilly is not.