The most popular programming languages ​​of the year. Rating of programming languages. Desktop applications or desktop

In the two years since we studied this topic, there has been a significant increase in the demand for software developers. According to the data, the number of jobs for software developers has grown and continues to be the fastest growing segment of all types of employment. However, with everything around us becoming more digital, the average person also needs to have a basic knowledge of coding, if only in order to increase their value in the labor market.

Simply put: there are a great many programming languages. Some of them are very specific and intended for specific purposes, others can be used more broadly. Depending on the field of activity, it may be wise to identify those that can help you advance in this area, while at the same time remember that general knowledge of programming is gaining in importance.

What programming languages ​​are in demand?

As shown in Table 1, the top 10 programming languages ​​are dominated by Java, JavaScript, and the C family of languages ​​(C, C ++, C #, Objective-C) that are most in demand in 2016/2017. To a large extent, these languages ​​are the basis of many software applications which we take for granted. That is why, from year to year, developers with experience in working with these languages ​​continue to be in demand. However, these languages ​​can be the most difficult to learn, resulting in new languages ​​that are easier to learn, gaining ground and offering a more attractive alternative.

Table 1: Leading Programming Languages ​​for 2017 (Sources: Tiobe, IEEE, Stack Overflow, PYPL Index)

It is also worth noting that in addition to what we call "general programming" here - which can be used for a wide variety of purposes and applications, some special languages ​​are also included. The growing popularity of such languages ​​tends to confirm other trends that have emerged in recent years and may continue to gain prominence in the years to come.

R language

Although R has been around for about 20 years, it was mainly used by data manipulators, such as statisticians. However, in the context of big data analysis, the R language is higher in the foreground and, due to its ease of use, to some extent eclipsed other heavyweight and long-standing tools such as Matlab and SAS.

Go language

Created by Google, the Go language is a free open source programming language source code... It was designed as an alternative to the C language. Immediately, and when compared to C, you can see that Go is simple, fast, and user-friendly. Moreover, a number of well-known websites and companies, including CloudFlare, Dropbox, Google, Netflix, SoundCloud, and others, use Go, which makes it possible to predict its continued use in the future.

Swift language

Swift was created by Apple for use on its operating systems iOS, macOS, watchOS, tvOS, and as an alternative to Objective-C. Compared to the latter, Swift is a more modern language. It's also easier to read and write programs, which is a particular advantage when many pages of code have to be redone. In addition, with the continued popularity of Apple in general, and individual devices in particular, there is a good demand for developers who speak the Swift language.

[Raw data and R scripts can be found on GitHub]

8186 people took part in the survey, 90% of the participants live in Ukraine.

Main results

Java is still the most widely used language (23% of the market), JavaScript came in second (16%), slightly ahead of C # in popularity. In 4th place, as before, is PHP (13%) with a wide margin from Python (7%). C ++ programming takes 5% of the market, followed by Ruby (4.5%), Swift and Objective-C. Scala closes the top ten most popular languages ​​(1.5%), ahead of C and 1C.

From the side of the "long tail" - the use of TypeScript and Kotlin has become noticeable.

Let's look at the dynamics of recent years:

We see a decrease in the use of Java, despite the fact that the language is still the most widespread. JavaScript continues to gain popularity at the same rate it has before. In the iOS development sector, Swift continues to displace Objective-C (now the Swift to Objective C ratio is 55/45, last year it was 20/80). Also from the statistically significant changes compared to the beginning of 2016 - the increase in the popularity of Scala and Go. PHP's decline in popularity has stopped.

Preferred technologies

The situation is similar here. From the news, the growth of the Go perspective, Kotlin and TypeScript became visible, but Java would choose significantly fewer people for the next project than last year. It can be assumed that Kotlin is seen as the preferred language by those developers who Java already restricts, and Scala seems to be either too complex or not very suitable for the field. You can also link the decline in JavaScript growth to the rise of TypeScript: it can be used like statically typed JavaScript.

Let's build a "satisfaction index" - the proportion of developers who would use the same language in the next project:

We see that the most "favorite" language is Swift, then in the next group are C #, Go and Scala, and then - Java, Kotlin and Clojure.

The least favorite is Apex, followed by SQL-like and obsolete languages.

Learning new languages

This year, for the first time, we included in the survey a block of questions about learning new languages: the majority of developers (65%) want to learn some new language.

Which one:

That is, 31% do not yet know which one. Most attractive for learning - JavaScript (12%), followed by Python, Java, Go, Scala and Swift.

How exactly people are going to learn a new programming language: mainly based on books and documentation (61%); 27% will pass online courses and offline courses will remain the main teaching method for 7% of respondents who answered this question.

Additional languages

We see that, in general, the picture repeats the situation with the main development languages, with the exception of the emergence of the Unix Shell in second place and the higher position of SQL extensions.

Your projects:

Here the trends are the same, there are fewer changes compared to a year earlier. Perhaps this is due to the fact that the concept of "own projects" is conservative: if I have a project in C ++, then it will remain with me.

Final table

Language Market share Change from 2016 Worker Additional In their projects Satisfaction Index
1 Java23.4 -2.91 1892 1129 1965 0.76
2 JavaScript16.2 2.36 1316 4206 2606 0.69
3 C #14.9 1210 744 1354 0.82
4 PHP13.25 1073 852 1253 0.63
5 Python8.71 0.74 706 1170 1157 0.71
6 C ++5.5 -0.95 445 681 725 0.62
7 Ruby3.5 287 279 330 0.68
7 Ruby3.5 287 279 330 0.68
8 Swift2.2 1.36 181 236 276 0.87
9 Objective-C1.05 -1.34 150 283 212 0.33
10 Scala1.52 0.47 123 207 215 0.81
11 1C1.27 103 57 85 0.27
12 C1.1 -0.2 90 473 240 0.37
13 PL-SQL1 85 583 102 0.24
14 T-SQL 68 959 237 0.28
15 Go 0.55 66 235 251 0.82
16 Pascal / Delphi 66 109 205 0.47
17 Perl 35 140 65 0.28
18 R 35 122 73 0.46
19 ActionScript 30 53 48 0.26
20 TypeScript 21 112 44 0.47
21 Kotlin 16 53 57 0.75
22 Clojure 12 38 68 0.75
23 Erlang 12 43 44 0.50

Additional data

Developer age by language:

What we see here - fashionable, stylish, youthful - is Kotlin (median developer age: 24). For Java, JavaScript, Python, Ruby, Swift, this value is 27 years. On the other hand, we have PL / SQL, Perl, Pascal and 1C, as you would expect. User R, on the other hand, became younger: young people rushed to study Data Science.

Anomalies are interesting here: the same thing is observed with R as in the previous survey (people come to programming in R from outside); Scala and Go can probably be called senior languages; Perl, Pascal / Delphi and 1C obviously do not undergo a staff refresh.

Let's also look at the distribution of work experience as a programmer in comparison with the data of previous years:

Judging by the schedule, the influx of people into the industry has slowed down, while the proportion of developers with over 10 years of experience is growing. This is probably due to the fact that working conditions “in the IT bubble” make the transition to other industries or to managerial positions economically unprofitable.

Let's also look at the distribution of the age of developers depending on the country:

The difference in the forms of distribution can tell us about the scale of emigration in past years.

The difference between local and foreign development markets can also be seen by comparing data on the main working language from people living in Ukraine and from the diaspora:

We see that C, Scala and Go are used much more abroad. These tendencies come before us with some delay.

Education:

The percentage of "dead languages" is declining, and the number of people writing their first JavaScript program is also on the rise.

Results of previous polls:,.

To assess the prospects of their efforts, each programmer should regularly look at the ratings of programming languages. It often happens that some fashionable language, about which everyone starts writing, but then this language quietly disappears. Those programmers who rushed to learn this language suddenly see that their efforts were in vain.

For example, in the mid-1980s, the Prolog language became very popular, but then its popularity declined sharply. And now practically no one writes on it. And Python took the place of the popular newbie.

How to find out the rating of programming languages? There is no overall rating as there is no easy way collect similar statistics. But there are different ways evaluating the popularity of programming languages. Let's consider the most popular ratings.

The TIOBE Index is based on an assessment of the results of search queries containing the name of the language. The logic behind this index is very simple: “If a language is searched for in search engines then he's popular. " Of course, this statement is controversial, because professional programmers will rarely search for the name of a programming language in a search engine. They are more often looking for a solution to a specific problem. But a huge plus of this rating is that it fairly objectively shows interest in a particular language.

The TIOBE index shows the most popular programming languages, information about which was searched for on the 25 most popular search engines, that is, queries of the form: "+" programming ". The index is calculated every month.

The TIOBE index for January 2020 looks like this:

TIOBE also named C the 2019 Programming Language.

The graph of changes in the index clearly shows how the popularity of programming languages ​​has changed. But at the same time, the first or second place is constantly shared by the two languages ​​Java and C. Although Java is actively promoted by Oracle, and no one promotes the C language.

And it's also interesting that C ++ has never been able to surpass C. in popularity.

2. Wappalyzer rating for web applications

The Wappalyzer service uses different methods to identify web technologies. The ranking of programming languages ​​for website development for January 2020 looks like this.

In web programming, the language PHP is unambiguously in the lead, more than 80% of sites are written in this language.

4. IEEE Spectrum rating

The IEEE Spectrum Top Programming Languages ​​annual ranking uses 11 metrics from 8 sources, including search terms, Twitter mentions, and even mentions in programmer job openings. On the one hand, this rating uses more data, but on the other hand, in many sources, the data is of a related nature. The more vacancies are published for a certain programming language, the more queries will be in search engines. That is, new languages ​​have a better chance of getting to the top of the rankings.

5. Stack Overflow Rating

The Stack Overflow site is a platform for developers to ask and answer coding questions. This site has about 40 million visits per month. There is a Russian version of the site: ru.stackoverflow.com

This rating is calculated based on a survey of developers. In 2019, more than 90,000 developers were surveyed and a ranking of programming languages ​​was compiled. Rather, it is a ranking of languages ​​that raise questions. JavaScript is the leader in this ranking.

Such popularity is quite understandable, now JavaScript is developing rapidly, and each new opportunity raises a lot of questions, so programmers go to Stack Overflow to ask questions.

Curiously, C didn't even make it to the top ten.

6. Jobs at Head Hunter

You can approach the rating of programming languages ​​from the other side and see which languages ​​are indicated in vacancies and how much they are going to pay. One of the most popular platforms for finding a job in the IT field is the HeadHunter website. There is a separate section - vacancies for programmers.

At the bottom of the page, you can see a list of similar requests and make sure that employers have slightly different requests.

Here you can see that a programmer who knows Pascal (Delphi environment) is still in demand.

7. Google Books Ngram Viewer

And in the end, consider extremely useful service Google where you can watch usage keywords Therefore, you can see the popularity of not only programming languages, but any technologies.

At the beginning of this article, there are graphs of the use of the words Prolog and Python. Now let's introduce JavaScript, Python and PHP.

Interest in JavaScript can be seen in 1992 and it is rapidly overtaking Python and PHP.

The most authoritative rating of the popularity of programming languages ​​is consideredrating by Tiobe Software. The Tiobe Popularity Index tracks the statistics of searches for programming languages ​​in Google, Baidu, Wikipedia, Yahoo, YouTube, and more.

However, the largest web service for hosting IT projects and their joint development GitHub, which is also called the "social network for developers", uses a different method of defining a popular programming language. Their system is calledPYPL (PopularitY of Programming Languages) is based on the number of searches for manuals for a particular programming language.


1. Java

Java is the primary language used to develop native Android applications for smartphones and tablets. The popularity of Java among developers is due to the simplicity and reliability of the language, which ensures long-term compatibility of products written in it. Java programs are translated into bytecode that is executed virtual machine Java. The advantage of this method of executing programs is complete independence of the bytecode from the operating system and hardware, which allows you to run Java applications on any device for which there is a corresponding virtual machine.

2. Python

Python is a high-level programming language that is often considered the lightest language due to its simplicity, readability, and syntax. 8 out of 10 computer science departments in the US and 27 out of 39 top universities use Python to teach programming to students.


3. PHP

PHP is one of the most widely used development languages dynamic web sites. PHP is an open development language, so thousands of modules have already been written that can be modified to the required functionality. Most of the sites focused on a large amount of data are developed in PHP.


4. C #

C # is the primary language for development on platforms and Microsoft services... The C # language allows you to develop almost any application that is bundled with the Visual Studio IDE. In addition, it is also one of the main languages ​​for developing games on the Unity engine.

5. JavaScript

Almost any modern site uses elements of JavaScript - this prototype-based scripting language. JavaScript is a programming language that runs in the client's browser that processes commands on the end user's computer, not the server, resulting in less server load and faster application performance.


6.C

The C programming language has had a significant impact on the development of the software industry, and its syntax has become the basis for programming languages ​​such as C ++, C #, Java, and Objective-C. C is valued for its effectiveness; it is the most popular language for building system software. Learning this language leads to understanding other languages ​​as well. The C language is used for developing low-level applications, since it is considered the closest to the hardware language, second only to the assembly language.


7. C ++

C ++ is the ideal choice for developing powerful desktop software, hardware accelerated games, and applications for PCs, consoles and mobile devices that require a lot of memory to work.

8. Objective-C

The language is a superset of the C language (any C code is compiled by the Objective-C compiler). Objective-C is especially widespread among developers for Apple platforms. Recently, it has been losing popularity in the wake of the rise of the Swift programming language.


9.R

R is a programming language for the system of statistical data processing and work with graphics. It is still used today for machine learning and big data analysis.

10. Swift

In 2014, Apple introduced its own Swift programming language as a replacement for the long-standing Objective C. The Swift programming language is popular with developers around the world as a new, simple and quick way development for OS X and iOS operating systems.

Reprinting of the article is allowed only with an active link to the site site

Editor Olga Evsikova specially for the Netology blog told how to choose a language to study.

There are many reasons to become a developer. Programmers make a lot of money, create new products, and change the world. Are you eager to become one of them, but do not know how to take the first step? This article will help you figure it out.

The PYPL (PopularitY of Programming Languages) scoring system is based on the number of searches teaching aids on google. They, together with GitHub, have compiled the top programming languages ​​for 2017.

Since 2005, Java has been the most popular programming language all over the world. Over the past 5 years, most of all interest has been shown in the language, and PHP is losing popularity, but not inferior to its pursuer C #. In the top languages ​​there are also JavaScript, C ++ together with C, R and Ruby.

TIOBE Index

Another system for evaluating the popularity of programming languages ​​- TIOBE is formed based on the frequency of searches in Google, Baidu, Wikipedia, Yahoo and YouTube.

Java is in the lead again, but takes only the fourth position, closing the top ten JavaScript,. And the top twenty starts with Ruby.

Decide on the direction

Choose a language based on the software you want to create.

It is the process of creating websites and applications. It can be anything from a social network to landing page sports club.

Front end web development is called. First, the page is created using markup. It is this markup that is responsible for the structure of the page. Then appearance the created page is modified using cascading style sheets - CSS and interactivity in the language is added.

The back-end is the back end. This is where all the magic of interaction with the interface happens, and often we only see the result of work on the server side. An important part of working with a server is knowing how to use databases. If you are interested in this direction, feel free to learn the language of database management. SQL data, MySQL and get familiar with the Oracle framework. The backend can be written in Ruby, Python, Java,.

Large resources always use several tools, since it is necessary to support the operation of several data centers, servers and the interaction system of these servers. This is the product of the work of a large team: programmers, engineers and system administrators... So the social network VKontakte used a translator from Facebook company- HipHop, which turns the PHP source language into C ++ to speed up your work. Later VKontakte created their own translator and named it Kitten PHP.

Mobile applications

If you are planning your own project, it will be useful to find out which operating system is used by your target audience. But any project looking for development goes beyond one platform.

For development for the iOS system, they write in Swift and Objective-C. For Android - Java and C ++.


Mobile applications in Google play Market

Desktop applications or desktop

It can be a desktop version of a mobile application. For example, the Viber messenger. Or the Skype video calling service, created at a time when mobile applications were not yet so popular. In general, any programs for everyday tasks that can be run from a laptop or computer.

For Windows, they write in C ++, C # and Java. For Mac OS - Objective-C. For Linux development, they write in C and C ++.


Desktop Apps in the App Store

Game development or game dev

To create games, you need not only to play them, but to understand the specifics of their creation. This is how gamedev differs from other areas, and it is distinguished into a separate category.

Mobile games for Android are written in Java and C ++, for IOS - Swift and Objective-C. Online browser games can be played in social networks... This is where your knowledge of web development in or Flash comes in handy. Computer games often write in C ++. This low-level language is most suitable when it comes to developing complex things.

So one of the most successful games in the world - Minecraft is written in Java language, but rewritten in C ++ specifically for Android.

They also use special game engines like Unity (C # and Java Script) and Unreal Engine (C ++) to create games. They simplify the game creation process and allow you to create 2D and 3D games on Mac OS, Linux, Windows and PlayStation, Xbox consoles.

Social networks and the media are thinking about how to effectively use the data that has been accumulating in server storages for years and continues to flow. Large amounts of data allow us to figure out how a user interacts with services, simulate situations and make predictions.

In Russia market Big Data It is still in its infancy, but banks and telecommunications companies have already shown great interest. A new profession has appeared -. There are programming languages ​​like R that are designed specifically for working with large amounts of data. They also use C, Java and Scala.


Big Data in a study by MegaFon and the Strelka Institute

Rate the market

If programming is not just a hobby for you, it is better to estimate the level of developers' salaries in advance. You can find various statistics on the Internet. For example, this one.


My Circle data

According to statistics, it can be seen that the highest paid programmers, on average, are engaged in mobile development or software... For the rest, programmers rarely earn less than 80 thousand rubles. For example, according to a report by analyst firm App Annie, the global market is expected to mobile applications in 2017 will grow by 28.6% and will reach $ 166 billion.

But often one programming language is not enough, and potential employers require knowledge of several languages ​​and frameworks. This is because only one part is written in one language, and the rest are written in others.

Choose what you like

Regardless of the chosen field of programming, you should like the language. Try it.