languages, salary and prospects in 2024

Why are programmers not afraid of artificial intelligence? Because all they have to do is tell the customer: “Explain to the computer what exactly you want.” They used to joke like that not long ago, but now such jokes are not as funny as they used to be. The artificial intelligence embodied in ChatGPT continues to improve, while the IT community is divided into skeptics and enthusiasts. Some believe that programmers don’t need to change, others think that new languages ​​and development approaches will completely bury manual coding. On a recent discussions Artezio we gathered influential developers and asked them to predict how programming will change in the future, which languages ​​promise to be on the wave of success, and how to stay in trend.

You can watch the full version of the discussion on the Artezio Youtube channel. Subscribe and you will be able to take part in heated discussions.

“We are seeing a trend in the use of new generation languages”

It is difficult to imagine the future of software development without new programming languages. Many developers talk about this and divide languages ​​into old and new.

Petr Tugolukov, corporate architect at Xsolla: “We are now seeing a trend towards using more and more new generation languages. Many companies of various sizes are switching to the new Python, Go, Kotlin, and in the field of mobile development – to Swift. The languages ​​C++, C, PHP, Java can be attributed to the previous generation.

Our company also uses PHP and Go applications. We’re committed to developing new products in Go because of its efficiency, low barrier to entry, and strong ecosystem with many packages to solve a wide range of problems, as evidenced by the huge number of repositories on GitHub. I assume that this trend will continue in 2024.

The influence of the almighty JavaScript, which is used on both the service and client sides, cannot be ignored; JavaScript developer professions are becoming increasingly in demand. There are also exceptions related to the development of devices for specific purposes (Internet of Things, gaming platforms), where the use of Go and JavaScript is possible only with a special approach.”

