May 17, 2022
On 5/17/2022 12:06 AM, rikki cattermole wrote:
> Thing is, we have had multiple versions being maintained up till now.
> 
> Iain has been doing an absolutely wonderful job essentially creating an LTS frontend and we didn't bother ship a LTS version of dmd.
> 
> We discussed this last night on Discord, and I made this very point. If he says we can do it, then we can do it. He has the experience for it.

Many thanks to Iain for doing this!
May 17, 2022
On Tuesday, 17 May 2022 at 15:46:09 UTC, Walter Bright wrote:
> On 5/16/2022 11:26 PM, Siarhei Siamashka wrote:
>> Walter is very much hyped about ImportC. But his solution needs to be objectively compared to the other existing solutions, rather than pretending that it's a unique groundbreaking innovation which will finally make D language popular.
>
> It's conceptually equivalent to C++ being able to #include C files. I was in the business when C++ came out, and am pretty certain this was crucial to C++'s early adoption success. ImportC cannot be as as good as that (preprocessor issues), but it's closer than any of the other solutions I've seen.
>
> For another language doing the same thing, see Kotlin, which can seamlessly interact with Java, and this has been crucial to Kotlin's adoption.
>
> ...

Not really, as the numbers show

https://www.infoq.com/news/2022/03/jrebel-report-2022/

What was crucial for Kotlin's adoption was Google's decision to push Kotlin ("my way or the highway") for anything new on Android frameworks, while stagnating Java support on purpose.

Those lucky ones with Android 12 devices might get an update for OpenJDK 11 LTS support, Java subset, but several of new Jetpack frameworks are only accessible via Kotlin.







May 17, 2022
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.

* ...

* 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.

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

How the fuck am I supposed to use D if I can't even get the damn thing installed and working, because there are NO USABLE INSTRUCTIONS, AT ALL?

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.

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.

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.

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.

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.

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.

ADDENDUM: The CAPTCHA questions on this posting form are TOTALLY INSANE AND RIDICULOUS. I guess that you could be D's tagline: "TOTALLY INSANE AND RIDICULOUS."
May 18, 2022
On 18/05/2022 6:19 AM, Dave Blanchard wrote:
> 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.

That isn't possible.

D requires the source for druntime and phobos as part of normal compilation.

Even the minimalist build using -betterC is still going to need object.d from druntime.

But yeah over all especially since now the reference D frontend is in D we really need to sort out our bootstrapping situation. But alas, that would require LTS's.
May 17, 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.
May 17, 2022
On 5/17/2022 8:41 AM, Paulo Pinto wrote:
> It certainly does have to a lot to catch up with SPARK, and NVidia has chosen Ada instead of Rust exactly because of that, yet there is money being thrown out at the problem, and standard organizations interested into making it happen.
> 
> It won't be there today, but it will eventually, because they have one specific answer to "what you use X for".

I'm curious what feature(s) of Ada led to NVDA's selection.
May 17, 2022
On 5/17/2022 9:54 AM, Paulo Pinto wrote:
> Not really, as the numbers show
> 
> https://www.infoq.com/news/2022/03/jrebel-report-2022/

It doesn't mention Kotlin.


> What was crucial for Kotlin's adoption was Google's decision to push Kotlin ("my way or the highway") for anything new on Android frameworks, while stagnating Java support on purpose.

I'm sure that helped. But I've seen it mentioned many times that Kotlin being able to access all the old Java code was crucial.
May 17, 2022
On Tuesday, 17 May 2022 at 20:21:16 UTC, Walter Bright wrote:
> On 5/17/2022 9:54 AM, Paulo Pinto wrote:
>> Not really, as the numbers show
>> 
>> https://www.infoq.com/news/2022/03/jrebel-report-2022/
>
> It doesn't mention Kotlin.
>

It surely does, read the graphic with attention, 8%.

And yes it is more used than Scala and Groovy, which score even lower, also with great Java interoperability as well.


>
>> What was crucial for Kotlin's adoption was Google's decision to push Kotlin ("my way or the highway") for anything new on Android frameworks, while stagnating Java support on purpose.
>
> I'm sure that helped. But I've seen it mentioned many times that Kotlin being able to access all the old Java code was crucial.

Reality in the JVM ecosystem proves otherwise, also this only applies up to Java 7 constructs, Kotlin hardly gets any of the newer goodies up to Java 18.

Additionally it now tries to have a foot in native, JavaScript and Android, which compromises its design in regards to host platforms.

May 17, 2022
On Tuesday, 17 May 2022 at 20:16:45 UTC, Walter Bright wrote:
> On 5/17/2022 8:41 AM, Paulo Pinto wrote:
>> It certainly does have to a lot to catch up with SPARK, and NVidia has chosen Ada instead of Rust exactly because of that, yet there is money being thrown out at the problem, and standard organizations interested into making it happen.
>> 
>> It won't be there today, but it will eventually, because they have one specific answer to "what you use X for".
>
> I'm curious what feature(s) of Ada led to NVDA's selection.

Easy, they did a whole talk on the matter,

https://www.adacore.com/nvidia
May 17, 2022
On Tuesday, 17 May 2022 at 18:19:01 UTC, Dave Blanchard wrote:
> Why is D unpopular? Well let's see.
> ....
> ......
> ........
> ............
> 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.
> ................

These comments are actually very common, and entirely reasonable (although not necessarily correct in their detail).

They arise from 'expectations' (which are usually reasonable, but not always so).

But how does a 'volunteer' project (like dlang) address such expectations?

Well, often the default response is 'well, why don't you pitch in?'.

That response, often used, is usually not helpful.

dlang first needs strong leadership, vision, goals, priorities, benchmarks, KPI's .... ( as you would get in a commercially driven project).

from that, you attract and obtain your best resources ( to work on that agenda).

A project that lets anyone do whatever they feel like doing (their own agenda), is never going to be 'popular'(as in never going to be widely popular like other languages).