Arbitrary abbreviations in phobos considered ridiculous

Mike Parker aldacron at gmail.com
Wed Mar 7 21:08:57 PST 2012


On 3/8/2012 4:27 AM, Jonathan M Davis wrote:
> On Wednesday, March 07, 2012 08:47:48 Steven Schveighoffer wrote:
>> On Tue, 06 Mar 2012 12:09:47 -0500, Andrej Mitrovic
>>
>> <andrej.mitrovich at gmail.com>  wrote:
>>> I'll never forgive std.datetime for this mistake:
>>>
>>> auto sw = StopWatch(AutoStart.yes);
>>> writeln(sw.peek.hnsecs);
>>> writeln(sw.peek.nsecs);
>>> writeln(sw.peek.usecs);
>>> writeln(sw.peek.msecs);
>>> writeln(sw.peek.secs); // bzzzzz NOPE
>>> writeln(sw.peek.seconds);
>>>
>>> I misspell this thing every single time I use stopwatch to count seconds.
>>
>> this is a no-brainer:
>>
>> Duration dur(string units)(long length) @safe pure nothrow
>> if(units == "weeks" ||
>> units == "days" ||
>> units == "hours" ||
>> units == "minutes" ||
>> units == "seconds" ||
>> units == "secs" || // added
>> units == "msecs" ||
>> units == "usecs" ||
>> units == "hnsecs" ||
>> units == "nsecs")
>> {
>> return Duration(convert!(units, "hnsecs")(length));
>> }
>>
>> // etc, everywhere "seconds" is used, add "secs" as well.
>>
>> I'll see if I can do a pull request.
>
> I've avoided that primarily because it results in inconsistent code. It's
> pretty much equivalent to adding extraneous aliases, though it's not as bad,
> since it's not a general symbol. But if it's a sufficient usability improvement,
> then maybe it's a good idea.
>

In this case, I think it very much is. I saw your explanation earlier 
that everything sub-second is abbreviated, but to me (and several 
others, obviously) that's just unintuitive. I see "msecs", "usecs", and 
so on and I naturally think "secs" rather than "seconds", most likely 
because it's a part of each abbreviation. Steve's solution is the right 
one, I think.


More information about the Digitalmars-d mailing list