DMD 0.170 release

Oskar Linde oskar.lindeREM at OVEgmail.com
Wed Oct 18 02:06:34 PDT 2006


Walter Bright wrote:
> John Reimer wrote:
>> Ah, ok.  I stand corrected on that aspect of my critique.
> 
> I'll give some more lame justifications:
> 
> There's been some talk about Boost recently in the n.g. (here and in 
> comp.lang.c++) about if what Boost does is really worth it, or if it's 
> just a lot of show-how-clever-I-am falderol. The general idea among the 
> Boost people is that if there's any way possible it could be done in a 
> library, rather than the core, then that's the way it should be done.
> 
> I don't agree with that idea. I think Boost stretches C++ past the 
> breaking point, and rather than showing how powerful C++ is, shows 
> instead that the C++ core lacks power. Some of the shortcoming 
> workarounds in Boost are just incredible, in the dogged persistence of 
> their inventors to somehow make them work. Even so, the Boost results 
> still wind up with serious holes in them.

I fully agree.

> If some crucial features are added to the core language, then much of 
> Boost either becomes irrelevant, or at least becomes far simpler and 
> straightforward to implement.

Exactly. Making improvements to the language that generalizes common 
idioms, tremendously shrinks library code or gives additional expressive 
power is good. But foreach_reverse does not generalize anything or give 
any additional expressive power. With the boost analogy, it would just 
replace one single algorithm with a built in equivalent, not reduce the 
amount of scaffolding all the rest of boost needs.

One example of a generalizing addition is Tomasz' suggestion for 
trailing delegates. It generalizes foreach, foreach_reverse and even the 
while-loop. Such an addition would not only make libraries simpler and 
more powerful. It could also simplify the core language.

What is design if not the pursuit of simplicity?

/Oskar



More information about the Digitalmars-d-announce mailing list