Many reasons, here are a few:
Purely technical: For instance, a new type of processor is built, and the way existing programming languages work doesn’t neatly fit the way the new processor works. So you create a new language that does the job better.
*e.g:* GLSL for programming graphics shaders that run on a graphics card.
Solving common problems: Sometimes, programming languages have some kind of problem. If you figure out a way to solve that problem, you can build a new language around it.
*e.g:* Rust solves problems with memory safety (common in languages like C and C++), by making the way memory is reserved and released a core element of the language, rather than relying on the programmer to be careful in their code.
Allowing new ways of working: Programming languages are languages, they’re used to express ideas. If there’s a new way to express the same idea that is easier to understand, then you can make a new language that enables that.
*e.g:* C++ adds the concept of classes to C, which makes it easier to write programs about “objects”, self-contained things that handle their own internal data and have a neat outward-facing set of functions to interact with them.
Experimenting with new ideas: To find these solutions to problems, whether they’re purely technical, solving a downside with existing languages, or just trying to find new ways to structure code, we need to experiment. You have a cool idea for a way computers could be programmed, you design a new language to try it out.
*e.g:* Lucid is a programming language meant to experiment with dataflow programming, building a network that data can flow through, being transformed and filtered along the way.
For fun: It’s important to remember that a lot of programmers are nerds, and it’s just fun to play around with these things.
*e.g:* Emmental, a language that works by rewriting its own code while it’s executing.
Latest Answers