[phobos] Time to get ready for the next release
David Simcha
dsimcha at gmail.com
Fri Apr 22 07:42:15 PDT 2011
On Fri, Apr 22, 2011 at 10:39 AM, Steve Schveighoffer
<schveiguy at yahoo.com>wrote:
> Bug reports. People having stupid arguments just like this one on why you
> should change how the code works to fit their style ;)
>
> Essentially, ambiguously named functions in the context of "I can call this
> as a property or a function" lead to people getting surprising behavior and
> then complaining about the surprise, when I can do nothing about it.
>
> I've actually had this happen. I had to change function names in Tango in
> order to avoid people complaining. The example was, I had a bunch of
> generator functions in TimeSpan, like
>
> // create a time spand that represents the given number of seconds
> static TimeSpan seconds(int s)
>
> which would be used like this:
>
> auto s = TimeSpan.seconds(5);
>
> But it could also be used as a property. So this compiled and constructed
> a temporary time span and throw it away:
>
> TimeSpan s;
>
> s.seconds = 5;
>
> So we had to change seconds to fromSeconds. It still allows code like
> this:
>
> s.fromSeconds = 5;
>
> but instead of being disallowed, it just looks horrible, hopefully cluing
> the reader to go examine the documentation for TimeSpan. That's the best we
> can do. I have no power to enforce the usage.
>
> -Steve
>
>
Nor should you. People who are confused should RTFM. BTW, what if you, as
a library designer, *want* to express the notion that something can be
called both ways?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/phobos/attachments/20110422/cf77c5e9/attachment.html>
More information about the phobos
mailing list