Games people play

Georg Wrede georg.wrede at nospam.org
Thu Sep 28 14:15:43 PDT 2006


Sigh, this really ought to be nailed to the nearest church door (like 
Martin Luther did). Or to the cover of CUJ.

Walter Bright wrote:
> Georg Wrede wrote:
> 
>> Or, could it be that D actually is bigger than C++ _feature_wise_, 
>> while C++ is _much_ larger than D when we look at the ramifications of 
>> their respective feature sets.
> 
> 
> D *is* bigger feature wise. But complexity wise, C++ beats it. The 
> trouble with C++ is that its features are not very orthogonal - and 
> where they interact/conflict there are a lot of weird special case 
> rules. I have recently exchanged yet another set of emails with a person 
> who is a top C++ expert who insisted that DMC++ had a serious bug with 
> template name lookups. Turns out that DMC++ actually was implementing 
> the name lookup rules *according to the C++ standard* and the other 
> compilers were not. The bottom line is even the experts don't know how 
> it is supposed to work.
> 
> Another example is the preprocessor. It took 10+ years for C/C++ 
> compiler vendors to implement it correctly. This isn't because doing a 
> macro processor is inherently difficult, it is because the specification 
> for C's macro language is so obtuse and full of bizarre special cases. I 
> know I've spent countless hours trying to figure out (1) how it's 
> supposed to work and (2) how to implement it. It's been scrapped and 
> totally reimplemented about 4 times.
> 
> 
>> What I mean is, one could write a "complete" book about D, and it 
>> still would be just a fraction of the size of Stroustrup's "C++". And 
>> that's because most of his book explains and chews on issues and 
>> implications that are unobvious to the reader or programmer, and that 
>> demand knowing them lest you shoot yourself in the foot -- and not 
>> even later understand what happened.
>>
>> D has virtually no such crap, so we can scrap 500 pages right off the 
>> bat.
> 
> 
> Consider just one issue with C++ - how to write a "correct" iterator 
> class. Even harder is writing a "correct" container class.



More information about the Digitalmars-d mailing list