Why is D unpopular?

Bruce Carneal bcarneal at gmail.com
Wed May 25 17:23:11 UTC 2022


On Wednesday, 25 May 2022 at 16:17:06 UTC, Siarhei Siamashka 
wrote:
> On Wednesday, 25 May 2022 at 13:34:35 UTC, Alexandru Ermicioi 
> wrote:
>> We should not have release switch as it is now due to those 
>> security holes mentioned.
>
> That's merely the Adam's claim. He is trying to very 
> aggressively "save" me from some non-existing problems without 
> realizing that I'm just not using D language in the same way as 
> he does. He is too busy being engaged in some sort of 
> shadowboxing against himself and is not paying attention to my 
> explanations.

Adam has "saved" many dlang programmers with his pragmatic and 
real-world-safety oriented advice.  He is the most prolific, and 
one of the most respected, dlang contributors in the discord 
threads.  His book, 
https://www.amazon.com/D-Cookbook-Adam-D-Ruppe/dp/1783287217 , 
was one of the sources I referenced when onboarding. His library 
work, https://github.com/adamdruppe/arsd , is very well regarded.

>
> To sum it up. The '-release' switch doesn't disable bounds 
> checking in @safe parts of the code. So we are fine as long as 
> the majority of code in a project is marked as @safe. Rather 
> than removing or changing the '-release' switch, I think that a 
> much better idea is to migrate more code and libraries to @safe 
> and my understanding is that D language is moving in that 
> direction. Maybe Walter can confirm or deny this?

D gives you a lot of options wrt @safe ty.  My personal 
preference, probably shared by some others, is that the defaults 
should favor correctness and convenience with all else being 
opt-in.

I'm quite concerned with ultimate performance (real time video 
processing) and yet have found it easy to employ D in a very 
safe/convenient form for almost all my code (@safe, 
immutable/const, pure, gc, throw) while using dcompute, __vector, 
@trusted, .ptr and the like when I need to be on the metal.

>
> Regarding the name of this topic. If the '-release' switch 
> removal idea gains traction, it will be a strong reason for me 
> to quit. Performance parity with C++ without unreasonable extra 
> efforts is very high on my priority list. If extra efforts are 
> unavoidable and D loses its rapid development appeal, then 
> there's always Rust as a more mainstream alternative.

The -release switch activates a combination of finer grain 
controls.  You can put together whatever combination you wish in 
your build scripts.  I don't know how a command line fixable 
inconvenience compares to those that you'd experience if you 
decamp to the Rust world but if you do I'd like to hear your take 
on it.



More information about the Digitalmars-d mailing list