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
- Java
- C
- C++
- Python
- C#
- PHP
- JavaScript
- Ruby
- R
- MATLAB
- Perl
- SQL
- Assembly
- HTML
- Visual Basic
- Objective-C
- Scala
- Shell
- Arduino
- Go
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
- Java
- Python
- C#
- PHP
- JavaScript
- Ruby
- Perl
- HTML
- Scala
- Go
IEEE Spectrum Mobile Top 10
- Java
- C
- C++
- C#
- JavaScript
- Objective-C
- Scala
- Delphi
- Scheme
- 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 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 significa
ntly harder. You’ll resent the effort; it’s soul-destroying and you may never become the well-paid superstar you wanted to be.
ntly 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!
No comments:
New comments are not allowed.