| So, the first thing you have to think about is: What is a programming language? Or better, what is the purpose of a programming language? PLs give the programmer a way to express their idea in such a form the computer can understand. Here are two aspects already: 1) Expressing an idea, and 2) interpretation by the machine. Certain PLs exist to formulate certain ideas in certain ways, that the computer interpretes in certain ways. That way, the popularity of a PL depends on 1) how many people think that way, 2) how much effort those people put into developing the needed tools 3) how much this way of thinking is needed and supported by the industry 4) how well this way of thinking is compatible with previous work 5) how well the computer can execute these expressions using its architecture 6) what architectures exist for which purpose, and whether these purposes comply with the way ideas are expressed in a PL 7) ... and so on, this list is endless For example, stack-based CISC computers using the von-neumann-model have a long history and are very powerful these days, and using software has become common in non-IT industries, which is why object-oriented imperative programming languages like Java and C++ are so common. When some great programmers love a special language because because it matches their way of thinking, then it's most probable that this PL is not very popular, simply because few people think this way. A genius may invent the mightiest programming language in the world, but nobody else would use it because nobody else could understand it. You could say, the only thing that a PL actually expresses can be seen on the people who use it. |