Comment by procaryote
18 hours ago
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?