Andrei:

> We should be much more restrained than this discussion suggests. Any and 
> all programming languages have limitations. This, coupled with the 
> former point, leads to the fact that at some point you MUST look into 
> doing within the language something that could be done nicer if you got 
> to play God. Doing the latter does not scale.

This use of word "scale" assumes there is a larger and larger group of basic 
features that we'll desire in the language. But I have experience both of 
"normal" languages and of languages with macros as Scheme, and I don't think 
this is true. In the next few years we will not want to add a large and growing 
number of basic features to D2/D3.

And currently in D there are features much less generally useful than named 
arguments or tuple unpacking syntax sugar, as Delimited Strings, Lazy Variadic 
Functions and more.


> So, does Flag work around a limitation in the language? Sure. Would a 
> language-changing solution work better? Absolutely. Is the necessity of 
> changing the language a foregone conclusion? I don't think so.

Named arguments offer a more general solution than Flags, useful for all kinds 
of arguments, with a more readable syntax. I don't think you need a sub-feature 
to _require_ the argument name at the call point (on the other hand you may 
desire a sub-feature Scala has, to support deprecation of argument names. This 
helps solve a problem Don too has with named arguments).

Bye,
bearophile

Reply via email to