Why I chose D over Ada and Eiffel

Brian Rogoff brogoff at gmail.com
Thu Aug 22 07:18:08 PDT 2013


On Thursday, 22 August 2013 at 07:59:56 UTC, qznc wrote:
> There are basically two ways to implement generics. Type 
> erasure (Java,Haskell) or template instantiation (C++,D). 
> Instantiation provides better performance, but sacrifices error 
> messages (fixable?), binary code size, and compilation 
> modularity (template implementation must be available for 
> instantiation). Type safety is not a problem in either approach.

See this brief discussion from Greg Morrisett on the topic, with 
a finer subdivision of approaches

http://www.eecs.harvard.edu/~greg/cs256sp2005/lec15.txt

that confirms your bad news that monomorphization (C++/D 
templates) and separate compilation won't play well together. Nor 
do monomorphization and some advanced type system features work 
together, but that's less of a worry for D.

That said, I like the D approach of putting a lot of power in the 
macro-like template system. I worry more about the reliance on GC 
in a systems programming language, as historically that's been a 
losing proposition.

-- Brian


More information about the Digitalmars-d mailing list