The Best Programming Language to Learn in 2014: Mid-Year Update

Craig Buckler

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
  •; 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

  1. Java
  2. C
  3. C++
  4. Python
  5. C#
  6. PHP
  7. JavaScript
  8. Ruby
  9. R
  10. MATLAB
  11. Perl
  12. SQL
  13. Assembly
  14. HTML
  15. Visual Basic
  16. Objective-C
  17. Scala
  18. Shell
  19. Arduino
  20. Go
IEEE Spectrum’s 2014 Ranking Graph

Source: IEEE Spectrum’s 2014 Ranking

If you omit ‘Embedded’ languages, the positions stay the same but Assembly and Arduino disappear.

IEEE Spectrum Web Top 10

  1. Java
  2. Python
  3. C#
  4. PHP
  5. JavaScript
  6. Ruby
  7. Perl
  8. HTML
  9. Scala
  10. Go

IEEE Spectrum Mobile Top 10

  1. Java
  2. C
  3. C++
  4. C#
  5. JavaScript
  6. Objective-C
  7. Scala
  8. Delphi
  9. Scheme
  10. ActionScript

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?
  • Is C# mobile development really above JavaScript and Objective-C? And who’s creating phone apps in Scala, Delphi and Scheme?
  • 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 have 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.

As we reach the lower places it becomes more difficult to compare relative positions. Technologies such as HTML and SQL have a wide reach, but may only be mentioned in passing for PHP, JavaScript and Ruby job opportunities and articles.

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?