Posted on 3 mins read

I’m relatively young on the programming scene (I wasn’t around when FORTRAN came out or anything) so this is a hubristic thing to say, but it feels like we’ve reached Peak Programming Languages. For anything you want to build and any way you want to build it, there’s a mature and popular language already available. Typically the community around it is robust and the syntax is delightful. I mean, just try writing a few lines of C# or Dart and tell me it doesn’t feel nice.

I made this flowchart recommending a language based on what you’re building and the features you value most in a programming language. I left out a lot of languages (including 8 of the top 20) and for every leaf node on the chart, there’s another option or three I could have chosen instead. But it’s my chart, so you get my opinions.

A flowchart of programming languages, delineated by type of application and major features

Full-size link

It’s an unprecedented environment for new general-purpose languages to be competing in. People are definitely still creating them, but in 2023 more than ever, you might wonder why. Do any of them have a hope of gaining market share? Is it worth taking a chance on a new language, even one with some cool ideas or novel syntax, when you could use an established alternative with an enormous developer community and open-source ecosystem? What niche remains so painfully unfilled that we would all jump ship for a newcomer?

Of course, there are plenty of reasons to create a programming language other than trying to take the world by storm. It’s fun, for one. It breeds new ideas that often get adopted into existing programming languages, for another. And if nothing else, it’s one of the best ways to build your understanding of programming. We shouldn’t stop making languages. If anything, we should be making more of them. But some of these new programming languages seem to be making a genuine effort to grow and establish a user base, and while I don’t begrudge them that, I again ask why? I could happily use C#, Dart, Rust, and TypeScript for everything I build for the rest of my life. I can create anything I want, any way I want. I am happy.

I probably sound like this:

640K [of RAM] ought to be enough for anybody.

~Bill Gates, 1981 (allegedly)

All right, then correct me. What’s still missing? What innovations have I overlooked? What brand-new language is going to be a huge deal in five years?

Maybe we haven’t hit the Peak. That’s up for debate. But we sure are spoiled for choice. It’s an incredible time to be writing code.