Computers Windows Internet

The newest programming languages. Five promising programming languages ​​with a bright future

1. When choosing a programming language for a project, the choice arises between two sides - to choose an old proven tool or a new, beautiful, functional, but little tested, and therefore unreliable language. What is the smartest thing to do in this situation? What are the risks of each of the solutions, and how to deal with them?

Igor Zilberg, SmartHead
Tools should be selected according to the adequacy of the task and the presence of an experienced team familiar with the selected tools. Risks when working with new tools are minimized by research, the creation of a proof of concept, and the involvement of experienced consultants. New technologies must be constantly studied, but applied only if they are better suited to a specific task.

Alexander Makarchuk, qb
For business, the concept of "beautiful language" does not exist. You can bet on a new untested language only if it is guaranteed to give the project some special USP that customers can feel, and most importantly, they want to pay for it. If this condition is met, then you can choose a new language, but you will have to take on all the risks associated with it.

Grigory Nikonov, Actis Wunderman
Of course, it depends on the project and the maturity of the language itself. If the project allows, or the use of the language is a prerequisite, and the necessary subject libraries are available, then it is quite possible to allow the experiment. The risks are obvious: "pitfalls" that can be stumbled upon halfway through. Minimizing these risks is also obvious: if possible, conduct research before starting a project and make sure that at least there is active support for the language in the forums or from the manufacturer.

, ADV
In this matter, it all depends on the timing and budgets of the project. If both are very limited, then any research is not justified and can bring big problems, up to the complete failure of the project.

Alexey Fedorov, "Classmates"
The answer depends a lot on what the planned duration of the project is. If this is a small custom-made project that needs to be done quickly, hand over and forget about it - then you can choose whatever you want. If this is a large project for years, then it is better to choose proven technologies for which you can hire the number of specialists you need. In order to estimate how many specialists in this or that technology there are in your region, it is enough to use any reasonable service, for example, LinkedIn or HeadHunter. And then you need to look at non-functional requirements: load, security, fault tolerance, etc.

2. What are the essential factors to ensure that the language can and should be used in production?

Igor Zilberg, SmartHead
Nobody and nothing gives guarantees in this world. We rely on our experience and common best practice.

Alexander Makarchuk, qb
There are three main features that indicate that it is profitable and safe to use a particular language. Firstly, the presence of a "living" community in this language, secondly, the presence of successful cases, and thirdly, the support of the language by large vendors.

Grigory Nikonov, Actis Wunderman
The presence of "mature" subject libraries and frameworks, an active Internet community offering advice in solving problems, the absence of negative reviews about the stability and performance of the final application.

Alexey Persianov, Mikhail Parfenyuk, ADV
The factors are the community of a given language, the number of implemented projects, the number of developers, etc. A production release in a new and raw language hides big support issues.

Alexey Fedorov, "Classmates"
A formal guarantee can only be backed up by a contract. If there is a serious vendor (for example, Oracle, SAP, IBM) who guarantees, for example, that his technology will be supported for the next 10 years, and a corresponding Support Contract has been signed with this vendor, then, in principle, you can consider this some kind of guarantee ... The problem is that this is usually very expensive, and the quality of support from large vendors is usually disgusting.

Therefore, a different practice has been adopted in the world in recent years - open source. If you have an open source open source tool (language, framework, database, or whatever), then this gives you some guarantee that if a bug is suddenly found in this tool, then as a last resort you can fix this bug with your own hands. It is this property of opensource solutions that I consider to be key for today's business.

3. How to act if a developer or even several developers suggest changing the programming language, but the situation shows that their passion is not supported by adequate business requirements for technology?

Igor Zilberg, SmartHead
The developers have no business requirements. Business presents them. However, business depends on the quality of the code that developers write. Therefore, if developers want to use a technology that is clearly not suitable for solving a business problem, then they must either convince the developers or change it. An adequate and experienced developer is able to understand the business requirements and apply the most appropriate solution to them. We didn't have such problems. In our practice, the opposite happens more often: the customer, instead of formulating business requirements, influences the choice of technology (often to the detriment of the implementation of his own requirements).

Alexander Makarchuk, qb
If the transition to a new language is not supported by tangible arguments and does not promise serious advantages for the project, then it is not needed. But the developers, of course, need to explain this so that the team does not get the impression that they are not listening to them.

Grigory Nikonov, Actis Wunderman
Adhere to a conservative policy and not change the language without good reason. There will always be another project on which to try out a new language.

