On Thursday, 23 June 2022 at 18:02:13 UTC, Don Allen wrote:
>I'd also like to take a moment to address the "why isn't D more popular" question. Popularity is not necessarily an indication of merit.
If you try to understand why languages got popular then you also understand the «merits».
Perl got popular because it provided the unix tool set in a language that made it, at the time, superior for quick and dirty text manipulation as you did not have to reach for many different utilities. It was a 99% solution for that purpose.
Python got popular among system developers because it was a big step up from other scripting languages, meaning, you got to use a «real» language for scripting. It got popular among educators because you only need to know a few concepts to get started and can expand to more advanced concepts gradually and it had a big eco system of libraries/quality editors (and it is increasingly replacing Matlab). And CPUs are fast enough now so many (most) tasks can be done well in Python. For many domains it is a 99.9% solution that cuts development costs.
Php got popular because it was easy to mock up html with small amounts of scripting, it got more popular because it was shipped with web servers, and from there on it had installed base. Php basically got popular because other solutions were more difficult to get into at the time. It is a 99% solution for simple HTML sites.
We can go on and on, with C++ and many other languages. It all come downs to being a 99% solution for something specific. Perl and Php are not good languages, but they had clear merits in their use context. C++ was loathed by many academics as a poorly designed mess of a language. Most academics would also say that a statically typed language is preferable to a dynamic one, yet universities still adopt Python (and that is a sensible choice given Python's other merits).
It is not quite clear for what field D is a 99% solution and what the ideal use context is, and by and large it comes down to the last 10% missing or being «wrong» or being something you have to add yourself. Some things come down to small eco system, some things come down to very personal opinions on language design, some things come down to implementation choices or consistency issues.
If you take every single application area and ask yourself what language provides the best percentage of suitability (including lowest development cost) then you end up with different languages. For many smaller languages the dominant issue is that another (perhaps less enjoyable language) provides a higher percentage (lower cost and better coverage of needs).
Since it isn't clear what D is meant to be suitable for, people will have different ideas about what those missing 10% actually are as they come from different backgrounds and have different use contexts in mind. Yet, most agree that some percentage should be added/modified.
The only way to resolve this is for the core team to narrow down and announce clearly which application area the language is supposed to cover really well.