Until last week I’d barely heard of the D programming language. Then I had a chance to meet Walter Bright who designed the language in 1999. I also met Andrei Alexandrescu who has been collaborating on the design of D since 2006. Both gave talks on D at Lang.NEXT.
Walter Bright’s talk was an overview of D. Andrei Alexandrescu’s talk was Three Unlikely Successful Features of D. Both were also part of the native languages panel discussion.
I haven’t written a line of D, but I was impressed with the ideas from D presented at the conference. I was also impressed by Walter Bright. When you spend three decades writing compilers, you learn a few things.
Not many developers use D, but the language has influenced more popular languages such as C++ and C#. For example, I believe the var
keyword in C# and the auto
keyword in C++ came from an analogous feature first implemented in D.
Towards the end of Stroustrup’s description of the new auto in C++11, he reveals that it was first implemented in Cfront in 1984 but it was removed due to C compatibility problems. On another note, I really enjoy your blog and read it daily.
I have heard of D but never really bothered to read about its salient features. I was hoping to learn something from your posting on D but unfortunately there isn’t much (I will follow the links you provide).
Dare I say, compiler writing and language design are orthogonal skills? It might be better to characterize Walter as a talented language designer.
+1 on the distinction between expertise in compilers vs in language design. That said, Walter is also very strong in the former. His product sites do a good job illustrating this.
D’s a neat language, but automated type inference has been around long before D, and in languages much more influential than D.
The auto specifier exists in C. See section A8.1 of Kernighan & Ritchie, Second Edition. I think it is already in the first edition, but I have lost my copy due to various moves over the years.
There are actually two auto keywords in the world of C/C++. The original auto keyword referred to the storage specifier. The new auto keyword is for variables that the compiler deduces the type of automatically. K&R is referring to the old auto keyword, not the new one.
Dear friends
I use the D Language in Brazil, do evangelism in Brazil!