Alexey Persianov, Mikhail Parfenyuk, ADV
You can meet developers halfway only in the case of an internal project, or if it is written to train the team. In this case, the risks of failure are small, and in case of failure, useful experience is brought forward for the future. Otherwise, the business will not appreciate the perfectionism of the developers.

Alexey Fedorov, "Classmates"
First, one should ask what is the rationale for the idea of ​​changing the language. What will it give? What are the pros and what are the cons? What is the cost of such a transition and what is the time frame? What are the risks?

If the answers you receive suit you from a business point of view, go ahead. If you are not satisfied, you need to try to convey to the developers the reasons why you refuse them.

4. When is the cost of switching from one language to another worth it?

Igor Zilberg, SmartHead
It is impossible to estimate the costs of a platform change and the related benefits outside the context of the project. Such a decision can only be made on the basis of a deliberate approach within the framework of a specific project, and not on the basis of any “universal” opinions or rules.

Alexander Makarchuk, qb
When this will entail tangible profits, both direct and indirect, due to the appearance of a new USP in the project, which will make the product more competitive.

Grigory Nikonov, Actis Wunderman
In the case when the use of a new language makes it possible to significantly optimize the entire life chain of the subject area: from design, development and testing of an application to implementation and subsequent updates and improvements due to the properties of the language and the ecosystem around it.

Alexey Persianov, Mikhail Parfenyuk, ADV
When language support is discontinued, and at the same time, the number of specialists on the market tends to zero. Or if you completely lose an old team without the ability to retain technology. When the profit from the language will be greater than the cost of switching it.

Alexey Fedorov, "Classmates"
When you and your colleagues have clear answers to the above questions.

5. Do you think there is an established division in the use of languages ​​for specific tasks? If so, how exactly do you see it? Could a language emerge or does it already exist that will change the situation and take over the majority of developers?

Igor Zilberg, SmartHead
Of course, there are some typical uses for different platforms (not languages). For example Java and .NET for relatively large business applications or services. Node.js for multithreading and messaging. All cannot be enumerated. However, these boundaries are very, very blurred and also depend on the region. In the USA, for example, there is a slightly different experience of use, "fashion" and typical applications of platforms than ours.

Alexander Makarchuk, qb
On the one hand, there is a well-established division of languages ​​by application, but on the other hand, regional and cost factors are quite important: the cost of entering the technology, support, etc. With regard to the emergence of new languages, here it is necessary to note the following thing. Over the past few years, the level of communication has grown significantly, and the programming languages ​​are essentially the same. Perhaps it is the further revolution in communications that will entail entirely new development technologies.

Grigory Nikonov, Actis Wunderman
In principle, there is such a division: C and C ++ are traditionally used for low-level development, Java and C # are considered languages general purpose suitable for a wide range of tasks from business logic to mobile applications... Python, Ruby, and PHP are focused mainly on web development, JavaScript on browser applications. I do not think that drastic changes in this area are possible, although the fashion for languages ​​and frameworks sometimes changes - now, for example, the Go language is beginning to gain popularity.

Alexey Persianov, Mikhail Parfenyuk, ADV
Yes. Some things are better implemented in different languages due to the speed of work and ease of use, for example, in php projects due to the "slowness" of the language, you can implement a chat in Node or an aggregator in Java - the result will be better.

Every year, each new language receives the laurels of the "best" and attracts developers, but so far, probably, the positions of proven languages ​​are unshakable. In the future, everything can be.

Alexey Fedorov, "Classmates"
Most known to you and me modern languages programming are multifunctional, that is, you can make very different decisions on them.

As for a new language, yes, such a language may appear, but due to the rather strong inertia of the industry, I do not think that in the next 5 years someone will push Java and C / C ++ off the pedestal. If I choose some kind of "horse", then I would put on JavaScript. Today we are seeing tremendous growth in the industry in everything related to JavaScript. Frameworks are born like mushrooms after rain. The Internet hype around this technology is huge. Let's see where this all leads.

6. Should a programmer be DevOps (have the skills of a programmer and system administrator)? What to do with the fact that most programmers refuse to develop competencies and be responsible in this area?

Alexey Persianov, Mikhail Parfenyuk, ADV
To set up the environment, they usually use the services of a system administrator. But, probably, it makes sense that the person who writes the code should be able to set up the site for the optimal execution of the given code. This will save time and costs.

7. Should you use microservices in your projects?

