Why D?

This blog is dedicated my work on the D Programming Language. Though my self had not even worked on a project and coded serious stuff in D I can see the possibilities and the real need of such a programming language. If you don’t know what is D, please refer to the official website.

I think when Walter Bright  come to the conclusion that there’s a need for a multi-paradigm, imperative, native language, he made the right choice. As a C++ developer myself, I found several frustrating issue with my main programming language and with all the efforts of the recent C++11 standard these pains doesn’t seem to pass. I don’t want to bash C++: it’s a nice piece of language which stays prominent for many years if not decades, but I think today, in 2011 we need to prepare ourselves to learn from the mistakes of the past, and have a clear start. C++ is dragging many compatibility issues with it self along its long way, and therefore a new language design, free of such a heavy burden could mean a fresh start in the native development.

As of today, the most prevalent programming languages in the native arena is C and C++. C is good as it is, restricted system programming language which fit most of the hardware environment. C++ on the other hand, though it made an astonishing progress with the C++11 standard, has major flaw: it just doesn’t hold the challenge against the world of Java and C# world. These programming languages became success not because of their revolutionary new technology but from rather the fact that they can keep the developers happy and enthusiastic. All this is because it was easy to produce a wide variety of coding tools that makes the development fun. In order to maintain the momentum of the native development, we need to get the fun back to the native development.

C++ unfortunately can not offer such an easy entertainment. As a project is getting more and more complicated the build time grows enormously. It desperately calls for a module system. The parsing is difficult because the extent and ambiguity of the C++ grammar. The compiler can be hardly manipulated, the reflection system is partial, and a language level garbage collector would just make life easier for everyone if the coder can decide to not use it in certain, well limited scenarios.

In this series of blog post I document my experiments, understanding and contribution to the language D.