Navigating in the World of 8,000 Programming Languages
The amount of programming languages keeps growing: some of them become popular, others are forgotten; some require a lot of time to learn, and others – only a couple of months. Why are there so many of them? Why do new ones appear? How to understand which one will become popular in the future? Roman Elizarov, a teacher of the Parallel Programming course at ITMO, JetBrains employee, an expert in Java, and one of the Kotlin developers, as well as John Mostovoy and Arseniy Seroka, Serokell founders, helped us figure it out.
Which programming languages are the most popular and relevant ones?
(Answers provided by Roman Elizarov, a teacher at the Parallel Programming course, JetBrains employee, an expert in Java, and one of the Kotlin developers)
Why are there so many programming languages? Are they all actually useful?
Top-10 of the most popular languages take up more than half of the market. However, programming is applied to all kinds of activities nowadays. The majority of languages were created for specific tasks. Some others are either experimental or research languages that aren’t supposed to be popular among a wide audience.
Why do new languages appear, if there are already so many of them?
New languages are created for various purposes. Most of them are just experiments of a small team of programmers, or even of one person. They rarely go beyond a certain field. Sometimes languages are created with the support of major companies. They have specific purposes: making programming easier, safer, faster; taking up a niche on the market; researching a certain field; allowing users to configure and program some other system, and so on.
What qualities should a programming language acquire in order to become popular?
Today, there are millions of programmers. In order to become popular, a language must be designed for a field with at least a million programmers. Moreover, its creators should set a specific goal for this language to become useful. This means that it’s supposed to bring something new to the table: solve specific problems that programmers face daily.
Why do people continue to code in C, even though there are so many other options, and C is considered to be not very user-friendly?
C is an old language, and yet it’s too early to claim that it’s not relevant anymore. Many built-in systems are programmed with its help, from Christmas lights and coffee machines to automated machines at factories. Moreover, the core of Linux is also programmed with C and continues to be improved. The language itself also keeps developing (the last update of its standard took place in 2018).
What about much older languages, such as Fortran and COBOL?
COBOL is actually outdated, there’s almost no software developed with its help. However, as it used to be very popular, some major facilities and organizations still use systems created with COBOL. They still operate and get updated (nowadays, this niche is taken up by Java). It’s pretty much the same with Fortran but it’s still used in science.
Which languages are applied only in specific fields, for example, in science or analytics?
There are hundreds of such languages. For example, Lua is being used for script writing in game development. R is used in statistics. Bash and PowerShell are often used for automatization scripts in Linux and Windows correspondingly. ABAP was created specifically for programming in SAP systems, just like 1C (Russian analog of SAP) uses its own programming language.
Which languages will be popular in the future?
(Answers by John Mostovoy and Arseniy Seroka, Serokell founders)
Nowadays, the trend is to create more elaborate, thought-out, and efficient tools. The ones that were made with consideration for a scientific approach, or a deep analysis of its capabilities and sequences, as well as demands of the market.
As most universities don’t educate students in mathematics behind processes and functional programming, a language should operate according to the imperative paradigm (“append A to variable B, append C to variable D”) in order to become popular. At Serokell, however, we take a step forward and lay the groundwork for eliminating this status quo in order to use a declarative paradigm (“variable X is like this; we take it into account by saying Y about Z”).
According to this new paradigm, programming languages with a declarative approach will succeed. At the same time, funnily enough, having a functional paradigm (“a program should code via compilations of functions”) is already a necessary (but not exclusive) requirement for a language to be successful.
There is a myth among young specialists (so, among the majority of them) that the more job offers that require an expertise in a certain stack there is, the more significant this stack is for professional activities.
Others, however, evaluate the supply and demand relationship, and they understand that, for example, Haskell and Erlang have a great potential. Erlang is the most important tool in telecommunications. Haskell is extremely popular in the financial and bank sectors. A lot is hidden behind the commercial sphere.
When the market will be filled with high-expertise specialists in non-mainstream languages, adaptation of these technologies will become beneficial for the business.