Alexey Persianov, Mikhail Parfenyuk, ADV
There is no definite answer, but our answer is yes. Of course, they can add a lot of problems, but they will also help to solve many. For example, thanks to microservices, different parts of the application can be written in different programming languages, it is possible to scale the loaded parts of the application, etc.

8. Does a developer need to be able to work with a wide range of modern web technologies and languages?

Alexey Persianov, Mikhail Parfenyuk, ADV
In recent years, the front-end has made a huge leap, while in server-side languages ​​the development is not so noticeable. A developer, of course, must know the basics of related areas, but it is impossible to be a guru in server-side and client-side languages, everyone must do their own thing and be a real professional in it.

In a dynamically changing world, when only yesterday respected professions are turning into nothing, many people are looking for something to do in life, so that it is both interesting and relevant to the present time, and at the same time profitable. Very often, such searches lead to programming: good programmers, even in the CIS, earn thousands of dollars, have a lot of free time, the ability to work remotely and have a chance for career growth.

In addition to these advantages, programming is also different in that to master it, you do not need to spend years of time wiping your pants at universities. Self-education decides everything here, the Internet has everything necessary materials for successful self-study of any programming language: lessons in text form, video tutorials, instructions, advice from experienced professionals and other educational materials. In this way, you can easily master modern technologies programming and find a truly decent job.

But before you get down to business, you need to answer yourself one important question: which modern programming languages ​​will be relevant in 2017, which of them should you spend your time and effort on? A lot depends on the correct answer here - the complexity and speed of the learning process, the minimum threshold for entering real activity, further career prospects.

Promising areas of programming and languages ​​for 2017

To decide on a specific programming language to study (one or more), you first need to answer the question: in what area of ​​programming would a person like to work. The most popular and rapidly developing areas are now:

Web programming technologies. Website development, online services and banking, online stores, landing pages for businesses and the like - all this is part of web programming. More and more people on the planet are becoming Internet users, it is becoming faster and cheaper, even people of mature and old age are becoming active users of the Internet. In 2017, this trend is only intensifying and the ceiling of its development is not yet visible. Therefore, it is very beneficial to learn programming languages ​​related to the Internet. The list of the most popular of them will be presented below;

Programming for gadgets: smartphones, tablets, smart watches, glasses virtual reality etc. It is also a very interesting and rapidly developing area of ​​activity. Billions of people around the world use gadgets, read news on them, watch videos, listen to music and do a lot of other things. All of these electronics functions are possible thanks to a well-written software... It often costs much more than the physical device itself. Programming in this area is now very profitable. It is worth noting that programming languages ​​are most often used here. high level.

Which language to choose

It is impossible to say which language is the most modern. Many of them are used very widely and actively. But when it comes to promising programming languages, the best are the following:

  • Java. The most versatile and popular programming language with which you can develop both applications for computers and gadgets, especially for Android OS. It has an understandable syntax, learns quite easily and quickly, the first Java programs can be written several weeks after the start of training. The main characteristic that makes it very promising is its use for programming for Android, which is now developing very rapidly;
  • C #. Great option for a person who wants to devote his activities to writing programs for computer systems. It is the CI Sharp language (C #) that is the basis on which most programs for various platforms and services from Microsoft are written. It can be used to develop web applications using .NET and Azure, as well as programs directly for Windows, various business applications and many other things. It's a bit of a sweat to get to grips with C #, but it will pay off in the long run;
  • PHP. If your task is to write high-quality scripts and interactive templates for Internet resources or be an administrator of a server, which is now a very profitable occupation, then PHP will be the best way realize such a desire. Modern programming languages ​​simply cannot do without this representative. He learns quite so quickly and easily - if you study PHP thoroughly and regularly, then in 2-3 years you can apply for a very good position and a corresponding salary.

Of course, this is far from a complete characteristic of languages ​​and their classification, but even such a small list is quite enough to choose a good and promising field of activity for yourself.

A complete review of modern programming languages ​​might take too long, but this is not so necessary, since it is worth remembering the main thing - a person who is fluent in any language will certainly be able to find his place in the field of programming. And knowledge of one of these languages ​​will necessarily be enough to make good money and solve interesting problems.

One of the most used systems for assessing the popularity of a programming language is TIOBE, the essence of which is to count the number of web pages on which there is the name of a particular language.

However, this does not always indicate how many people are actually in this moment want to use or are using a programming language, so the GitHub team approached this issue from a different angle.

