We last looked at the best languages to learn in February 2014. The results were ranked by data obtained from:
- Jobs Tractor; a company which analyzes job adverts on Twitter
- Lynda.com; an online video training course provider, and
- the RedMonk survey which examined the frequency of projects on GitHub and questions on StackOverflow.
The IEEE Spectrum Survey
IEEE Spectrum recently completed a survey which uses no less than ten sources to rank the popularity of programming languages:
- search results in Google
- data from Google Trends
- tweets sent on Twitter
- GitHub repositories
- StackOverflow questions
- Reddit posts
- Hacker News posts
- demand for jobs on the Career Builder job site
- demand for jobs on the Dice job site
- IEEE Xplore journal articles
Languages were allocated to web, mobile, enterprise and embedded categories. The interactive tool allows you to make your own comparisons and apply custom weightings to the data sources if you don’t agree with IEEE Spectrum’s methodology. In summary:
IEEE Spectrum All Languages Top 20
- Visual Basic
If you omit ‘Embedded’ languages, the positions stay the same but Assembly and Arduino disappear.
IEEE Spectrum Web Top 10
IEEE Spectrum Mobile Top 10
The Weird Stuff
There are a few classifications and results I would question…
- Python is classified as both ‘web’ and ‘enterprise’ although PHP and Ruby are just ‘web’?
- Yes, HTML isn’t a language but it’s classified as ‘web’ only and somehow comes below SQL, Perl and even Assembly?
- The sources are a little IEEE Xplore and US-centric which could sway the chart.
Is it Wrong?
Overall, the data sources and survey methodologies seem reasonable. But it will be questioned by developers because it can never match our unique reality bubble which is focused on specific technologies.
Perhaps it’s not surprising to find Java topping most charts because it can be used in so many places; application development, server-side web development, Android development and — importantly — education. Many schools, colleges and universities teach Java so resources and questions are littered throughout the web. More recently, Python has gained traction as an introductory language so it will enjoy similar benefits.
Next, we have C and C++ which been around for 45 years in various incarnations. If all C-based projects ceased today, a rich history of the language would remain on the web for many years to come.
C# is slightly unusual given ASP.NET lingers at number 30 in the all-languages chart. That said, it has been in use for more than a decade and is almost as ubiquitous as Java. Many businesses sole output is Microsoft-based software.
Is it Useful?
These surveys are interesting but, again, I stress that you should NEVER use them the basis for changing or enforcing your career path. The survey shows a historical snapshot in time; it’s the technologies we have been using. It doesn’t follow they’re the ‘best’ options today or whether they’ll still be used tomorrow.
Developers are in a fortunate position; the demand for skilled workers outstrips supply throughout most of the world. Few professionals went hungry in even the darkest days of the economic depression. You therefore have the luxury of choosing technologies which interest you, whether that’s websites, mobile gaming, statistical analysis or intelligent toaster development.
Concentrate on work you enjoy and it won’t seem difficult to become a great software engineer. Choosing a language for financial gain or because someone else suggested “it’s a good idea” is significantly harder. You’ll resent the effort; it’s soul-destroying and you may never become the well-paid superstar you wanted to be.
That said, never stop learning. There is one fundamental difference between good and mediocre developers: curiosity. A good developer will enthusiastically leap into their sectors of ignorance to learn and adopt new techniques. The IT world moves rapidly and even the highest-paid Java gurus should not expect to constrain their knowledge forever.
In summary, take a look at the chart, nod sagely, moan loudly then get back to the more interesting Fortran, Visual Basic or Cobol project you’re working on!
Have you recently chosen a new language? What influenced your choice? Have you regretted your decision?