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