Rant time? Rant time.
Abdulhaq
alynch4047 at gmail.com
Mon Sep 21 10:58:53 UTC 2020
On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature
wrote:
> On Monday, 21 September 2020 at 09:29:21 UTC, Tomcruisesmart
> wrote:
>> Hi,
>> I'm looking for healthy conversation.
>> What are the prominent downsides of the D programming language?
>
> Okay, real talk.
>
> D is *incredibly* uneven.
>
> When it works well, it works great. When it breaks, it can
> break in really horrible ways that I can't accurately describe
> except by referencing Mickens' seminal article on systems
> programming [1] - that is what it is like, except replace
> pointers with templates.
>
> Parts of the language are outright broken, everyone knows
> they're broken, this is not documented *anywhere*.
>
> Parts of the standard library are not meant to be used. There's
> replacements that got proposed years ago and are languishing.
> Key projects that replace Phobos are written by individuals who
> may or may not reachable for issues. And there *will* be issues
> - templates can't be unittested completely at the site of
> definition, because you don't know all the cases you will
> encounter, so you can't even predict the types of your own
> variables sensibly.
>
> immutable is broken with a good fraction of language and
> runtime features. shared is broken with another fraction.
> Synchronized has a hole the size of a truck that is unfixable
> without pulling in all of shared for no benefit. Incredibly
> useful DIPs like formatting string literals or named parameters
> are decided not by any kind of vote system, but by "let's see
> if anyone says in the thread that they don't like it, and then
> we won't do it." This leads to horrible DIPs that try to
> placate those people, which then leads to other people
> complaining that the DIP doesn't go far enough. There is no
> winning there, which is why language improvements are either
> trivial or depend on Walter deciding to just go for it.
>
> Dub is the official build manager. Dub is included with the D
> distro. Dub has an open bug where it simply ignores the
> selected version when you try to run a binary with dub. Look at
> the unit-threaded prebuild line. [2] Just ... look at it. Dub
> has 424 open bugs. Let's not talk about how many open bugs DMD
> has.
>
> You can learn the core of D in an afternoon. You can get a good
> understanding of D in a month. Coming from C, D really is an
> incredible logically-designed language, and it's a joy to use.
> That's not the bad part of learning D.
>
> The bad part is the years of picking up the problematic parts,
> the features to avoid, and the parts that are just silently
> broken. The bad part is the hours spent exploring "maybe I can
> do X", getting incredibly close, then failing due to a bug
> reported in 2012.
>
> There's a reason so many D devs run off to develop their own
> language. D shows you what is possible with C-like languages,
> then falls short. It ruins you for other languages, but it's
> too frustrating to really love.
>
> Still the best language I know. At least for now, until my
> current compiler project is off the ground...
>
> [1] https://www.usenix.org/system/files/1311_05-08_mickens.pdf
>
> [2] https://github.com/atilaneves/unit-threaded search for
> preBuildCommands
Head, meet nail.
Nail, meet head.
More information about the Digitalmars-d
mailing list