
Ruminations on D: An Interview with Walter Bright - Halienja
https://dlang.org/blog/2016/08/30/ruminations-on-d-an-interview-with-walter-bright/
======
jordigh

        We nailed it with arrays (Jan Knepper’s idea), the
        basic template design, compile-time function execution 
       (CTFE)
    

One of my favourite things about D is that it has a full compile-time D
interpreter. You can do "template metaprogramming", so to speak, in the same
language as D itself (it's probably a bit more fair to compare it to how lisp
macros are "compile-time").

It's a bit sad that Rust is getting all of the attention in the spotlight,
because D is a great, modern, safe language. If you've only heard about D 15
years ago and never tried it again, give it another look. The current D is
really a new language, which was briefly called "D2" for a while.

Now, if Symantec could just fix the stupid licence of the reference
compiler...

[https://forum.dlang.org/thread/lodjbuvdhimrvrdngldy@forum.dl...](https://forum.dlang.org/thread/lodjbuvdhimrvrdngldy@forum.dlang.org?page=1)

~~~
lucian1900
> D is a great, modern, safe language

It's very nice, but it isn't memory safe.

~~~
posterboy
I wonder, could a portable ownership model be implemented with the templates?

~~~
pcwalton
Not soundly, no. The borrow check requires flow-sensitive analysis. The
lifetime typechecker requires subtyping-aware extensions to Hindley-Milner.

~~~
nialv7
Can you going into some details about this? Like proofs?

------
jbb555
I took a look again at D this last couple of weeks and it was a way better
language than I remembered.

It seems like a very solid language. You can write low level C like code if
you really want to, but it defaults to safer, higher level code without losing
much efficiency.

I'm going to try it out with some bigger projects. I have some issues. Windows
support seems a little flakey but it's ertainly usable (the default dmd
compiler works very well on windows but the code it makes isn't the best it
could be, and ldc makes much higher quality code, but isn't _quite_ stable on
windows. (Although it's certainly looking good enough to use).

I think it's well worth a look. I like it a great deal more than Rust

------
Keyframe
_You were 42 when you started working on D and I guess it is the first
language you designed? Talk about why you started working on it so late..._

What kind of question is that? Anders Hejlsberg was what, 39 when he started
working on C# and 52 with Typescript? It's the same as with screenplays. You
start writing when you have experience.

~~~
jsmthrowaway
It struck me as odd, too, but then I realized I didn't know the cultural
background of interviewer or interviewee and maybe it was a welcome,
completely normal question. It's useful to keep your own dispositions in mind
when analyzing someone else's conversation.

~~~
Keyframe
Not valid, since question comes preloaded with an assumption language
designers start a lot earlier ("so late").

~~~
abiox
maybe. perhaps they're referring to his long career and curious about what
motivated him at that point to pursue the project versus times previous.

~~~
Keyframe
When you put it that way, could be that as well. Bad interviewer is bad, I
guess.

------
tree_of_item
I like a lot of things about D, but I don't like the fact that it seems stuck
in the OOP fad from 15 or so years ago. Go and Rust have both abandoned this
whole idea of making "classes" in favor of constructs like structs, enums,
traits and interfaces. I wish D had gone this route as well, but other than
that it seems like a nice language.

~~~
skocznymroczny
You'll never satisfy everyone I guess. For me personally, I wish D went more
the OOP route (as the Tango library did in D1 times), rather than the
template/metaprogramming way it went with. Some of the error messages from D
rival C++ STL template vomit.

~~~
PeCaN
Heh, that's exactly what I do like about D—the generic
programming/metaprogramming paradigm instead of OOP.

You can get some very elegant and efficient code with D, while OOP tends to
have more runtime overhead.

------
grundprinzip
What I found interesting is that the two high profile projects mentioned in
the post written in D are no longer maintained, which is kind of weird.

~~~
bedros
I love D language, and all what it needs is a high profile production project
that uses D. and then more people will look into considering using D in their
production environment.

~~~
vram22
See what Walter says in the interview about that.

------
vram22
This video of a panel discussion at a conf was interesting to me:

Video: C++, Rust, D and Go: Panel at LangNext '14:

[http://jugad2.blogspot.in/2016/08/video-c-rust-d-and-go-
pane...](http://jugad2.blogspot.in/2016/08/video-c-rust-d-and-go-panel-at-
langnext.html)

Key team members or inventors of those languages, speak.

~~~
steveklabnik
Standard disclaimer: It's been a while since I watched that video, but this
was before Rust 1.0, and so all statements about Rust in it should be taken
with a grain of salt. Lots changed.

~~~
vram22
Good point, and I suppose some of the same may be the case about the other
languages as well. My own disclaimer, though it shouldn't really be needed: I
only put the link out of interest. No points to make.

~~~
steveklabnik
Definitely didn't assume you were. Because there was so much interest in Rust
pre-1.0, there's a lot of outdated material out there, and so it can confuse
people. [https://github.com/rust-
lang/rust/issues/14954](https://github.com/rust-lang/rust/issues/14954)
specifically was a huuuuge headache for a long time.

This is slowly changing, of course, the farther we get away from 1.0. I still
worry about it, though.

~~~
qznc
D has a similar problem. There is quite some outdated material on D1 out
there. :)

~~~
vram22
Yes. There are pages that start with dlang.org/phobos/... and others that
start with dlang.org/library/... I need to confirm but I think the "Phobos"
ones are for the current library of D(ver)2 and "library" ones are for Tango,
a different library that diverged from the standard one during the D1 days -
something like that. I think I read that they have later sort of unified
again, either that, or Tango is obsolete or less recommended. Maybe others who
know more can comment.

~~~
qznc
Everything on dlang.org is fine. The phobos/ and library/ sections are two
versions of the same content, generated from the same source files at the same
time. The library/ stuff is the future, but not completely polished yet.

The obsolete stuff is dsource.org. Most of it does not compile anymore and has
no maintainers. If you are looking for libraries to use, go to
[https://code.dlang.org/](https://code.dlang.org/).

Phobos is the standard library. Tango is a D1 projects. Most of it has been
ported and integrated into Phobos now. Some people still like the Tango XML
library:
[https://github.com/SiegeLord/Tango-D2](https://github.com/SiegeLord/Tango-D2)

~~~
vram22
After reading your comment I googled a bit and found this thread, which was
somewhat interesting (2012), as also its linked /r/programming thread:

[https://semitwist.com/articles/article/view/dispelling-
commo...](https://semitwist.com/articles/article/view/dispelling-common-d-
myths)

[https://www.reddit.com/r/programming/comments/118y4m/dispell...](https://www.reddit.com/r/programming/comments/118y4m/dispelling_common_d_myths/)

------
zokier
Hows the Dlang GC these days? A year ago andralex stated that he was going to
work on it[1], but I haven't heard of that since.

[1]
[https://www.reddit.com/r/programming/comments/2g03af/ds_garb...](https://www.reddit.com/r/programming/comments/2g03af/ds_garbage_collector_problem/ckent8c)

~~~
bachmeier
Someone was supposed to be working on the GC for a GSoC project, but I haven't
heard any recent updates.

[http://forum.dlang.org/post/jcfwcdvvfytdkjrpdeld@forum.dlang...](http://forum.dlang.org/post/jcfwcdvvfytdkjrpdeld@forum.dlang.org)

~~~
Profan
They're working on getting precise GC in, he's been working on it quietly with
a mentor and another two GC specialists in the D community for a while :)

[https://github.com/dlang/druntime/pull/1603](https://github.com/dlang/druntime/pull/1603)

------
stirner
> I don’t worry too much about that. I spend my efforts making D the best
> language possible, and let the metrics take care of themselves. It’s like
> being a CEO; he shouldn’t be sweating the stock price, he should be working
> on making money for the company, then the stock price will take care of
> itself.

I wish this mindset was more prevalent in open source. I find that the best
(most well-designed and useful) projects are those that don't concern
themselves with marketing.

