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