A few last precision before launching into D coding.
Visual D configuration
It turns out that, if you have a few project which depends on each other, as in:

You don’t need to set the library path, include path, etc.… Visual D will take care of that for you!
Documentation
Ha well, there is one last thing that is needed before getting started coding D like crazy, it’s good documentation!
The Phobos documentation can be found here.
Well you also need to read about D language syntax! A web exhaustive description can be found there. I should say for such task I like to have a book. I bought this one (there are not that many! ^_^).
I bought the kindle version, then I though better of it (Kindle book are not good at being read back and forth and jumping chapter like crazy, as is needed in a learning process!) and then the paper back version! I left a bad comment because it didn’t answer the question how to compile the damn thing! (which, if you have read my D post so far, we figured out by now!) but I like it, sorry about the comment.
Ho, almost missed that, when you “installed” D (unzipped it!) you also installed the offline documentation!
Check out (on your disk)
DROOT/dmd2/html/d/index.html
DROOT/dmd2/html/d/features2.html
DROOT/dmd2/html/d/phobos/phobos.html
DROOT/dmd2/html/d/lex.html
Statement of the day
Thanks to the paper version of the D language I was able to browse through all 350 pages of it in an hour (it’s just a book about syntax hey!). I discover a really interesting and innovative statement, a “using” on steroid, scope()
exert from the web site:
ScopeGuardStatement:
scope(exit) NonEmptyOrScopeBlockStatement
scope(success) NonEmptyOrScopeBlockStatement
scope(failure) NonEmptyOrScopeBlockStatement
The
ScopeGuardStatement executes
NonEmptyOrScopeBlockStatement at the close of the current scope, rather than at the point where the
ScopeGuardStatement appears.
scope(exit) executes
NonEmptyOrScopeBlockStatement when the scope exits normally or when it exits due to exception unwinding.
scope(failure) executes
NonEmptyOrScopeBlockStatement when the scope exits due to exception unwinding.
scope(success)executes
NonEmptyOrScopeBlockStatement when the scope exits normally.
If there are multiple ScopeGuardStatements in a scope, they are executed in the reverse lexical order in which they appear. If any scope instances are to be destructed upon the close of the scope, they also are interleaved with the ScopeGuardStatements in the reverse lexical order in which they appear.
writef("1");
{
writef("2");
scope(exit) writef("3");
scope(exit) writef("4");
writef("5");
}
writefln();
writes:
12543
Of course there are many more interesting stuff in D, just picking! Have a Go
! Pun intended!