On 2011-06-10 17:04:42 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

On 6/10/11 3:34 PM, Michel Fortin wrote:
If you want something to be used everywhere and it is not an
implementation detail, make it part of the language. Implementing what
sounds should be a language feature through a template hack and putting
it the standard library is not going to make people feel good about the
language, it'll remind them of what the language is missing.

The problem with the "hack" label is that it instantly decreases the level of the conversation. It's the "N" word of programming.

A hack is something that works even though it's ugly and generally cause people to call for something better. I'm not opposed to using hacks as long as they're well-encapsulated and not too fragile, but in this case I find the encapsulation is leaky since you need to litter your code with Flag!"" everywhere.


I don't want a universal thing, I want to solve a simple problem: there are 7 yes/no enums in Phobos, and probably some more to come. Flag solves that problem in a reasonable way. This is pretty much it.

I disagree that Flag is a reasonable solution. It works, but it's ugly and verbose. I understand it's tiresome to create an enum for every parameter, but asking all users to write Flag!"" everywhere is going to be tiresome everywhere else, which is hardly an improvement.

I also think you are narrowing the problem a little too much. The problem exists everywhere there is a boolean parameter. This includes phobos, druntime, and potentially any other D library. Should Flag!"" become the recommended way to make boolean parameters in D? And should creating a separate Ddoc version of the function signature become the recommended way to document boolean parameters? If so, I think it'll reflect badly on the language.


--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to