Earlier this week Andrei Alexandrescu announced he left Facebook to fully concentrate on developing the D programming language. On the D forum he wrote:
Following an increasing desire to focus on working on the D language and foundation, I have recently made the difficult decision to part ways with Facebook, my employer of five years and nine months.
Facebook has impacted my career and life very positively, and I am grateful to have been a part of it for this long. The time has come for me, however, to fully focus on pushing D forward. As sorry I am for leaving a good and secure career behind, I am excited many times over about the great challenges and opportunities going forward.
Next step with the D Language Foundation is a formal talk with the foundation's prospective attorney tomorrow. I hope to get the foundation in motion as soon as possible, though I'm told there are numerous steps to complete. I will keep this forum posted about progress.
This is of course awesome news. The D programming language contains an awesome set of features and is certainly an important language in giving directions for the future. However, I have my doubts if a comeback is possible. The usual promise of being "C++, but better", is already flawed in any different ways. Even if it was true ten years ago - things have changed a lot.
First, if we consider memory management, C++ now has
std::shared_ptr<T>. Then, there is also the programming language Rust, which does not only provide such optional types, but bakes them into the language. Here you get a language that is as low level as C++, but safe from the beginning. Concepts such as borrowing are not only neat, but really useful for larger projects.
Second, C++ has evolved beyond STL improvements. Now we got lambdas,
constexpr and enum classes. There are a lot of tiny improvements, which not only make TMP much easier than 10 years ago, but provide more safety and flexibility. Computing by in TMP took me at least twice as many SLOC as it does now. And now the solution is not only readable, it also is easier to extend.
Finally 10 years ago the programming world was still undecided about the future of native languages. At that point in time many projects started in managed languages. Even managed operating systems (such as the Singularity research project) seemed to be possible. Now we know that the future is certainly not pure managed languages. These languages will have their share, but native languages will also get a part of the cake. Here most developers seem to be satisfied with the available choices: Go, Rust, C++, C, X (place your favorite one in here).
So why should D now (suddenly) get the attention (which it would certainly deserve)? My guess is that it won't be about making D more attractive to new developers. I feel that the mission will be to make D more powerful for a variety of very special scenarios, which will give the language a piece of the cake that not in the mainstream area.
I wish Andrei and the whole D language team good luck in their efforts. I am curious about the future development.