What is the best programming language to learn in 2015?

Original author: Craig Buckler
  • Transfer
For several years now I have been tracking statistics in programming languages. There are a large number of data sources, including code repositories, discussion of questions and answers, job offers, mentions on social media, visits to pages with educational materials, views of training videos, surveys of developers, etc. Data were published at different time periods, none of them can considered to be absolutely accurate, there are flaws everywhere, but they can be useful for identifying trends in the industry.


GitHut is a relatively new resource that parses 2.2 million active repositories on GitHub. Top Ten:
  1. Javascript
  2. Java
  3. Python
  4. CSS
  5. Php
  6. Ruby
  7. C ++
  8. C
  9. Shell
  10. C #

source: GitHut


The 2015 RedMonk language rating determines popularity through activity analysis on both GitHub and StackOverflow. These are the results:
  1. Javascript
  2. Java
  3. Php
  4. Python
  5. C #
  6. C ++
  7. Ruby
  8. CSS
  9. C
  10. Objective-c

Data taken on RedMonk

Jobs tractor

Jobs Tractor uses language trends to analyze the many thousands of work-related Twitter posts. The latest data for September 2014:
  1. Java
  2. Objective-c
  3. Php
  4. SQL
  5. Java (Android)
  6. C #
  7. Javascript
  8. Python
  9. Ruby
  10. C ++


The TIOBE Index compiles a language rating for the number of qualified engineers, courses, and ranking in search engines.
  1. C
  2. Java
  3. C ++
  4. Objective-c
  5. C #
  6. Javascript
  7. Php
  8. Python
  9. VisualBasic.NET
  10. Visual basic

Absolutely unscientific meta-research ranking

If we combine all these four studies, we will arrive at the following result:
  1. Java (all)
  2. Javascript
  3. Php
  4. Python
  5. C / c ++
  6. C #
  7. Objective-c
  8. Ruby
  9. Visual basic

I combined C and C ++ and ignored CSS with shell scripting. CSS is not a programming language as such, although it is close to preprocessors. Shell scripts are useful regardless of the technologies you are mastering, but you will not find a job where only this language would be in demand.

Observations and Cautions

GitHut and RedMonk are essentially the same, but this is to be expected since they use GitHub as the primary data source. Both analyze public rather than private repositories, which can lead to deviation of the results towards open source technologies.

TIOBE is affected by search engine resources. Perhaps for this reason C leads the list - the language was created in 1969 and many historical documents are available. New languages, such as Ruby and Go, inevitably end up at the bottom of the list.

Educational resources are likely to influence results. For example, Python is mainly used to study programming in schools and colleges. Thousands of students ask questions and complete projects, but judging from my experience, Python labor offers are rarely compared to those in PHP or Ruby, even though it is higher in several lists. Java has a similar advantage because it has a variety of uses: in education, the web, desktop, and mobile development.

The demand for developers of native applications remains high, especially in reviews related to work. RedMonk reports that Swift in less than six months, bypassing 46 positions, moved to 22nd. However, application development is a young discipline. In the field of desktop and web programming, there are much more vacancies and they are easier to fill, which is probably why job offers are deleted faster.

In conclusion, the use of language is strongly influenced.

1. A separate website or application requires a huge amount of technology, and perhaps this puts them higher than desktop languages.
2. You can whip up code samples with a few lines of CSS, JavaScript, PHP, Ruby, Python, or a shell script. But this does not necessarily apply to languages ​​such as C, C #, Objective-C, and Java, which are typically used among fewer larger projects.


Comparing today's lists of RedMonk and Jobs Tractor with the old ones for 2014, we find that surprisingly too little has changed. Several languages ​​have moved higher or lower, but no new ones have appeared, just as there are no sharp jumps in the top ten.

What the review won't tell you

There is no “best” language.

Few developers have the luxury (or boredom?) To work with one technology.

If you are considering client-side JavaScript, then you cannot go far without a proper understanding of HTML, CSS, image formats, tools, and browser troubles. Server-side developers on NodeJS, PHP, Ruby, .NET and Java normally need an understanding of web servers, HTTP, SQL / NoSQL databases, as well as data exchange formats such as XML and JSON. Even those who write on a single platform a simple desktop application or a native application for a mobile device require knowledge and experience regarding web connections, data storage, IDEs and development tools.

The more technology you know, the more knowledge you need to have.

OK, but what should I learn?

The reviews are entertaining, but don't rely on them when choosing a career. If you have not learned anything else from this article, then remember:
those who choose a language based on data from studies / surveys or on monetary prospects will lose
There is one secret regarding becoming an excellent developer:
just create something
First, find a problem - especially one that interests you or that you can benefit from. Perhaps this will be the creation of a business card site, putting your finances in order, automating your home or sending out random tweets to your subscribers. Make sure the goals are achievable; even the best developers would tremble at the thought of creating a Call of Duty or WordPress clone.

Now select the appropriate set of technologies. There may be several options, but do not try to impose a language for the solution. You can write a native mobile application in Perl, but resources are rare and it will be an exercise that will lead to disappointment.

Then create your solution. Google, code samples, and developers who write in the same language will help, but don't expect them to answer all your questions. Your project is unique (or should be unique) and there is only one person who can teach you how to program - it is you.

Finally, don't expect to become a code ninja right away. Some people have natural abilities, but they also spend a huge amount of time honing their skills and learn new techniques and technologies all the time. Even the youngest roles require several years of development experience. If you decide what you want to work on all the time, then there are a large number of online resources, such as our own Learnable , that can help you with this.

To summarize: only a few people will succeed in learning a language for the sake of learning as such - this is a boring academic exercise. It’s better to learn a language that will help you solve a real problem. Do not worry if this technology is outdated or not among the top ten - all languages ​​are conceptually similar and your skills can be transferred.

Do not worry about your choice: just create something .

Also popular now: