More articles can be found on the corresponding wiki page.
Frequently answered questions about D.
Frequently answered questions about D's const and immutable.
Don Clugston goes into detail about floating point numbers in D and the pitfalls one may encounter.
This is about compiler warnings in general, and dmd's warnings in particular.
Questions about the reasons for various design decisions for D often come up. This addresses many of them.
D offers several capabilities built in to the core language that are implemented as libraries in other languages. This article answers why.
Coming from C? Here are various examples comparing the D way to the C way.
Coming from C++? Here are various examples comparing the D way to the C++ way.
D doesn't have a preprocessor. This article shows how to do in D what would be a task for the preprocessor in C.
D compilers come with a builtin code coverage analyzer. This article explains why and how to use it.
This article is about exceptions and how RAII and scope guard statements relate to them.
Function hijacking is when old code accidentally calls a newly added or changed function because it shadows the intended one. This article is about how D prevents different kinds of hijacking.
Jonathan M Davis presents std.datetime which was added in version 2.052 (Jul 10, 2011), and compares it to the superseded std.date.
Walter Bright goes into the details of lazy parameters in D.
Since version 2.030 (May 11, 2009) D uses thread local storage (TLS) by default for static and global variables. The article shows the alternatives to TLS that are available in D.
A short article about D's mixin statement which allows to insert arbitrary code from a string, and how it compares to the C preprocessor.
Dmitry Olshansky shows how to use regular expressions in D with std.regex.
Bartosz Milewski writes about SafeD, the memory-safe subset of D.
Walter Bright writes about how D improves upon C++ templates.
A template can be constrained to only apply when a compile-time evaluable boolean expression is true.
A compile-time sequence is a sequence of compile-time entities - types, symbols (names) and values. This article shows how to work with them.
This article is about the D idiom of implementing variadic functions with variadic templates.
A comparison between D's and C++'s templates.
Steven Schveighoffer writes about slices and dynamic arrays in D. Unfortunately, this article uses slightly different terminology than the language reference: What the article calls a slice is a dynamic array in the language reference, and what the article calls a dynamic array is not named specifically by the language reference. Still, the article is a great help in getting a good understanding of D's array semantics.
A comparison between D's and C++'s contract programming.
A guide to writing shared libraries with D on Linux.
How to use the ref, return and scope annotations to prevent the escape of pointers. Escaping pointers can cause memory corruption and other problems.
Windows DLLs are quite different from shared libraries on other platforms. This article shows how to do them.