New languages appear for a number of reasons:
- as an exercise for the inventor;
- due to alleged deficiencies in existing solutions;
- introduce new ideas that are inconvenient or impractical to transplant into existing languages.
There is no specific list of problems. Someone simply decides, as a rule, based on their own experience, that does nothing everything that he wants, and then tries to create something that does. Sometimes it works, sometimes it doesn’t. Sometimes it becomes popular, most often it is not.
Edit: It is important to remember that when it comes to “problems,” it is often subjective. Many consider memory management to be a problem that has caused an increase in garbage collection. Not everyone agrees.
In addition, functions that appear in languages, and at least in terms of new new languages, are not necessarily related to problems. They are more about what is possible and what is fashionable.
Closures, first-class features, etc. They are currently trendy, although they have been around in Lisp for decades. That is why most modern languages either have them or get them.
Which is also important. Computer power is not so cheap that overhead or things like garbage collection are considered so small that in most cases, productivity gains outweigh any implementation costs.
Finally, no language is suitable for all tasks. Like what we want to do with program changes, just like in languages. Web development is now a huge force in programming. That was not 10-15 years ago. Useful features for web development do not necessarily coincide with writing heavyweight desktop applications, so languages also evolve.
source share