I have written several posts regarding job trends in programming languages. However, I have not really written any posts that looked towards the future of programming languages. With job trends, I have been focusing on more heavily adopted languages. In this case, I wanted to look at some other languages that are gaining popularity but have not really become one of the top languages to use. Part of this analysis uses the Tiobe December 2010 rankings, some from ReadWriteWeb’s recent programming languages post (based on this Dataists post), and the rest comes from the job trends that are included. Two languages from the normal job trends posts that will continue to see solid growth and deem mentioning are Objective-C and Python. Obviously, with the growing Apple ecosystem, Objective-C continues to grow. Python is being used in data analysis, which is growing rapidly, as was mentioned in my recent post on some O’Reilly data.
I have not split these languages into any particular type, like traditional and scripting, because I wanted to look at everything together. Some of the jobs data is difficult to include because of the amount of noise from other industries. Go and R have a lot of noise in particular and are not included in the graphs. However, they are included due to their origin (Google) and usage (Data Analysis) respectively. First, let’s look at the languages themselves ordered by Tiobe rank (Tiobe ranking and RWW & Dataist Tier included) :
- Go (Tiobe: 21 , Tier: 4)
- R (Tiobe: 26, Tier:3)
- Lua (Tiobe: 27, Tier:3)
- Scheme (Tiobe: 29, Tier:3)
- ActionScript (Tiobe: 37, Tier:2)
- Erlang (Tiobe: 49, Tier:3)
- Groovy (Tiobe: 50-100, Tier: 3)
- Scala (Tiobe: 50-100, Tier:2)
- Clojure (Tiobe: 100+, Tier:3)
Interestingly enough, there does not seem to be a correlation between the Tiobe rank and the Dataist Tier. If anything, it almost looks like a reverse correlation, but I am going to ignore correlation for now. So, how does the ranking data compare to the job demand data?
First, let’s look at the job trends from Indeed.com:
As we have seen in other job trends posts, SimplyHired focuses on short term trends:
Both graphs show ActionScript with more jobs but a fairly poor trend. Scheme has been growing slowly and has seen more recent interest. Groovy has been growing nicely, but not showing a really strong trend. The others have limited data, so there is not much we can see of the trends.
The job trend graph that could be more useful in this case is the relative growth from Indeed:
The relative growth is my favorite trend graph because it shows the rapidity of change. So in our case it can show which languages may be prepared for a breakout year. The two obvious trends are Lua’s strong growth and the explosion of Clojure in the past 18 months. Other notable trends are the growth of Erlang, Groovy and Scala. Scheme and ActionScript have fairly flat trends here.
So, I have presented a good amount of data, but I have not really said anything specific. All 9 languages should be watched in the next year as they all have some interesting level of activity in one area or another. Google searches, GitHub projects, StackOverflow questions and job trends are all flawed in some way. But if you look at them together, they present an interesting picture of what programming languages are really seeing activity or adoption. Without further ado, here is my ranking of what programming languages watch in the next year:
- Lua – The language is seeing some good activity on GitHub and StackOverflow. It has a solid Tiobe ranking, but more importantly, jobs for Lua are becoming available. The relative trend for Lua is a great indicator that it is ready to go mainstream.
- R – With data analysis and big data becoming a part of every web startup, languages catering to the data crowd will become popular. The job trend data will be the most interesting part to watch here.
- Clojure – While not popular within the Tiobe index, it is popular in some programming circles. In particular, its job trend growth is showing that it could be posed for a big year of adoption.
- Go – Only Tiobe really shows this as a popular language. It is not ranked well in the Dataist Tier, and job trends are not very reliable yet. However, with a parent of Google it may not need purely organic growth.
- Erlang – This has been around for a few years and has decent trends all around. With the continued growth of real-time technologies like XMPP (eJabberd specifically), PubSubHubbub and others, 2011 could be a year where it becomes the next Python.
- Scala – This is one of the interesting trends. Scala has a very good showing in the Dataist Tier, but is not really ranked in the Tiobe index. With the solid job growth trends and popular adopters (i.e. Twitter), Scala could gain a serious amount of acceptance.
- Groovy – More than anything, I believe Groovy missed its window of opportunity. It is a solid scripting language with decent job growth trends, but how can it differentiate itself from Ruby, Python, Erlang and Scala?
- Scheme – For whatever reason, this language refuses to go away and has even picked up some interest. Without decent job growth, we could be another year away from Scheme breaking out again, at least 30 years after it broke out the first time.
- ActionScript – ActionScript is included in this list because of its high ranking on Tiobe and the Dataist Tier. However, the job trends do not point to good things for the language. It could be a temporary slump, so you should keep an eye on it next year.
I know people will have lots of comments on this, but specifically I am looking for other languages that may be gaining popularity. Let me know what I missed in the comments.