Comment by procaryote
16 hours ago
I think you should probably start by asking yourself if you should design a new language. Most new languages fall in the bucket of low value innovation that is instant tech debt for anyone who tries to use it for real
Even the successful ones are often pointless variations on a theme. Ruby, perl & python don't all need to exist for example, as they essentially do the same thing, about as poorly. Now python has won we should just drop the others
You've assumed there's only one reason for designing a language and based your opinion around that, which makes it shallow and not terribly convincing.
Playing around and learning is great of course, as long as the language doesn't escape the lab
Terrible advice.
Different languages excel at different things. There shouldn’t be a “one size fits all” otherwise we’d be writing software in FORTRAN and assembly.
And designing a language is a good exercise if purely from an academic perspective. Eg you learn how to write parsers, and a bunch of PL theory that we take for granted when just being a consumer of a programming language.
Not everything needs to be done with global domination in mind.
FYI:
I started programming assembly in 2025 for 6592 and Z80 cpus and believe me: it is fun and IMO actually easier then lets say learning Haskell or JS from scratch.
Assemblers with macros are amazingly simple.
You’re missing my point. I’m not criticising FORTRAN nor assembly. I’m saying that people wouldn’t have created C, Java, Python, Pascal, BASIC, and so on and so forth if everyone said “why bother creating a new language when we already have something perfectly good here”
Building one for fun or to learn is great.
The bad thing is the uncanny valley. Popular enough to fragment the niche and add tech debt, not big enough to win and defragment the niche, not innovative enough to make any real positive difference beyond personal tastes.
You know, there was an idea of a planned economy, which promised the best allocation of resources. But it didn't work in practice. What works is a chaos, when everyone does what they deem worthy to do. We can see, that the overall result is a progress, ideas are tried, rejected or accepted. But we can also see that efficiency of the process is not ideal. You talk about this non-ideals in terms of "fragmentation" and "tech debt". My point is: we can claim that costs of fragmentation and tech debt are avoidable, if we cannot propose a way to avoid them, while keeping benefits.
You think that it will be better for people to stop developing programming languages, but how do you think new programming languages will appear? Will they be better? To be better you need to try new ideas and to look how they work in practice. And very probably your ideas will fail when tested by reality. How to organize the activity to test new ideas without risks of fragmentation? We can't keep our results of developing an experimental language in secret, because then everyone will do the same, and we would need to test all ideas without any hope to learn from other's experience. U'see, the very activity of testing new ideas is almost a synonym for fragmentation.
I don't think you have any viable alternative to "every programmer should create its own programming language".
That seems like a silly reason not to do something educational.
Build something for fun. Build it for yourself. If people want to use it then they’ll use it. But more likely they won’t.
The only thing I would advise against is building something expecting other people to use it.
As I said elsewhere, not enough people these days build things for their own pleasure without any expectation nor desire for it to be used by anyone else. Sometimes just doing something for yourself is its own reward.
And it’s far more likely that DIY projects will teach skills that you can then directly contribute to established projects with, rather than DIY projects fragmenting those established communities.
This sentiment seems short-sighted and to express an unqualified value judgement. Furthermore, this seems like a presupposition that once a popular language is implemented, new idioms and features are not implemented from elsewhere as ecosystems elsewhere proliferate and prosper.
That said, I think it's okay, really, to allow people to think they are working on the next definitive thing; not because they are actually solving the "problem" of fragmentation once and for all, but rather bringing to bear the passion to see an idea to fruition. New concepts and approaches should not be considered to be inherently counterproductive or dangerous.
The only reason any programming language ever "won" in any niche is because of people who were taking a risk that their language wouldn't.
In broad terms, the spectrum of "what programming languages could look like" seems pretty well covered, yet I still have ideas that aren't represented. And then, that spectrum would still have looked pretty well covered, say for example, shortly before the dawn of Rust.
What languages would you say fall into that uncanny valley?
You missed his point. He's not saying "why bother why a new language if this one is fine", he's saying "why bother with a very similar language if this one is fine".
I think that's fair. Even if you are just doing a hobby language there are plenty of unexplored niches, e.g. that compile-to-shell language I've forgotten the name of.
I didn’t miss his point. Back in the 70s, many of the new languages were just a subtle variation on the previous one. It’s only later they evolved into something distinctive.
Which is why I said we’d still be using FORTRAN.
Languages that start out radically different don’t tend to gain momentum. Whereas languages that are familiar tend to grow and introduce new ideas.
Nothing is invented in a vacuum.
Also I completely disagree that one shouldn’t create a hobby project need to be innovative. Sometimes people do create things just because they can. And it’s a good thing too because otherwise we wouldn’t have half the open source software available to us today. Many of which was originally intended for personal use, including Linux.
The problem these days is we’re so brainwashed by stories of unicorn start ups pumped with VC money that now everyone thinks every hobby needs to has a viable business plan underneath. It’s like people have forgotten how to play for fun.
So people should go out and create new programming languages. The worst that would happen is they learn to be a better programmer in their day to day language.
I learned a lot from deciding to do so. I doubt there is a situation where one should not consider doing it.
You should, just so you'll know how compilers and languages work. It doesn't have to be good.
Except for ruby on rails the industry pretty much has