Why is D unpopular, redux.

deadalnix deadalnix at gmail.com
Tue May 24 23:48:06 UTC 2022


On Tuesday, 24 May 2022 at 21:53:36 UTC, Ola Fosheim Grøstad 
wrote:
> In short, it says nothing of use. We dont try to attract 50% of 
> all programmers. Even 1% would be huge!

Reread what I wrote in this channel and you'll note that this is 
very consistent with what I'm saying.

To be successful, you need to be really good at something. You 
need to be even better than everybody else at this thing. And the 
1% of people who really need this thing will be willing to 
overlook other shortcomings.

In turns, this grows the community, the codebase, the tooling and 
so on. This grant the resources to make the project good at a 
second thing and so on.

For instance, I remember about 10 years ago, when Rust was just 
starting, Andrei mentioned that Rust skipped leg day. This was 
funny and true: rust has that one thing about ownership it did 
extremely well, but everything else D was better. Where is rust 
now and where is D? Why did this happen? Well, the thing is, D is 
good at many thing, but it's not great at one thing. You 
therefore don't get that 1% of dev who really want or even need 
it.

The second thing is capitalizing on these devs. They will build 
tool and an ecosystem and this is a virtuous cycle. Except we 
keep breaking this cycles in a few ways:
1/ Ballooning complexity. The most jaring exemple is the 
attribute soup. The main problem is, most of the code out there 
is not quite attribute this or that compliant, so 
interoperability doesn't quite work, and making it work require 
major efforts, as anyone who contribute to phobos will be able to 
confirm.
2/ We do not get much benefit from that complexity, in any case, 
nothing that make it worth the cost. While we have attribute that 
are supposed to provide some guarantee, they are in practice 
often unable to provide said guarantee, either because there are 
hole in the implementation, but more often because there are 
fundamental design problems with them.
3/ We break these tools constantly, for weak reasons. Making a 
shorter in/out contract syntax. Making throw an exception. Named 
arguments. return is now an attribute. etc... All thee change 
break tools, and do not provide the kind of benefit that can 
counterract the loss of tooling.

These action taken effectively prevent the ecosystem from 
growing. Just like bonsai, it get trimmed on a regular basis, so 
it stays small.


More information about the Digitalmars-d mailing list