Originally published at: http://www.sitepoint.com/whats-best-programming-language-learn-2015/
I’ve been following programming language statistics for several years. There are a number of data sources including code repositories, Q&A discussions, job advertisements, social media mentions, tutorial page visits, learning video views, developer surveys and more. Data is published at different times, none can be considered accurate and all have flaws — but they can be useful for spotting industry trends.
GitHut
GitHut is a relatively new resource which analyzes 2.2 million active repositories on GitHub. The top ten:
Jobs Tractor language trends analyzes many thousands of job postings on Twitter. The latest figures from September 2014:
Java
Objective-C
PHP
SQL
Java (Android)
C#
JavaScript
Python
Ruby
C++
TIOBE Index
The TIOBE Index rates languages on the number of skilled engineers, courses and search engine rankings.
C
Java
C++
Objective-C
C#
JavaScript
PHP
Python
VisualBasic.NET
Visual Basic
Completely Unscientific Meta-Survey Ranking
If we combine these four surveys, we arrive at this result:
Java (all)
JavaScript
PHP
Python
C / C++
C#
Objective-C
Ruby
Visual Basic
I combined C and C++ and ignored CSS and shell scripting. CSS isn’t a programming language as such although preprocessors come close. Shell scripts are useful regardless of whatever technologies you adopt but you won’t find jobs where it’s the only language you need. Continue reading this article on SitePoint
I used to like that framework benchmark shootout. But on close inspection it is really crappy. The code for the tests is built completely differently even for the same language making scientific comparison impossible. Basically they compare apples and oranges and then make some flawed conclusions based on the incorrect data.
Even if it was correct, CPU performance of a web language should not guide your decisions on what you should choose. CPU is rarely the bottleneck in a web app… and if it does become the bottleneck, it’s going to be more likely it’s the programmer’s fault.
By the time execution speed matters, your site should big enough to hire people to optimize those parts.
It’s just above Scala at #18 on the full list and ranked as one of the fastest growing, #3 on New Forks and #1 on New Watches. It probably won’t ever make top 10 overall, simply because of it’s limited scope.
Plus, this is based on Github repositories. Swift hasn’t even been out a year and even making top 30 in number of repositories is a pretty big achievement.
mawburn is spot-on. Swift is doing well for a new language and may eventually replace Objective-C but it’ll take some time. If you have a choice of learning either, I’d opt for Swift. That said, I stopped the OS-specific development nonsense many years ago and embraced the web!
Interesting. Surprised SQL dropped off your meta analysis, but with so many sql/data abstractions, is SQL going the same way as Asm? i.e Data access handled by tools.
SQL dropped off the meta chart because it was only high in Jobs Tractor and outside the top 10 of the others.
It’s normally a requirement for most server-side and many desktop jobs. But SQL-only vacancies are relatively rare and it may not be mentioned in other job adverts because it’s presumed to be essential.
Framework abstractions may influence the ranking but, for anything reasonably complex, you’ll still require SQL skills.
Completely agree with the “just build stuff” advice. It’s great to keep a pulse on what languages are currently relevant, but I’ve found that overanalyzing the best language at a particular time to be a zero-sum game. With some exception, any language can be used well or poorly to achieve particular ends – and you are absolutely right – like learning a foreign language, bits and pieces along with overarching paradigms are often readily transferrable.
You do and it’s a reasonably quick way to get into web/app development if you already have some programming experience.
My only hesitation is the Angular part of MEAN. It does a lot of magical stuff, intermingles content with functionality and hides what’s really going on. v2 is also completely different to v1. It may be preferable to learn the basics of HTML, CSS and JavaScript first.
Unfortunately, dropping the ‘A’ means you like using MEN which can lead to some misunderstandings…
Well, said. Surveys, as you correctly put it, do not tell you the whole story. And the secret lies in finding problems whether personal or otherwise and then building. I wanted to code viruses in Middle School so I picked up assembly language. By the time I was in High School I developed an appetite for web development so I pursued PHP. I played around with JavaScript to enhance user experience on my websites. Finally, now I plan on transferring my project to Android so I will have to learn JAVA!
I guess I would even argue about focusing on programming languages alone. Where I see the biggest money and scale is by building websites…or even apps and helping clients to get results, not just being a hired programmer. Then your expertise will become so much more scalable. - (http://www.1stwebdesigner.com/what-programming-language/)
I would go either with WordPress/PHP path by leveraging premium WordPress themes, frameworks to build out websites quickly and focusing then on bringing results client desires.
Or yes…for programming path - definitely mobile app development. Where you just take your pick…for Apple, for Android…?
Third one is Ruby on Rails - for startups, again heavy programming path.