Origins of the D Programming Language

Adam D. Ruppe destructionator at
Fri Nov 30 22:23:33 UTC 2018

I'd point out under the version statement thing that setting 
versions (`version=identifier`) only works in one module. This 
avoids having to redo imports, like you have to with C's #define 
something followed by an #include. (this is page 12)

Fits in with the theme of D trying to avoid missteps of the past.

On page 18, you talk about VRP, but the only date given is 2017. 
As I recall, VRP was first added more like... 2008? I don't 
remember exactly, but it was definitely a long time before 2017.

When was unittest added? It has been there as long as I can 
remember. I kinda recall seeing "Design by contract" on the 
Digital Mars site as early as 2002, and I think D had those bits 
almost from the beginning. Might be good to confirm that - it is 
notable that D was ahead of the TDD fad. Downloading the oldest 
version of D source I can find, it proves it was indeed in the 
language from at least November 2002.

Also, `immutable` barely gets a reference at all, though I 
consider it to be one of the major turning points of the 
language! There was a LOT of talk about making thread safe stuff 
just work in 2007 and immutable was a big part of that... and one 
of the few that actually survived into general use (the unique 
stuff Bartosz was talking about was similarly big but we never 
did it).

I also like the history of immutable btw: remember when it was 
called "invariant" and why it changed?

And, it says early history is lost because of no version control. 
This is basically false - the changelog goes all the way back and 
contains zips of binaries and source of most those versions, the 
oldest being dmd 0.50 from Nov 20, 2002.

The backend source isn't there, but the frontend source is, along 
with compiled binaries. We can learn a lot from that if we want 
to dig a little.

it is kinda fun to pull an old version and see if any of your 
code still works on it :P

More information about the Digitalmars-d mailing list