D's greatest mistakes

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Nov 30 10:23:10 PST 2010


On 11/30/10 12:09 PM, bearophile wrote:
> Andrei:
>
>> The key is to navigate such that as many good designs are
>> expressible as easily as possible.
>
> Very flexible designs are often made of very small parts that need
> lot of brain to be combined to form something useful (see Scheme
> language, or certain toys). They become almost puzzles, even when the
> little parts are designed in a very good and clean way.

Wonder how the reply is related to the quote.

>> The real challenge is to solve the problem within the global set
>> of constraints we have, not to prove that a language feature would
>>  solve it. I know a language feature would take care of the issue,
>>  the same way money would take care of buying a nice house. The
>> challenge is to have a nice house when money _is_ limited.
>
> Generally it's positive to avoid useless features, or features that
> are easy to implement cleanly with few other ones. But a language
> like C# is much simpler than C++ despite it probably has more
> features, because in my opinion lot of usage complexity comes from
> corner cases, traps, dark corners, and so on, while clean features
> that are able to do one thing well and in a clean way don't add a lot
> of usage complexity (they may add complexity for the compiler
> writer).
>
> So sometimes not adding a feature you increase the complexity of
> programs (because the programmer has to implement those things using
>  lower level parts, and because sometimes such implementations are
> suboptimal). An example are nonnull reference types, that as builtins
> may have better syntax and much more complete semantics.

I was about to think "yah, reasonable" till I saw the last sentence...


Andrei


More information about the Digitalmars-d mailing list