The Programming Language Compass - Which language should you learn?

in #programming8 years ago

It depends. Many people simply recommend popular programming languages. And for good reason. Being popular means that there is a plethora of tutorials and examples available and there is a very good chance that every question that crosses your mind is already answered on Stack Overflow.

Measuring Popularity

But how can you actually measure the popularity of programming languages? Two examples of such measures are the TIOBE Programming Community Index [1] and PYPL PopularitY of Programming Language [2]. TIOBE measures popularity by counting hits for the query "{language} programming" [3] in various search engines. PYPL does essentially the same, but uses the term "tutorial" instead of "programming".

So let's take a look at the most popular programming languages according to those measures:

TIOBEPYPL
JavaJava
CPython
C++PHP
PythonC#
C#JavaScript
PHPC++
JavaScriptC
Visual Basic .NETObjective-C
PerlR
Assembly languageSwift

Then I should go learn Java?

When you are first starting out - meaning you are in the process of learning your very first programming language -choose one of the popular languages. Which one doesn't matter. What matters is that there is a big community around this language that can answer your questions and prevent you from being on your own. Don't fall into the trap of trying to learn how to program and develop your idea at the same time. Start small. Too often I see people like Bob, who aim too big:

  • Bob wants to become a frontend developer and thinks JavaScript would be an ideal first language
  • He reads on the forums that the best way to develop Single Page Applications in JavaScript is ReactJS
  • But ReactJS uses special JSX syntax which needs a transformer to be recognized as JavaScript, he finds the tool Webpack which solves this issue
  • It seems that ReactJS only renders views, but where the data for these views comes from isn't specified. He finds the library Redux
  • Bob now has to learn JavaScript, Webpack, ReactJS, Redux and 50 other related frameworks.


Bob gives up. Programming is complicated enough. When you are actually trying to build something it gets exponentially more complicated. Learn how to program in small simple steps and expand your toolbox incrementally. There is no trick and no fast track.

The Programming Language Compass Series

But for people who can already program, popularity is far less important. Tooling and the right ecosystem for the job become much more important and this topic is what this series is actually about. In the coming weeks I will release multiple articles that go into one specific area, like machine learning, and examine in-depth the tooling, libraries and overall ecosystem in various languages to determine which languages are best suited for this specific area.

If you have ideas for more, let me know in the comments.

NameLink
Data Science and Machine LearningComing Soon
Web Development - Frontend/Backend/Full StackComing Soon
Game DevelopmentComing Soon
Mobile DevelopmentComing Soon

References

[1]http://www.tiobe.com/tiobe-index
[2]http://pypl.github.io/PYPL.html
[3]http://www.tiobe.com/tiobe-index/programming-languages-definition
Sort:  

Code is rule

Nice, Should we expect more on this topic? Hope so

Yep, more is coming :)

Congratulations @saytiras! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 3 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Hi! This post has a Flesch-Kincaid grade level of 9.8 and reading ease of 63%. This puts the writing level on par with Michael Crichton and Mitt Romney.

Keep up the great work @saytiras
Upvoted