Why is D unpopular?

max haughton maxhaton at gmail.com
Tue May 17 19:08:02 UTC 2022


On Tuesday, 17 May 2022 at 18:19:01 UTC, Dave Blanchard wrote:
> Why is D unpopular? Well let's see.
>
> Several months ago I posted on here regarding the totally 
> screwed up and incomprehensibly broken process you use for 
> building/installing D. I didn't bother to waste time checking 
> back on that thread to see any replies. I simply waited, to see 
> if my concerns were addressed. They were not.
>
> D's approach to gaining new users:
>
> * Put a broken pile of shit up on the download page, with no 
> usable instructions on what to actually do with it.

This is unfair extrapolation from your own unique system.

In the most recent data I can get my hands on, something like 50% 
of D users use windows. 16% of those who answered install from 
source (sum of all platforms)

> * ...
>
> * Surprisingly, the prospective user can't do a fucking thing 
> with it, of course, because there are NO INSTRUCTIONS.
> The very brief instructions in the README file are worthless. 
> They don't work.
>
> The slightly more detailed instructions I find by searching on 
> the internet are worthless. They don't work.

Which instructions? As I will elaborate upon below this is simply 
a pointless approach to technical discussion.

> When searching, I find the Digital Mars web site apparently 
> hasn't been updated since 2003.

Digital Mars is Walter's company, not associated with D other 
than through history.


> Furthermore, I am NOT impressed by any install process that 
> insists on automatically downloading junk from the internet. 
> Also had a laugh about the "install script" offered on the 
> download page, which one is supposed to pipe straight into 
> bash. Yeah, if I were missing half my brain, I would do 
> something like that.

Download the script and read it before running it? The logic it 
performs is very simple it just has some logic for grabbing new 
compilers as they are released.

> Look, this is so simple even a child could do it:
>
> Give me ONE ARCHIVE FILE which contains EVERYTHING needed to 
> build and install DMD. And then put a script IN THE ROOT 
> DIRECTORY of that archive which builds the compiler using what 
> it has on hand--with no hassle, no bullshit, or stupid fucking 
> errors.

And what will it have on hand? Will there be a D compiler? A C 
compiler? If so which one?
Do we need to bootstrap from C to a C++ compiler then to a D 
compiler? Which libc is available? etc.

It's really not that simple.

If you ask for help and provide useful information then we can 
help you but so far you have at first been quite obtuse and now 
being a bit rude and now I would say needlessly aggressive.

Also the bootstrap-anywhere, run-on-anything D compiler is 
basically gcc. Maybe you aren't aware of this, but it would've 
been mentioned in previously thread if you had responded when 
people tried to help. Iain Buclaw, who maintains d-in-gcc, is 
very finicky about platform support and bootstrapping.

In fact Rikki did mention gdc in response to your previous thread.

> Alternately, have two archives for download: one containing 
> binaries only, which is easily unzipped into /usr (or with a 
> basic script/Makefile to do the install), and one containing 
> the complete source code, which can be easily bootstrapped by 
> said binary package.

We ship .deb and .rpm packages, which as you will know covers a 
large amount of all linux installations. Writing a script that 
can blindly target basically any linux distribution (or 
pseudo-distribution) is not a trivial thing to do, especially 
given that the *vast* majority of D users do not need one.

> The README file, it should go without saying, should contain 
> full, complete, clear instructions on how to do anything 
> related to building and installing the compiler.

The dmd README does actually contain a link to the wiki which 
explains in some detail how to build either dmd or one of the 
other compilers from source.

https://wiki.dlang.org/DMD  Did you read it? You did mention a 
link to a website (which one?).

> Until you pull your heads out of your asses and make the damn 
> compiler actually accessible to anyone who isn't already an 
> expert on bootstrapping this overcomplicated piece of shit, 
> then sadly, I have no use at all for D. I'll bet there's many 
> others in the same boat also.

As linked above there are instructions, maybe you missed them.

> By the way, I built my own entire Linux distro from scratch, 
> with over a thousand packages that cross compile to glibc/musl, 
> openssl/libressl, and x86_64/i686/arm32/arm64, so if I can't 
> figure out how to successfully bootstrap DMD, then YOU HAVE A 
> PROBLEM.

Or you have a problem communicating? I read your previous forum 
post, and I tried to help, but you didn't respond. Maybe you were 
busy, but your initial post was completely vague and had almost 
no actionable information. You might think it does but you're 
assuming that we know anything about your system, we don't.

For example you previously complained about documentation, e.g. 
"Another site wanted me to pay to access their information.": 
Which site? There is almost no actionable information in this 
clause, certainly none unless we go and work out what website you 
are talking about.

If you really want to try D, try it on a more conventional 
operating system then think about getting it running on an 
esoteric one. A lot of your previous questions would've been 
answered by just using it normally e.g. D *does* use the system 
linker, having to download one (presumably) OPTLINK means you've 
gone the wrong way.

I can and probably soon will write some instructions for building 
everything from source but

1. It's not the recommended way to use D, e.g. We recently put 
PGO in the build script, which makes the compiler faster at the 
expense of compile time, so unless you are like a gentoo-like 
linux experience you may want to download a binary

2. If you're going to maintain a weird system then the buck has 
to stop somewhere wrt to what tools the process needs.


More information about the Digitalmars-d mailing list