Learning D - first steps and best practices
Stefan Larsson
stefan at lastsys.com
Sun Sep 29 00:13:26 PDT 2013
Hello,
I have started my journey to learn D after using C/C++ and Python for
many years. I am studying the book "The D-Programming Language" by
Andrei Alexandrescu and I have tried to search the D-newsgroups for
proper advice without success and I am humbly seeking enlightenment in
the following topics:
1. ** Coding style **
When starting out with Python there is general coding style advice
available in PEP8 (http://www.python.org/dev/peps/pep-0008/) giving
advice on coding style. For C/C++ I have been using the Google style
guide (http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml)
and from Microsoft there are Design Guidelines for Class Library
Developers
(http://msdn.microsoft.com/en-us/library/czefa0ke%28v=vs.71%29.aspx). I
guess Java has similar things.
For Python there are plugins giving warnings when the coding style is
not followed forcing me to learn the proposed style.
Q1a: Are there any material on code standards for D available?
Personally I believe there should be.
2. ** Build process **
What is the recommended toolchain for building projects? I have
previously been using CMake a lot due to ease of platform and compiler
change, good support for mixed language projects and automatic
detection of common libraries and its compiler/linker flags. I am
however getting the impression that dub is recommended for D, but I
believe it is in its early stages.
Q2a: So, what is the recommended work process for building a D-project
when creating a new project?
Q2b: Given Q2a above, what is a recommended file structure for a large
D-project? Where should I put third-party library bindings in relation
to my own code?
3. ** Quality **
I see a risk with the (small) dub respository in its current state
since mostly master branches are used. This means that I might get a
broken build due to a broken commit in any referenced package.
Q3a: Are there any efforts taking place regarding stability of packages
in the community similar to e.g. Debian packaging (stable, testing,
unstable)?
These are my questions and none of them are intended as flamebait…
These are practical thoughts I always encounter whenever approaching a
new language/development environment. Language documentation seldom
answers these types of questions.
Best Regards,
Stefan Larsson
More information about the Digitalmars-d-learn
mailing list