Their system, called PYPL (PopularitY of Programming Languages), is based on the number of search queries tutorials: the more people look for tutorials on a particular programming language, the higher it is in the PYPL ranking.

10. Swift

The language was not that long ago, but Apple wants it to become a key language worldwide and for all platforms, including the web and Android, in the next 20 years.

9.R

R was created in 1993 and is used today by large companies for machine learning and big data analytics.

8. Objective-C

Even though Swift was originally released to replace Objective-C, the language is still popular and the forefront of iOS development. But this is likely to change soon.

7.C ++

The most popular C ++ products are Windows and Google Chrome.

6.C

Dad can be in Xi. This is probably why this language is used everywhere, and the code on it can be run on literally any computing platform.

5. JavaScript

It is this language that is usually in first place in various ratings. However, according to GitHub, it is not the most popular. JavaScript is used primarily for developing web applications, but there is really no limit to it.

4. C #

C # is developed by Microsoft and is used mainly in related systems, for example, in Windows Phone... The Bing search engine is also written in C #.

3. PHP

This language is the most popular choice for backend development. Sites such as Facebook, VKontakte, Yahoo are written on it.

2. Python

Python was created in 1989 and since then it seems to have become more and more popular.

Almost 60 years have passed since the first high-level programming language Fortran appeared in 1957, and it is not surprising that programming has leaped forward over such a long time. New technologies have appeared, new concepts and programming paradigms, and, of course, new languages. As a rule, the creation of a programming language is due to the demand of the time: new tasks often require new tools to solve them, which will do the job better than their predecessors. In this regard, several new languages ​​appear every year, which absorb all the best that has been accumulated over decades of practical programming and at the same time bring something new. Some of the most interesting languages programming that have appeared quite recently, but have already established themselves as powerful and modern tools for the developer and will be considered in this article.

Swift

A free general purpose language created by by Apple for development for iOS and OS X. The language is compatible with Objective-C, which makes it possible to use both languages ​​in one program. Development of the language began in 2010 under the leadership of Chris Lattner, Apple's head of development. Swift has borrowed ideas from many already existing languages very different directions: from C ++ to Haskell. The official introduction of the language took place in June 2014, along with a 500-page manual on how to use it. You can work on Swift in the Xcode 6 for iOS programming environment. Language version 3.0 adds support for Linux.
The language has taken a lot from Objective-C; at the same time, it is positioned as safer and faster. According to the developers, Swift code runs 1.5 times faster than similar Objective-C code.

Hack

A language developed by Facebook; similar in appearance to PHP. The program code on Hack is executed on a special virtual machine that also supports PHP. The language is open - source codes Hack is open to everyone who wants to participate in its improvement. Although the language is based on the well-known PHP, the developers managed to create a completely new and highly reliable tool for fast creation websites and other applications. The result impressed Facebook so much that all of the company's projects were transferred to Hack - a fact that speaks for itself.

Julia

A new language for mathematical calculations. The syntax of the language was influenced by Matlab and other mathematical languages, but there are also significant differences. The language itself is written in C and C ++; program code the language is executed on the LLVM virtual machine, for which Julia is equipped with a JIT compiler. Thanks to compilation, a high speed of application work was achieved, comparable to programs written in C ++.
The language supports distributed computing, function overloading, and code parallelization. The main task of Julia: work with a large volume of calculations while maintaining high performance. For these purposes, support for cloud computing has also been added to the language. Besides purely mathematical problems with the help of Julia, it is also possible to create general-purpose programs.

Dart

A language created by Google as a replacement for JavaScript. Due to some "fundamental flaws" in JavaScript that cannot be fixed, it was decided to create a new language for web programming. At the same time, the language had to be created as similar as possible to the existing ones, in order to simplify the transition and teach newcomers. Currently, Dart programs are executed in two ways: through virtual machine Dart VM and by translation to JavaScript. In the future, Dart is slated to replace JavaScript as the universal language for web programming.

Type Script

Another language that positions itself as a replacement for JavaScript. The famous Anders Hejlsberg, the author of Delphi, C # and Turbo Pascal, became the developer of the new language. Type Script is open tongue backward compatible with Java Script. The compiler converts the Type Script code to JavaScript, which is then executed by the browser. Unlike JS, the new language supports all the possibilities of object-oriented programming, as well as the connection of modules. Type Script and JavaScript compatibility allows existing JavaScript code to be used in new Type Script projects, including popular JS libraries. There is support for the generic programming paradigm.