DEV Community

Discussion on: How and why are new programming languages created?

Collapse
 
nestedsoftware profile image
Nested Software • Edited

One issue with programming languages is that there is an inherent need for them to be stable. If you've written a large application with hundreds of thousands of lines of code, you're not going to be pleased that the latest version of the language you're using has major breaking changes. Consider how controversial and fraught the rollout of Python 3 has been. I think this is a factor that has a tendency to make established languages somewhat inflexible to new ideas and new requirements. Even as established languages evolve, they tend to do so in a way that is backward compatible, which sometimes means things are not as elegant as they could be. Over time people get frustrated, and some are even willing to try creating something new to address these sorts of issues.

  • Go seems to be a case where the designers wanted something light and portable, very much like C. C has a lot going for it, and it's been around forever, but it's also really easy to create bugs and security flaws in C.
  • Rust is interesting. Here the main idea seems to be to try to innovate in the domain of memory management. The compiler provides some guarantees about memory that few other languages offer. Again, my impression is that Rust aims to fit into a similar niche currently occupied by C and C++. C++ has also been around seemingly forever, and it's a language that's renowned for its extreme complexity. I think that creates room for challengers to come along to offer a simpler approach.
  • Kotlin is another example of a fairly new language. It is not a radical departure, but it's basically Java "cleaned up." Even if Java wanted to do this themselves, it would be difficult because of the problem of backward compatibility.

That being said, making a new language is no picnic. It's the same old story: If the language doesn't already have a lot of users, that makes it hard to get users. It's kind of like how you need experience to get a job, and you need a job to get experience! It also takes a lot of work to get a language to a point where a typical programmer would find it useful.

Collapse
 
nanythery profile image
Nadine M. Thêry

Good point there, thanks for participating.