[Concerns from data! 】 Comprehensively compare the popular programming language in 2018!

[Concerns from data! 】 Comprehensively compare the popular programming language in 2018!

There is a great demand for talented people with science, technology, engineering and mathematics, and it is not freshly new news that high wages are being paid. The number of online job offerings for software-related jobs in the US grew three times faster than other job offers from 2007 to 2012.

The US Bureau of Labor Statistics expects job offers for software development to increase by 22% from 2012 to 2022. The average annual income of software application developers as of May 2014 is 95,510 dollars (about 9.55 million yen).

Beginners who are planning to learn programming from now on will be thinking which languages ​​to learn.

In this article it should be a hint to answer the question by comparing salary, demand, and future potential of each programming language!

Current status of each programming language
Before comparing each programming language, let’s check the current state of each language to be compared.

Dynamic programming language

Because it is easy to learn and interesting, in general, dynamic programming language is considered to be a language recommended for beginners. You can build applications from scratch without using a lot of code, you do not need to follow difficult rules.

Normally, dynamic programming languages ​​are used at the highest level, so you do not have to spend much time acquiring details and spend time understanding language overview. This is one of the reasons popular among programming beginners who wish to produce results early.

JavaScript
JavaScript (which is a different language from Java) is a client side language that is necessary for the front end. JavaScript is compatible with all browsers and is often used for interactive web applications that utilize front-end frameworks such as “jQuery”, libraries such as AngularJS, Ember.js, React.

JavaScript is also used as a server side language utilizing Node.js. Node.js is a relatively new, momentous community.

Addition to being able to build native mobile applications using JavaScript on Facebook React Native, you can build hybrid mobile applications using JavaScript with framework such as phonegap.

However, because JavaScript is a typeless language, it is also known as an unwieldy language, as it is difficult to find and fix mistakes. There are static typed versions such as Microsoft’s TypeScript and JSX used by React.

Ruby
Interesting development, and it has been developed in order to efficiently Ruby is, Ruby On Rails has gained popularity by the framework of.

Ruby on Rails is a full stack framework that pursues programming comfort. Ruby can be deciphered like English, and Rails has tools to facilitate common tasks.

Popular sites such as Shopify, Bloomberg, Hulu and Slideshare use Ruby for the majority of backend development and are built with Ruby on Rails.

Python
Python is also one of the languages ​​we can recommend for beginners, and is one of the best universities in the United States that is most learned during the introduction stage of language learning. It is used when building desktop applications, web applications, etc., and has tools optimized for data mining. In addition, Python is also popular in academic communities such as computer science, data analysis, bioinformatics.

Google, YouTube, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV etc are built in Python.

Please also refer to the article that there are few web services using Python in Japan .

PHP
Its a server-side scripting language and it is considered to be a language for beginners because it is easy to conceptualize what to do with PHP code. Since this language is specialized for the Web, many Web sites are built with PHP.

Facebook, Wikipedia, Yahoo!, Tumblr, WordPress etc are built with PHP.

Statically typed language

Applications built with statically typed languages ​​are known for their more extensibility and stability and superior maintainability. Static language has severe function due to typing check, it is easy to extract error, while many prototypes can be created, so use many codes. Game engines, mobile applications and corporate backends are generally built in static typed languages.

Java
As a versatile language Java is used for Android applications, desktop applications and games. It is also used for the back end development of companies.

In addition, the framework Hadoop used for storing and processing big data is based on Java, and it is adopted by companies such as Yahoo, Facebook, and Amazon Web Services.

C
C language is often used as a common language of system software.

C has influenced almost all programming languages ​​introduced in this paper, in particular Objective-C and C ++. So, if you have C knowledge, you will not have difficulty mastering other common languages.

However, since we need complicated code to execute simple tasks, I think that the first scholars will have difficulty choosing as the first language. Nevertheless C knowledge is certainly sure to help programmers.

Objective-C / Swift (for iOS development)
Objective-C is a language based on the C language, although it is static but dynamic typing is also possible. Apple’s Swift is a static language designed to be compatible with Objective-C, but it is hard to cause errors by static typing.

Inspired by Python, Swift is designed to solve some of the challenges found in Objective-C as new programmers are easy to learn.

C ++
C ++ is an influential language based on the C language. Designed for system software programming, it has also been used for games, game engines, desktop applications, mobile applications, and web applications. Because C ++ is quick, Facebook also builds several high-performance and reliable systems in this language.

Many software such as Adobe Systems, Amazon, Paypal, Chrome etc are built in C ++. Like C, C ++ is generally regarded as a difficult language by primary scholars, so if you are learning for the first time, you may want to consult with Meetups or C ++ Codementor.

C #
C # (C sharp) was developed for the Microsoft Windows NET framework.

C # is used for web development, game development and development of Microsoft in general. Microsoft was not known for its cross-platform compatibility, but we planned an open-source project called Mono with the aim of migrating C # to other platforms and providing better development tools to Linux engineers.

Recently, C # is now available for native mobile applications for iOS and Android.

SQL
SQL (Sequel or Structured Query Language) is a language for inquiries with databases and communication.

SQL is not used to build applications, but it is used for data management of applications that use relational database management system (RDMS).

Ranking jobs by language

I briefly outlined each programming language.

However, all languages ​​have the same demand, not equivalent salaries are paid. If you do not want to be disappointed by the story that language acquisition is employment and the language acquisition is getting harder and faster, the following will introduce a hint on the question “Which language should I learn?” I think that will become.

Based on salary statistics by indeed.com, each programming language is divided into nine layers.

As a result, Swift can get the most salary, it is obvious that Java, Ruby, Python ,, C ++ and C are also bad choices. Furthermore, if focusing only on salary, JavaScript ,, C # ,, SQL and PHP will not be the ideal choice.

The average salary is affected by demand (how much recruitment is available), supply (how many developers can use that language) and experience. Therefore, let’s check other elements thoroughly before hasting the conclusion.

Job Trends

The following is a job offer trend by programming language (excerpted from indeed.com).

There are many jobs in C, SQL, Java and JavaScript. On the other hand, C #, C ++ and Python are also in demand.

However, if you want to get jobs from start-up companies, the trend at indeed.com will not be a suitable indicator.

AngelList is a site for recruitment by start-up companies and you can check the importance by programming based on the job list here.

It can be confirmed again that there is demand for JavaScript. You can also see that startups want Java, C, C ++ and Python and Ruby (on Rails) more than C #.

Ranking salary by language

Next, let’s see how much wage can potentially be obtained from the contents of recruitment advertisement. This data is excerpted from gooroo.io and is accumulated by the average salary offered by job advertisement.

Engineers who know Ruby, C ++ or Java are likely to get a high initial salary. With outstanding Ruby and Python developers short and Ruby and Python potentially get the highest salary as there is a high demand.

JavaScript has a salary of $ 188,168 (about 20 million yen) as of April 2015, now it is decreasing to 124, oo 0 dollars (about 13 million yen), and it is greatly depressed.

But JavaScript is special in the case. It is explained below.

Special case: JavaScript framework
Simply comparing JavaScript with other languages ​​can not predict exactly how much you can earn.

As described in the overview of each programming language, JavaScript is categorized in various ways. Many frameworks have been developed to promote the development of front-end websites. Therefore, knowing JavaScript and jQuery is less likely to earn more than a technician who understands the JavaScript framework.

Let’s look at the average salary of engineers by JavaScript framework in the United States. (React & Backbone is a library, not a framework, including Node.js.)

The average salary is not bad.

In particular, the outlook for React is bright. Of course, what is stated here is just a reference, and we look at ineed.com for an average salary of over $ 105,000. In order to learn these techniques you need to know JavaScript, and conversely if you acquire a framework you should make JavaScript a more useful skill.

Let’s see the demands of these framework engineers.

Since Node.js is for back-end development, AngularJS is overwhelming in terms of demand if it is simply a front-end framework. If you are interested in frontend JavaScript technicians, you may want to learn AngularJS.

React, on the other hand, is a relatively new technology, so we are getting popular at the same early stage of AngularJS with similar momentum.

Although it is still in the early stages, it is more versatile than AngularJS and user-friendliness is also good, so demand will expand further from now.

About support system for programming
When studying self-taught programming languages, you will find that receiving support from other technicians is a very important help.

Being a part of the support community will make your engineer’s life in the future more comfortable.

StackOverflow

StackOverflow is the largest community used by engineers around the world as a place for mutual support, knowing how popular the programming language is, and at the same time knowing whether the community is useful for language learning at the same time You can do things.

Language popularity
Based on StackOverflow’s followers, we can confirm the current popularity of each language.

It has already confirmed that Java and JavaScript have great demand for engineers, so it is no wonder that these languages ​​have the most followers. “JavaScript” is now the most widely used tag in StackOverflow, overtaking “Java”.

There are few followers in SQL, Ruby, and Swift, but since Ruby is used exclusively for Web development and Swift is a relatively new language, this may be a natural consequence.

Response rate at StackOverflow
There is an implicit rule that StackOverflow has to “correctly” ask questions. Let’s look at the probability of getting answers to questions by each language with this in mind.

Based on this information, in C, SQL, and C ++ related, we received more than 60% of responses to questions.

C and C ++ are highly experts and questioners are experienced in programming, so some people think that they can express their own question more accurately. On the other hand, SQL is not used to build things.

It is noteworthy that in StackOverflow, Python and Ruby engineers are also cooperative in answering. As mentioned above, Python and Ruby are the most recommended languages ​​for beginners, but even with this consideration, it is surprising that there are 60% of responses within 30 days.

On the other hand, the response rate of PHP which should be widely used is the lowest. This means that many people are asking questions about PHP, but they do not get much answers.

GitHub

When you participate in development, you will find that it is best to use existing solutions as much as possible. Existing solutions can generally be obtained from open source and GitHub provides a way to get it. The user marks a star to the project he / she cared about. The more stars a star has in a project, the more the project will not flourish.

Below is the distribution of popular projects by GitHub by language.

It is clear that JavaScript is the most popular tool without confirming details. JavaScript is a fast-changing language to recognize that it is difficult for engineers to keep up with the current situation in the transition of framework and technology.

In addition, except for Node.js, JavaScript is most used for front end development. Therefore, Ruby, Python, Java and PHP etc. are not competing directly with languages ​​for backend. It is not surprising that JavaScript is so different from other languages.

On the other hand, Ruby and Objective-C have lots of tools and resources for development. Interestingly, in comparison with StackOverflow, neither language is as popular as Java, but engineers are thinking that open source projects in these languages ​​are useful.

If you check the total number of projects by language, you will find that this trend is particularly strong for Objective-C.

Also, most of C and C ++ open source projects are written for making development tools in general, not for C and C ++ (for example, the most used Python interpretation program is CPython, It is built with C).

As I mentioned in the overview of each programming, C and C ++ are often used for system application development, so it is easy to see that the open source project of GitHub is also for system tools.

Finally, although PHP is widely used, it is behind in terms of the number of available resources. As for C #, since Microsoft is seeking open source with many of its own services, its value in GitHub will expand in the future.

The future of each programming language
To what extent will the programming language be needed in the future?

The future of the programming language depends on the growth of the community that uses it, perhaps because “how much young people will adopt that language” will lead to popularity and resources of the language. Let’s see what languages ​​people are interested in as objects of study.

Python, JavaScript, C # and Swift are the most attractive people’s attention. Based on currently known trends, we can draw out the following theories.

JavaScript

JavaScript is undoubtedly becoming a popular language, especially used for backend development and potentially building mobile applications (via ReactNative).

JavaScript continues to acquire more tools and is updated at a fairly fast pace. So it will continue to be an important language in the future.

Ruby
Startups like “Ruby on Rails”. Many famous sites such as Airbnb, Twitch, Hulu etc are built with Rails and will require a Ruby engineer. Since Rails is easy to learn, it will continue to be popular for coding novices.

On the other hand, the rise of Node.js will undoubtedly affect the popularity of Ruby on Rails. In Github Node.js has already overtaken Rails. This means a sign that Node.js is to surpass the Rails, Rails also change taking to the Python of the largest web framework Django in the back-end development a few years ago.

In addition, new trends of the same structured application will also affect the adoption of Rails. This practice is said to affect the performance of web applications.

Applications of the same structure are required to run on the platform of Node.js, and they are constructed with JavaScript just like the front end. Its possible that there will be fewer people learning Ruby anymore because it makes an appeal that you know exactly one language well (in this case JavaScript). Google’s “Go” is also a backend language that is also beginning to attract new attention.

However, since Rails is updated frequently, it will continue to be an important language for a while. Especially for developers there are abundant convenience tools, communities exist, so even if popularity waned somewhat, Ruby should continue to be active.

Python
Python is popular with research institutions and data scientists, as mentioned above, many beginners learn coding in Python. This means that Python is steadily spreading and becoming important.

Python does not have the explosive popularity like JavaScrip, but in the data science field there is a high demand, and it will grow strongly.

PHP
Over the past few years, backend development trend has shifted from PHP to other languages. However, 80% of Web sites still consist of PHP. This may be natural because it is a language designed for the web.

However, if you study on languages ​​that initial scholars should learn in Google, you will find that many engineers do not recommend PHP. In fact, many PHPs are misleading from engineers.

The PHP community is trying to get rid of the bad reputation concerning PHP by providing the correct coding method of PHP and a new development tool.

Java
With Android Java was pushed up to the most popular language, and because of its stability and extensibility, it was also supported from the development company.

With the rise of Spark (which supports Scala) as a framework for managing big data and Cassandra (which supports other languages), Hadoop is hard to predict how popular as a big data management framework will continue It was.

However, considering how big companies act in the turning point, Hadoop will never be thrown away. Java has excellent tools in backend development, it is essential for corporate development.

In this way, Java will continue to have power as one of the important languages ​​over the next few years.

Objective-C / Swift
Nobody imagines Apple’s (Apple) releasing Swift and when Objective-C is used exclusively for Apple’s products, no demand for Objective-C will be lost. For as long as Apple’s products are used, Objective-C will continue to be an important language for several years.

Most of the open source projects for iOS are still written in Objective-C, so in 2017 it is also a language of value to learn at the present moment. In general it is not efficient to learn something that can not completely understand the concept. Therefore, if you know Swift, Objective-C will be easy to learn (and vice versa).

C
C is used at a very low level compared with other languages, but it will remain as it is also a general purpose language for OS. Many development rules are built with C, Linux, or C.

SQL
SQL has been learned by most data administrators. However, the rise of platforms that do not require SQL like MongoDB or Redis, or that do not require SQL like Hadoof, Spark and Cassandra, were thought to be losing momentum.

The current situation is not so. Services that did not require SQL once began to take advantage of SQL.

Due to the rise of big data and the difficulty of management, SQL is unnecessarily required (it can be understood from the recruitment trend). Google updated the BigQuery service and made it possible to process 100,000 rows per second for one table. BigQuery uses SQL. Spark has adopted the Sparl SQL Module since version 1.3.

In other words, because of the need to manage big data, SQL became an important language again. SQL will continue to be an important language for a while as well as being merely popular.

C ++
(Even against Rust) is still considered a powerful language in performance and abilities, and C ++ will continue to be an important language in systems that require high performance (eg game engines). The latest major version (C ++ 14) is expected to be released in 2017 and is still evolving.

Rust’s software aims to be less vulnerable than C ++ does, so in the future Rust will replace C ++ with some system programming.

C #
Being limited to Microsoft platforms and being closed source did not work favorably on C # in the past. However, Mono has fixed most of this problem. (Mono had a performance problem, but it was improved by recent update.)

This language has a very strong community, as engineers working at C # tend to like C #. C # is the primary language of Unity 3D and is also used for iOS and game engines running on Linux. The rise of Unity 3D as a game engine solidifies the standing position of C # and supports the development of virtual reality applications. Since virtual reality is an important technology, the future of C # will be bright.

As a supplement, C # is also popular for development outside the US, for example in a UK company. Microsoft will continue to leverage C # for a while and it will be an important language on the NET platform. And we will actively launch open source products that technicians can access to make it easy to use.

Summary

Which language should begin programming beginners do?

Clearly you have to learn JavaScript if you are involved in web development. SQL is essential if you want to develop backend web.

If you are interested in data related websites and data science, Python is recommended. If you work in a company, you need Java. If you are not interested in building a system, just want labor opportunities, we recommend SQL.