Why D is not popular enough?

Seb via Digitalmars-d digitalmars-d at puremagic.com
Thu Aug 18 16:19:02 PDT 2016


Hei John, I read over the first part of your message and it seems 
that same information you got is quite outdated:

On Thursday, 18 August 2016 at 22:50:27 UTC, John Smith wrote:
> Well there are some things I feel could be improved, a lot of 
> the things are really just minor but what is a deal breaker for 
> me mostly is the compilers. The GCC and Clang implementations 
> are really far behind in terms of the version, so they are 
> missing a lot of features. A lot of the features that I'd want 
> to use D for.

That's not true for LDC - it's on par with the latest DMD version 
since a while now. It might be that the version shipped with your 
Linux distribution is a bit outdated.

http://forum.dlang.org/post/uxupejapglpeokaiqqjg@forum.dlang.org


> In the download section it also says "good optimization" but it 
> honestly isn't. I rewrote a small portion for one of my 
> projects to test out D but looking at the assembly a lot of it 
> was questionable. I'd say DMD probably produced the best 
> assembly but then there's the problem that it doesn't support 
> MMX instructions.

That's weird - LDC allows great optimization, see e.g. these two 
benchmarks:

https://github.com/kostya/benchmarks
http://forum.dlang.org/post/zxkkjezakirlfepndjxk@forum.dlang.org

> Even on 64-bit it still uses the FPU, which I can't really use. 
> The FPU isn't consistent enough for simulations that run on 
> separate computers and different OSs that need to be synced 
> through a network.

Inconsistent FP math is a known issue, but most likely a 
fusedMath pragma will be added soon:

http://forum.dlang.org/post/hjaiavlfkoamenidomsa@forum.dlang.org
https://github.com/ldc-developers/ldc/issues/1669

> Anyways for some more minor things. I really don't like 
> __gshared, why couldn't it just be named "gshared" instead. 
> Don't like how that naming convention is used in C/C++ either 
> but I feel here in D it is completely out of place. Nothing 
> else uses a preceding "__" and from the documentation it looks 
> like it's made to stand out cause it shouldn't be used. But it 
> is used a lot, and it wouldn't be possible to do certain things 
> without it. I forget but the dynamic library loader for D, 
> derelict, is one such case.

Yep you are correct about the motivation: __gshared got its ugly 
name to remind
the programmer about the dangerous world he wades into.
There are usually safer & more elegant ways, e.g.:

http://tour.dlang.io/tour/en/multithreading/std-parallelism
http://tour.dlang.io/tour/en/multithreading/synchronization-sharing
http://tour.dlang.io/tour/en/multithreading/message-passing


More information about the Digitalmars-d mailing list