What makes a programming language successful?
Part 2: Success factors
There is a surprising number of factors that decide the faith of a programming language. Here we discuss some of them, though note that this list is basically infinite (I found it out while making this list).
Time to market
Though every language has its weird things and shortcomings, the language must be well-designed. C and Java are very well-defined languages that relative consistently implemented a lot of innovative concepts. Especially considered the time they were conceived. It’s much easier to bash a language than to create a better one.
Especially in the early years, it's good that the language solves a certain domain of problems better than existing alternatives. For example, Kotlin that has null-safety, which addresses one of Java pain points.
It’s these new concepts that mostly gain some traction on Social Media and Tech Press. This will increase the number of developers that take it for a spin and may find out that they like the new language.
A well-designed language is nothing if the software is slow. And not only the speed of writing a program, but also the speed of compiling or running a program. That’s also one of the reasons why low-level languages like Assembly or C are still attractive. Often higher-language features come with a price and that is speed. New languages like Rust, Julia and Kotlin spend considerably amount of time in bringing the performance to a good level.
Another factor is that executables can run on multiple platforms. A language that can run and integrate with a specific operating systems has its advantages.
Today, some would say it has become less relevant because of containerization, but generally it’s still an advantage that the software can run on as many platforms (architectures and OS) as possible.
Big tech companies can put its weight behind a language. This by providing enough resources. Think of money, language designers, promotion and infrastructure.
Another factor a big tech company can provide is a certain trust. Other companies and developers need to be assured that in a couple of years the language where they base their software on is still relevant.
- Microsoft: Visual Basic, C#, F#, Typescript
- Google: Go, Dart, Carbon
- Apple: Objective C, Swift
Find a Job
What programming language do I need to learn? The one with a cool syntax, or the one in which I find a job? This works of course both ways. Companies use languages that have a big pool of programmers, and programmers choose a language that has a better chance of a job.
Find your specialization
SQL is a domain specific language that is targeted only at querying databases. Most of other languages are for general purpose, but even they’ve found their niche. So if you are working on a specialization, these are often the languages considered:
C → System engineering
C++ → Animation & Game development
Python → Machine learning
R → Data Science
Java → Business Applications
Kotlin → Mobile development
That these languages are the de facto standard in a certain field helps a lot with their popularity.
One reason a language becomes successful in a certain specialization, is providing good libraries (APIs). It’s almost in all cases faster to use a library than to write one yourself.
Programming languages in the top 10 have by far the most available libraries on the market. Java for example has more than 9 million libraries that are freely and easily available on one central place, Maven Central. For a new language, it's hard to compete with that.
Additional to libraries, some areas provide a set of libraries that work well together. Such frameworks are attractive space for developers to work in, because it saves time and they can focus on functionality, instead of the screws and bolts. Think of web frameworks like Django (Python), Ruby on Rails (Ruby) and Laravel (PHP).
Languages that are easily extended have much more value. Besides, software doesn’t stand on its own and much cope with the complexity of the world. The more capabilities a language has in this area, the more traction it becomes.
Sometimes it's good for developers to understand the basics of a programming language by writing code in a simple editor and then compile it from the command line. You know better how it works, doing it this way.
But developing bigger projects in for example notepad is cumbersome. Doing so will give you new appreciating for IDE’s (Integrated Development Environment). These can organize your project files, debug your code and give suggestions. Visual Studio contributes a lot to the success of C# and IntelliJ to the success of Java.
Widely used programming language are always open source licensed. Think of Matlab, Wolfram or Delphi. These proprietary languages are hardly used outside certain niches. Open source languages are free available, so there are no cost for even independent developers or small business to start with while protected by the license.
Not the most popular topic under programmers, but documentation can help a language to gain traction. Especially when a new language has good documentation, it can guide developers in creating their own solution. Besides documentation about the languages and its libraries, also tutorials can contribute.
When a program is used more often, then tutorials on YouTube and other websites are made by the community. Also, the number of StackOverflow articles can help. It’s not for nothing that Red Monk ranks programming languages by number of Stack Overflow articles and GitHub projects. A community is crucial for newcomers to find resources, and for any developers that got stuck.
School and universities often choose a language to teach based on:
- How easy it is to learn (including programming concepts).
- How useful it is in science.
- How practical it is for students in real life (for example on the Job Market).
A programming language exists, of course, to make programs. There must be useful software as an outcome. Dennis Ritchie and Ken Thompson didn’t only contribute to the C language, but also wrote Unix and Grep. Of course other software like the VI editor, Oracle Database, Apache Webserver, Microsoft Excel and Linux are all written in C.
Last, but not least, it takes time. Especially in an area where there are already so many languages, it takes time to convince people why it’s useful. It also takes time to bring the quality of the new language to a certain level. It takes time to grow the community.
In the last part, we analyze how Kotlin became popular and how future-proof it is.