There are different driving factors that so far nobody has managed to combined well into a single language or at the very least not well enough to push away existing once entirely.
– Performance. The most obvious one maybe. This is were e.g. C, C++ traditionally excel.
– Development speed. Abstracting away lower level details and providing ample built-in utility code significantly speeds up development. Among the things commonly abstracted away are things like memory layout and memory management, but also some aspects of error handling.
– Maintainability. Needing less code to get the same thing done, describing more the “what” and less the details of the “how”. Also, new languages can restrict the “how” to eliminate certain classes of bugs.
– Maintainability and development speed are tightly connected. Also, they favor the creation of domain specific languages.
– Portability. Some languages may be bad at running across multiple platforms by leaving platform dependent details to the programmer. While this could be mostly solved by providing platform agnostic libraries it pretty much had to be present when the language is first gaining wider adoption. Otherwise you’ll end up in a situation, where the language has become more portable, but the libraries you want to use are not.
The languages that succeed at providing significant value for l
Beyond that, there can also be legal reasons, such as a language coming with a usage contract that makes it non-viable for your usecase.
There can also be political reasons like “we want to be legally and technologically in control of the language driving our platform”.
For research purposes (i.e. in order to find new ways of improving on such criteria) small languages may be created even without an intent of them ever gaining widespread use.
And then there are esoteric languages, which are essentially practical jokes.
Latest Answers