On Sunday, 7 January 2024 at 21:16:46 UTC, H. S. Teoh wrote:
> As somebody has said, it depends on your definition of "success". If your definition of success is popularity, then sure, you need a big community, lots of existing code, hype, etc.. By that measure C++ is more successful than D and I should be using C++ instead. But I came to D not because of popularity, but because of technical merit. I would rather stay with a small, relatively unknown community where technical excellence plays a deciding role, than in a large community of mediocrity where popularity is the deciding factor. So my definition of success is rather different from what some have been using when bemoaning the current state of D.
I think a good definition of success is popularity * (yourLanguage.technicalMerit - replacedLanguage.technicalMerit)
. No matter how popular a language is, if it isn't better than what it replaces it can't be considered a success. If it is outright worse than the old ones, it's actually a bad thing for it to gain popularity.
Of course, there are many definitions for techical merit. Maybe your language serves it's task in itself only as well as that it replaces, but if it is better in teaching good mental skills than it's replacement it still can be considered a success in another sense.
Also, great technical merit is always positive as long as you have at least some users but the success tends tends to be minimal compared to a langauge which is only slightly better than older ones but massively more popular.
Another caveat - popularity also has many forms. Even if you have little or no direct users, if your work serves to improve other languages that take their ideas from you IMO you have part of the credit if those languages become popular.