How programming languages are created

According to various estimations, there are more than two thousand programming languages in the world. Old ones receive constant updates and new ones keep emerging. When the syntax is not changed, but only made more complex and improved, all a developer needs to do is to practice a little before they’re back to working in their preferred language. But when the structure itself is changed, programmers have to learn how to adapt to the updated language. The transition to a new structure tends to be gradual, meaning that only 10 to 20 percent of source code is being written using the new language.

“Programmers weren’t fully satisfied with C++ and Java: those are quite complicated, especially the former. That is why the Scala language appeared, which many programmers are fond of; still, it is quite complex. JetBrains had a great deal of experience in developing software for different programming languages, which allowed them to create Kotlin in just seven years. It is not only fully compatible with Java, but is simpler and more user-friendly. Programming languages are constantly in development and people are long past the idea of creating a universal language. Nevertheless, each language is more effective in the field where it’s most often used. When languages are made, they are often intended to be used in a specific area of application”, - comments Anatoliy Shalyto, head of ITMO University’s Programming Technology Department.


Anatoliy Shalyto

Nowadays some organizations even compile their own language rankings. For example, TIOBE, a software quality assessment company, has been publishing a monthly popularity index of languages since 2001. There are 50 spots on the list, and for a language to be indexed, its developers need to send a request to the company. The calculations are done based on data from 25 search engines. Java is currently in the lead by a significant margin, with C behind it. The creators of the index note that in the past year, both of the languages have lost approximately 6% in popularity. Still, TIOBE shows that C was the number one language up to 2002 when it was replaced by Java, which was only 14-th in 1997.

A notable lecture on the history of language development can be seen here: Mikhail Gustokashin, director of Centre of Student Competitions at the Higher School of Economics, tells his audience about the development history of C, PHP, Ruby and Java languages. He, too, notes that each task needs a different language. For example, he says, good old Pascal – a language made in 1970 – is best used when developing software for military applications. Why? Because it’s more reliable. Business software can be written on Java; it is also quite reliable, but much simpler in use. He also adds that it’s important to maintain programmers’ interest in a language by creating a community for its users. If an infrastructure forms around a new language, if people who use it get together, only then can it become popular. Kotlin’s developers also employed this strategy.

A bit about Kotlin

Development of the Kotlin programming language began in 2010 at St. Petersburg-based company JetBrains. Its official release was in 2016. The language is named after the island in the Gulf of Finland on which the town of Kronstadt stands. By coincidence, the popular language Java is also named after an island, although one that is in Indonesia. But perhaps the coincidence is not that accidental. The official press release states that Kotlin will work anywhere where Java does, and that one of the goals of its authors was to create a product that could work in projects based on a mixture of languages.


Kotlin programming language. Credit: cdn-business.discourse.org

As creators of Kotlin say, their main goal was to create a “pragmatic” product, meaning that they focused not just on eliminating flaws and perfecting their language, which is what any developer would do, but wanted to make a truly beneficial tool.

“Development tools, programming languages included, are constantly in motion. Languages differ from other tools in that it’s hard for them to evolve. A new version needs to support all of the already existing software. It limits the possibilities for growth of existing languages and creates a demand for new ones. The factor that defines a new language’s success is, first and foremost, its ease in use for developers. Besides its brevity and conciseness, Kotlin is compatible with Java code: all the existing libraries can be used; you can even mix code from both in one project, so there will be no issues regarding transition”, - comments Andrey Breslav, head of the Kotlin project at JetBrains and ITMO University alumnus.

Why Google loved Kotlin

On its official website, Android developers write about their experience watching Kotlin’s “rise through the ranks” in the recent years. “Googlers” don’t shy away from using expressions such as "powerful” and “a joy to read and write” and say it opens numerous opportunities and is expressive, yet concise. It is, indeed, highly efficient: code written in this language is, on average, 40% shorter than in other languages; Kotlin also helps avoid certain errors in code. One of the decisive factors of Kotlin’s popularity with Google is its compatibility with Java, which is already being used for developing Android applications.

Now, when programmers begin the development of a new app in Android Studio, an integrated development environment (IDE) made by Google, they can switch on a “Kotlin Support” plug-in from the get-go. They are also able to convert lines of code already written in other languages to Kotlin and insert blocks of different code among the lines written in Kotlin. In the future, more libraries and tools will be developed for the language, more manuals and tutorials, and finding solutions for possible issues will be easier.

“The lack of guarantees of support from Google made many developers wary of transitioning to Kotlin. Even if they really like a language, programmers always have to think of the possibility that at some point the language will simply stop working. Now there’s a guarantee that Kotlin will go on and we expect the number of users to increase greatly. It would be a natural assumption that many companies will gradually make a full transition to Kotlin even though, technically, they are not required to do that – it’s just a matter of preference”, - explains Mr. Breslav.

He adds that Kotlin is very actively developing. A team of developers is currently working on the build system, compilation speed, and IDE efficiency and adds new features to the tool suite, including those related to the integration into Android Studio. There is also work being done on multi-platform project capabilities (the ability to compile the same code for multiple platforms), while a range of other language improvements are at the design stage.


Andrey Breslav

Google also emphasized that they’re inspired by Kotlin’s concept of being always freely available to developers as an open source project. The language will not be under the control of one specific company and its source code is developed under free license. The language can be downloaded here. Google and JetBrains will create a non-profit partnership in order to support the development of Kotlin. As part of Android’s “mission”, it is important that Kotlin’s authors help create a community of people who use the language professionally and love sharing their experience. For instance, in November the Kotlin conference will be held in San Francisco; developers are also able to receive daily news and tips on the software and set up local meetings.

Incidentally, the Android Studio project itself was developed based on the IntelliJ IDEA integrated development environment that was also created at JetBrains. But despite their close collaboration, the St. Petersburg-based company emphasized that their purchase by the American IT giant is out of the question. Additionally, Kotlin will be optimized not just for Android. The company’s goal is to create a programming language suitable for various development platforms.