Origins of the D Programming Language
Adam D. Ruppe
destructionator at gmail.com
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
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