Hello, folks! Newbie to D, have some questions!

Guillaume Piolat via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Feb 19 04:40:10 PST 2017


On Saturday, 18 February 2017 at 20:15:55 UTC, timmyjose wrote:
> My rudimentary knowledge of the D ecosystem tells me that there 
> is a GC in D, but that can be turned off. Is this correct? 
> Also, some threads online mention that if we do turn off GC, 
> some of the core std libraries may not fully work. Is this 
> presumption also correct?

The topic is complex, there are a lot of mitigation techniques.

A - for most real-time programs, you may want to keep the GC heap 
under 200kb. A combination of GC profiling, using values types, 
and manual memory management can get you there. @nogc also helps.

B - some real-time threads don't like to be paused (audio). You 
can unregister them from the runtime which means the GC won't 
stop them on collection. On the other hand this thread won't be 
able to "own" collectable things.

C - finally you can either disable the runtime/GC altogether, or 
not link with it. This create the most effort but with a 
guarantee of not having a GC over the whole application. In most 
cases it's _not worth it_.

The hard part about GC is understanding reachability, but unless 
you are doing very systemy, this can be safely ignored.

You will be just fine.

> Secondly, how stable is the language and how fast is the pace 
> of development on D?

Language doesn't break nowadays, very stable apart from dreaded 
regressions with the DMD backends.

http://erdani.com/d/downloads.daily.png

> 2. I am also curious as to what would be the best path for a 
> complete beginner to D to learn it effectively?

"Learning D" book seems fitting.

> 3. Are there some small-scale Open Source projects that you 
> would recommend to peruse to get a feel for and learn idiomatic 
> D?

I run https://p0nce.github.io/d-idioms/ to get up to speed with 
the weird idiosyncrasies fast. But the above book is way better.


More information about the Digitalmars-d-learn mailing list