What are the prominent downsides of the D programming language?

ddcovery antoniocabreraperez at gmail.com
Tue Sep 29 11:10:42 UTC 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?

As a not D experienced developer (I use rdmd, small game projects 
and I tried to use as REST service instead play/scala or 
node/javascript)

Not directly related with DLang but with Development tools:

* Intelligence / autocomplete lack: The use of meta-programming 
makes it very difficult and really represents a barrier for its 
incorporation in productive mainstream development (it's funny: 
we have GC, not good for system/video game developers, but then 
it makes autocomplete impossible, not good for web services 
mainstream developers ).

* Inspecting vars while debugging: Why it is so difficult to 
inspect not trivial vars?. I'm using dlangide, simple and very 
powerful, but it is hell to inspect variables (especially 
objects): I have to be defining local variables and assigning 
object properties to them in order to see their values ​​in the 
debugger.

* The "auto" Swiss knife:  Yes, I know, "auto" is a powerful 
tool, but DLang libraries tends to force you to use auto because 
metaprogramming... it is really difficult to a newcomers to 
understand the Type returned by a template... and templates are 
everywhere.

i.e.:  If you read about Tasks 
(https://dlang.org/phobos/std_parallelism.html), for me is not 
obvious how to define an empty array of tasks.

Imagine I have a "4 in a line" game and I want to evaluate with a 
thread each column of the game (a minimax algorithm)

> ??? tasks = [];
> for( int ixTask=0; ix<COLUMNS; ixTask++){
>   tasks ~= task!evalColumn(board.clone(), columns[ixTask], 
> maxRecursion - 1);
>   tasks[ixTask].executeInNewThread();
> }
> ...

What do you have to place instead "???"






More information about the Digitalmars-d mailing list