A similar situation is developing in the gaming industry. However, according to Andrey Karsakov, Nau Engine development manager, traditional languages ​​(C++, C#) continue to be de facto standards in this area.

“We’re seeing a lot of interest in Python in tool development for GameDev. More and more support tools are being built in Python, and many game engines now have a Python API. Additionally, some enthusiasts at GameDev delve into unique programming languages ​​for creating game engines, such as Rust, which was used by a group of developers to create a game engine (Bevy).

Typically, we tend to use C++, which is an established standard and allows for flexibility across multiple platforms. However, we recognize the trend towards the emergence of many new and interesting languages ​​actively used in production. That’s why we plan to create a system that allows enthusiasts to easily integrate the programming languages ​​of their choice. This is critically important for the convenience of developers, because we are creating a tool specifically for them. We want to give developers the freedom to choose a language, rather than limiting them to using traditional, “old school” (C++). Therefore, although our base consists of C++, the program interface of our product will be available for a wider range of languages, including new ones,” said the head of development of the Russian game engine Nau Engine.

And here Ilya Steshkov, developer of OZON information systems, confirms the idea that in the last three years Go has become a significant preference for new projects, due to its compatibility with microservice architecture and ease of working with older monolithic systems. “According to my observations, Go will remain popular in the field of backend development,” says the expert.

According to Alexandra Tyryshkina, Head of WMS AliExpress CIS, Nowadays interest in JavaScript is increasing.

“We also refactor old monoliths, but use Java and Kotlin, adhering to modern microservice architecture standards and DDD principles. It seems to me that the question of programming trends is closely related to the news context. For example, Elon Musk can influence trends by emphasizing the importance of artificial intelligence, which leads to increased interest in certain programming languages. Despite my devotion to Java and the Spring Framework, I must admit that the trends are now leaning towards JavaScript due to its significant influence on many frameworks. JavaScript turns out to be in demand in front-end and mobile development, for example, in Flutter. AI, Python, JavaScript are the trends of today,” he notes.

Anton Martynov, architect at SimbirSoft, believes that TypeScript plays a significant role in modern development, functioning as an already established tool.

“In the field of mobile applications, technologies such as Android with Kotlin, iOS with Swift are actively used, and recently Flutter is gaining more and more popularity. If we are talking about development for markets where web solutions predominate, then PHP is undoubtedly the leader here. It is followed by Python, which, thanks to its numerous frameworks, is gradually giving way to Go. Our statistics show that PHP takes first place, followed by Python, and then Go. This is due to the fact that the earlier the language began its development, the more ready-made solutions that can be effectively applied it has accumulated.

A similar situation is observed in the development of corporate portals, where ready-made frameworks and CRM systems, written mainly in PHP, play an important role, although there are also classic solutions in .NET and Java. Go is increasingly being used in tasks related to business process automation and resource accounting, as it is well suited for microservice architecture and allows achieving high performance in certain areas. However, Java and .NET still remain popular in this sector.

In terms of growth prospects, we see that there is significant demand for migration to new platforms or migration from legacy monolithic systems to microservice architecture. According to our statistics, with this transition, half is in Java, about 30% is in Go, and the remaining 20% ​​is in .NET. At the same time, the number of migrations from .NET to other languages ​​is increasing, reflecting trends in the field of programming. The “dinosaurs” of Java and PHP will eventually be replaced by new languages.

As for web development, there are no significant changes; JavaScript remains unrivaled, supported by three key frameworks: Angular, Vue and React. Recently, Angular has been losing ground a little, while React and Vue are gradually approaching each other in terms of popularity, although React still remains a little ahead,” the expert notes.

The world of mobile development is dominated by three main languages: Kotlin and Swift for their respective platforms, as well as Dart as a cross-platform language that has already found use in many projects. This is what he says Maxim Sidorov, team leader of the SberDevices system services team.

“It should be noted that Kotlin, being a relatively young language, is ambitiously exploring new niches, and I am confident that with the advent of multi-platform Compose, Kotlin will actively enter the iOS platform and, possibly, become the dominant language. I agree that we evaluate the current situation based on graphs and reports on the prevalence of languages. But it is also important to look several years ahead. Recently, we have seen the emergence of interesting young languages ​​such as Kotlin, Dart, Rust and Go, which occupy about 1% of the market according to reports. However, in my opinion, they represent the future of programming, and Java and PHP will eventually be replaced by these new languages ​​with smarter designs, richer features, and interesting architectures.

And here Alexey Sharypov, Lead Backend Developer Playrix, believes that the choice of language for the backend is often not critical, although for programming devices and the frontend, where JavaScript is in the lead, it matters. The main characteristic is the cost and speed of development. Companies choose Python because developers are easier to find and more accessible, unlike Go developers.

“For this year and next year, the trend, it seems to me, is towards simplification. Python is attractive because of its simplicity and reduced development costs, which is important at a time when the number of projects is not growing as quickly. Companies choose technologies that are cheaper to implement and support. Large companies like Amazon and AliExpress use their own stack because they have already invested in developing and training their developers. But startups or companies changing projects will prefer more accessible languages.

Python is now popular among students due to its low barrier to entry, and in the next couple of years the market is likely to be filled with developers who prefer this language. As for Go, its development cost is twice that of Python, which is why many, especially small companies, try to avoid it. But large companies continue to work with Go, despite the cost,” he notes.

“It’s not the language that matters, but the paradigm you apply when writing logic”

There is an opinion that when choosing a language, especially in the gaming industry, the key is not a specific programming language, but the principles and methods (paradigms) used to solve problems.

“It’s not so much the programming language you write in, but the paradigm you use when writing game logic: object-oriented and data-oriented. The main difficulty lies not so much in choosing a language, but in not making development tools more complex than necessary, and providing languages ​​whose syntax is familiar to most. In game development, this is usually C# or C++, depending on what basic tools the developers had initially,” says Andrey Karsakov.

“Next, well-designed documentation and a clearly described game engine API become important. Developers then apply their already honed skills to learn and use the engine’s features. In general, the game development process is fairly standardized in the industry; changes may only affect the names of functions, methods, classes, but the basic technologies and approaches remain clear and accessible. We want any developer with experience in game development to be able to easily start working with us by reading the documentation. It is also worth noting that knowledge of a programming language in the context of a specific game engine does not always translate into broad knowledge of this language as a whole. For example, a C# developer in Unity can hardly be considered a .NET developer, since these are completely different areas of application of the language,” says Andrey Karsakov.

According to the expert, someone who knows how to write scripts in C++ in Unreal Engine will not necessarily be able to immediately start scripting in C++ in Nau Engine, precisely because of the different tools, although they use the same language. But if the developer has a deep understanding of the basics of programming and mathematics, i.e., good basic training, and wrote in pure C++ or another language, then moving from one language to another, especially between C-like languages, is usually not difficult.

“However, if you are a developer who was trained only in Unity or Unreal and learned C++ solely in the context of the specific features and syntax used in those engines, the transition may be more difficult. Such a developer may need more time to adapt to the new engine compared to someone who has a broader and more fundamental knowledge of programming, rather than limited use of the language within a single tool or framework,” summarizes the Nau Engine development manager.

“Proficiency in one language does not mean easy transition between different areas of its application”

But there is a problem that managers in IT companies often face. It concerns the use of one programming language in such different areas as front-end and back-end.

Petr Tugolukov, corporate architect at Xsolla, notes that mastery of one language does not mean easy transition between different areas of its application. For example, it is easier for a backend developer to change the programming language from PHP to Go, since the scope of tasks is similar, and the concepts of middleware, server and database remain common.

“However, the transition from front-end to back-end developer or vice versa, even with JavaScript knowledge, can be difficult. This is a common mistake that leads to unexpected delays and problems in development. A front-end developer trying to work on the back-end may experience insufficient performance since he has no experience in this area. A similar situation arises in game development. Knowing how to work with game engines makes it easier for a developer to switch from C++ to C# if he has enough experience. But even knowledge of C# will not provide an easy transition from game development in Unity to backend development. Such a transition will, in fact, require new training, since, despite the general loops and conditional operators, the specifics of the tasks are completely different,” noted Petr Tugolukov.

“Returning to more serious development, it is necessary to understand that a developer who worked on backends in a company like Yandex cannot just switch to working in a game engine. Even if the programming language is the same, the engine architecture and client-side concepts are different from those encountered on the backend, where other aspects are important (memory handling, RAM) that backend developers usually do not think about. And if we look at Dart and Flutter, which can work everywhere, knowing the language used for the backend will not automatically allow you to move to desktop development, which has its own specific concepts, for example, the registry in Windows, which backend developers usually do not encounter,” – he added.

According to Peter, knowledge of a program language in itself is not enough to work with these areas. It’s impossible to say for sure that working in one area is easier than in another—neither in the backend nor in mobile development. Take, for example, the task of creating a complex distributed application similar to what banks use – it can be extremely difficult. You can develop complex architectures both at the command level and in games or desktop applications. Try to create a chat for the frontend of a large classified website – this is a very difficult task.

“Knowledge of one programming language does not guarantee that you can easily switch to development in another area. Relevant architectural knowledge is required. The language may make the transition a little easier, but to make it instantly, just by snapping your fingers, no, I’m not at all sure about that,” concluded the Xsolla enterprise architect.

“Unique skills can be expensive”

The issue of salaries is always a concern, and people really strive to go where they can earn more. When talking about IT, people very often associate working in this field with huge salaries.

“If you specialize in something specific, your work can be well paid, but only when such skills are required. For example, Elixir developers don’t always find many high-paying jobs. Therefore, when choosing a language to study, you should look at the market, analyze research and real vacancies. Unique skills can be expensive, but not always in demand, as is the case with Cobol developers in the US. I recommend paying attention to such more popular and in-demand languages ​​as Swift and Kotlin for mobile development, C++ and C# for game engines, Flutter for the desktop, as well as Go, Python, Java, C# for the backend and, of course, JavaScript for the frontend. Knowledge of one area makes it easy to move on to another language in the same area. From personal experience, to start working with Go after C++, one night on a train and a book was enough for me. The main thing is to choose the area in which you want to develop,” says Peter Tugolukov.

According to Ilya Steshkov, the basis of development is the programmer’s thinking. A programming language is just a tool for solving problems.

“The base is important, but the choice of a specific language, as many experts have said today, is not so important. The choice depends on personal preferences and the area in which you want to work. If you want to earn, for example, 400 thousand, you can go to banks, or if you want to develop games, then API engines are suitable for you.

First you need to gain a general understanding of problem solving, and then you can choose a specialization and language. At the same time, even if the choice of area is limited, for example, front-end, in other areas it is better to follow the heart, and not just rational calculations. The tool you choose will be your companion for many years, helping you solve problems and achieve financial goals. Personally, after working with PHP for a while and realizing that something didn’t suit me, I switched to Go, and it turned out to be easy,” he said.

“Psychotype affects general abilities”

Andrey Karsakov believes that when moving from one programming language to another, we are faced with variations in ease of use, complexity of designs, etc. But it is also important to take into account the psychological type of the developer.

“Psychotype can affect how successful you are in programming. If you have perseverance and a desire to tirelessly learn new things, then programming in any form will suit you, as it requires constant learning. And don’t think that after learning your first language you are doomed to stay with it for the rest of your life. In most cases this is not the case,” he is confident.

“Yes, perseverance and a tendency towards extroversion or introversion do matter. Extroverts generally prefer interacting with people rather than code. There is a division among developers. There are those who like the visual result of their work, for example, front-end, desktop or mobile applications, where you can click a button and immediately see what has been done. And there are those who are more attracted by internal complexity, who prefer the backend. This distinction is quite obvious, especially when hiring new employees and working with interns. Future professionals should ask themselves whether they prefer working with APIs without a UI or with the UI itself. Depending on the answer, you can determine your path in development, be it front-end, desktop or mobile applications,” added Peter Tugolukov.

“The connection between language choice and salary level is incorrect”

Maxim Sidorov believes that linking the choice of programming language with income is not entirely correct.

“Your passion and interest in programming is important. If you are interested in your work, you can earn a lot using any language, such as PHP, R or C++. The main thing is that you are involved in programming, then success will come by itself. When it comes to starting a career, Python and JavaScript can be a good place to start quickly and make it easier to move on to other languages. In general, learning all languages ​​is accessible. For example, I studied C# and Java for only two weeks, having experience with other languages,” he said.

“I don’t argue that many specialists with different languages ​​are now needed, perhaps more than traditional C++ programmers. It’s important to note that if you’re learning programming purely for the sake of making money, it may not be the best approach in terms of management and the impact it will have on you and the products you create. In any craft profession (programming is also a craft activity, despite its creative side), the key is your enthusiasm for solving problems, regardless of the language,” says Andrey Karsakov.

“A salary increase can improve an employee’s performance, but only for the first weeks. Then everything returns to normal levels. However, if a specialist is truly valuable and wants to earn more than the market level, he will have to pay above market rates, otherwise he may leave for another company. Salary is closely related not so much to how passionate a person is at work, but to what benefit he brings to the project, company, team and what unique contribution he can make. If he stands out among 80% of developers, then he will earn more. In Russia, indeed, only 3-5% of developers receive salaries of 400K+, the majority have an income lower. To qualify for high salaries, you need to reach the expert level. But regardless of your desire to earn money, at the beginning of your career you are unlikely to be able to receive large sums. There are no known cases where beginners immediately earned a lot. We first need to prove something,” added Alexey Sharypov.

“JS will be relevant in 2024”

Speaking about which languages ​​are worth learning in 2024, experts have compiled their own list of relevant tools.

“From the point of view of earning money and personal development, I would recommend paying attention to JavaScript. It is needed everywhere, including in Ecom, FinTech and other business sectors for front-end development, along with TypeScript. In the backend, I love Go and would recommend it, but first it’s worth looking at what large companies (banks, VK, OZON, Vita) use. If they use Go, they will most likely continue to use it in the future,” said Petr Tugolukov.

“If we talk about the front, then yes, JavaScript is really relevant, I agree with Peter. In the case of the backend, the most accessible language to start with is Python. Go is also a great language, but it may be a little more complex, and it’s not clear what its future will be. Python is now in great demand and, apparently, will remain so, so no problems are expected with it,” says Alexey Sharypov.

“On the front, I won’t say anything new – JS. If your heart lies in the backend, you should study what is actively used in large companies, because they are unlikely to abandon the chosen tool in the coming years. I would also recommend Go. The demand for qualified specialists is high, and the barrier to entry, in my opinion, is not so high compared to Python,” notes Ilya Steshkov.

Maxim Sidorov believes that you should definitely learn Python, since it is applicable not only in the backend, but also in science, in neural networks.

“It is popular in the market and has a wide range of applications. In the backend, you should pay attention to Java and C Sharp if you are not afraid of being tied to platforms. For mobile development – Kotlin, which, it seems to me, will soon take over all platforms. Kotlin is also attractive because it is actively used in various fields and can be compiled into other languages,” says the expert.

“On the front is JavaScript, and it’s worth looking at frameworks like React or Vue to better understand modern requirements. Backend: Python and Go. If we consider more traditional languages, then Java and C Sharp, but I expect their gradual replacement by Python and Go, or perhaps something new will appear,” noted Anton Martynov.

“It’s worth defining your area of ​​interest. You can focus on mobile development by studying Flutter and Kotlin, given that mobile development is in demand everywhere and has fewer AI-related services, which is an advantage for beginners,” added Alexander Tyryshkin.

Andrey Karsakov advises that if you are choosing your first programming language and plan to engage in programming on a long-term basis, it is best to prefer a C-like multi-paradigm language that will allow you to experiment functionally and become familiar with object-oriented programming, etc.

“If you want to develop games, then, of course, C++. Most proprietary engines are written in C++. If your path lies in scripting, then you usually use C# or scripting languages ​​like Lua or Python. As for backend development in game development, it is not very different from well-known backend technologies,” the expert concluded.

Instead of output – comments

We are interested in your opinion on the topic we discussed during the discussion. It is important for us to find out which programming languages ​​you see as relevant in 2024 and what you think about the onset of AI. Share your opinion in the comments under the video.

The author of the most interesting comment will be awarded a three-month subscription to Litreswhich gives access to audiobooks, text versions of books, podcasts and lectures.

Don’t forget to subscribe to our channel – new discussions and expert presentations are ahead. By the way, if you want to be an expert on our discussions, write to us.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *