Ask HN: What do you think of the D language?

8 points by reinhardt ↗ HN
I'm toying with the idea of giving a chance to a statically typed language after 6-7 years of working happily for fun and profit with dynamic languages (mostly Python with a bit of Javascript lately). I recently (re)discovered the D language after reading an interview of Andrei Alexandrescu, a long time C++ guru that has moved to D. Despite that the language has many and powerful features (http://www.digitalmars.com/d/2.0/comparison.html), it doesn't seem to get much airtime compared to other hip languages du jour (Clojure, Scala, Go, Erlang, ...). One barrier for adoption is that it doesn't piggyback on the JVM or .NET for getting free access to the gazillion libraries already out there for these platforms. Do you think this is the main reason it is less well-known and considered for new projects or there are more serious issues ? Do you have first-hand experience with it and if yes, do you think it is it worth spending time to learn compared to other statically typed languages ?

6 comments

[ 2.8 ms ] story [ 28.1 ms ] thread
It depends on what you'll be doing. Go might be a better language for server stuff, but D has quite a large game creation community behind it.
I may be biased because D has been my favorite language for more than five years now, but, well, it's good enough to have been my favorite language for more than five years now.
I love D because it has what i like about C and C++: it makes it easy to reason about the performance and memory requirements of code accurately. I can mentally translate snippets of code into assembly much like the compiler would. And that's what I like about programming, that you tell the hardware how to solve a particular problem and implement a certain algorithm. D retains that property while letting you use more higher-level abstractions than C++ 0x, and nicer syntax in things like templates.

When I first went from C++ to D I was very sceptical about it using garbage collection, but accepted it since you're not forced to use it. (I thought R-value references had to be the ultimate solution.) But now I'm quite sold on it. I think it manages memory in a more elegant way than R-value references and reference-counting do, and you can get closures and efficient strings and arrays for free.

It's damn hard to stop using. Pretty addictive.
I'm currently reading "The D Programming Language" and having a lot of fun playing with some of its powerful features. Coming from Java, it feels like I've been let out of the sandbox.
I came across it as a result of the Go language announcement! Basically I wasn't happy with Go for what I had in mind, so it got me looking to see if there were any other alternatives to C++ (my home for 14 years). Found D and think the language features are great, especially the template handling and built in string and slice handling for rapid development of efficient applications. Can't wait to work with the language (D2) more. I also recommend the book (The D Programming Language) which was published earlier this year.