Someone asked on Reddit: Why Clojure is not widely adopted like mainstream languages?
Here's my answer:
You probably should have flipped the question, because the vast majority of programming languages are not mainstream.
The more insightful question is: "Why and how did a language X become mainstream?"
From the answers to this flipped question, we may induce some patterns that other languages could try to imitate.
Let's give it a try, by looking at the most popular languages as of today:
- Python: Some big corporations adopted it early on, e.g. Google; some well-connected people started to prompt it as the first language, then schools started following the suggestion; now it enjoys dominance in machine learning - the most hyped field.
- C: A readable assembly, so almost all operating systems are written in it; you must use it if you want to interface with hardware; all students in the last generation learnt it in school.
- Java: Heavily prompted by its corporate creator that enjoyed a high status among developers; billed as something solving most problems at that time; consequently widely adopted by other big corporations as well; so it was taught in schools everywhere.
- C++: billed as the next step of C, due to the wise choice of its name; heavily prompted by tooling companies such as Microsoft, for it was so complex, their tooling were required; all the "serious" computer science students are then proud of their skills in C++, because only they can master it, non-CS students would not be able to.
- C#: Microsoft's answer to Java. Microsoft betted the company on it.
- Visual Basic: non-programmer's only option for a very long time.
So the tricks to popularity seems to be, in order of importance:
- Big company backing
- Niche dominance
- School adoption
Clojure's only hope is 2. Maybe 1, if one of the companies using Clojure becomes wildly successful. Then 3 will follow.
What do you think?