DFGH wrote:
I'm a C# programmer who wants to start using D as well for various reasons. Is the official D compiler(DMD) matured enough to be used for writing 'heavy' applications?
I'm a C# developer. DMD is very fast and compiles efficient binary. I get variable runtime performance results comparing DMD vs .NET on different hardware with modest (math related) benchmarks (no SIMD). GDC however, is either just-on-par or much faster than both on all platforms. If cross-platform is a goal, GDC/LDC run much more efficiently than Mono C# (in many areas). Performance and low-level memory control are among the main reasons that D sparked my interests, not having to sacrifice many of C# productivity features (and actually adding some) is why I stuck around.
Beyond performance, DMD is compiling my projects without a hitch. Granted they are relatively modest (mainly porting http://code.google.com/p/reign-sdk/). There where bugs I had with 2.057 that where fixed in the latest release, and progress in bug fixing seems to have picked up, even since I've been around (few months).
That's not to say D is without it's rotten apples. UFCS (which is being added) and Property syntax are things I like much better in C#. The standard libraries are poorly documented in some areas and, in my opinion, somewhat confusingly named and over abbreviated. As I understand it, D's GC is also STW not incremental (for now), and while I've never had any major hangs in my programs, I understand they can occur.
If you are used to Visual Studios, I recommend MonoDevelop IDE + Mono-D. It's still in development, but has very nice code-completion and project support comparable to VS in many ways. Still not as good, but it's getting there, and Alex (the dev) works very fast.