September 21, 2020
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?

Varies from person to person. And that's a real thing. After a while, I tend to see them as trade-offs one has to make to design the language in one way or another.


I'm not sure if the questions is strictly related to the language itself or the ecosystem.

About the language, I mostly see trade-offs and the rest are yet to be polished out or a work in progress. None of which is a blocker for my use case.
September 21, 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:
>> 

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

I'll rather have knowledgeable people make the wrong decision and be responsible for fixing it than a majority of ignorant people vote for a mess no one likes to fix.

 That's that's a very common situation out there.

Even then D is a great language due to the experience and thought that went into it by the initiator and contributors...not by majority vote.

....

The rest are ecosystem problems which is not a D specific issue so I'll let go.


September 21, 2020
On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature wrote:

>
> [1] https://www.usenix.org/system/files/1311_05-08_mickens.pdf
>

Great article I urge people to read it, for somewhat off-topic reasons.

September 21, 2020
On Monday, 21 September 2020 at 11:58:44 UTC, Abdulhaq wrote:
> On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature wrote:
>
>>
>> [1] https://www.usenix.org/system/files/1311_05-08_mickens.pdf
>>
>
> Great article I urge people to read it, for somewhat off-topic reasons.

Delicious !!!
September 21, 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:
>> [...]
>
> Okay, real talk.
>
> [...]

> [2] https://github.com/atilaneves/unit-threaded search for preBuildCommands


IMO this is D in a nutshell...
" D shows you what is possible with C-like languages, then falls short. It ruins you for other languages,.. it's too frustrating (..and time consuming...) to really love."


September 22, 2020
On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature wrote:
>
> 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.
>
> [...]
>
> [2] https://github.com/atilaneves/unit-threaded search for preBuildCommands

There's no denying dub needs some love. But for reference, this particular bug has been fixed a couple release ago. And from the upcoming release, all commands support the syntax `packagename[@<version-spec>]`.
September 22, 2020
On Tuesday, 22 September 2020 at 00:05:50 UTC, Mathias LANG wrote:
> On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature wrote:
>>
>> 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.
>>
>> [...]
>>
>> [2] https://github.com/atilaneves/unit-threaded search for preBuildCommands
>
> There's no denying dub needs some love. But for reference, this particular bug has been fixed a couple release ago. And from the upcoming release, all commands support the syntax `packagename[@<version-spec>]`.

Ah, thank you, my apologies.
September 22, 2020
On Monday, 21 September 2020 at 10:55:22 UTC, FeepingCreature wrote:
> Still the best language I know. At least for now, until my current compiler project is off the ground...

What are the key features of your language and what kind of memory management?

September 22, 2020
On Monday, 21 September 2020 at 09:35:10 UTC, Ruby The Roobster 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?
>
> One downside is that classes can't inherit from multiple classes.
>  I know that there is a thing called an interface which a class can inherit more that one of those. Thing is, functions in interfaces have to be abstract.  Also, member variables declared in an interface have to be static, and the only member functions that are defined have to be static. Why can't we just inherit from multiple classes?

This is known as Protocol oriented programming and goes back to Objective-C protocols, CLU and Standard ML modules.

It is also the basis of ECS heavily used alongside data oriented programming in all major game engines.

Ah, and COM/UWP, which have been the main way Windows APIs are made available since Vista, building on top of Longhorn's OOP ABI ideas.

Maybe there is a learning path there.
September 22, 2020
On Monday, 21 September 2020 at 11:37:37 UTC, aberba wrote:
> I'll rather have knowledgeable people make the wrong decision and be responsible for fixing it than a majority of ignorant people vote for a mess no one likes to fix.
>
>  That's that's a very common situation out there.

Actually, it isn't. Most languages keep the core language small.

The advantage of separating designers from implementors is that you are more likely to overcome the inertia (unwillingness to restructure compiler internals).

So overall, you are better off having a well stuctured modular reference compiler and leave the production compiler to someone else ( not involved with language design ).