Arbitrary abbreviations in phobos considered ridiculous

H. S. Teoh hsteoh at quickfur.ath.cx
Tue Mar 6 10:08:28 PST 2012


On Tue, Mar 06, 2012 at 05:38:09PM +0100, Adam D. Ruppe wrote:
> One of the stumbling blocks on using std.datetime is how
> many bizarre abbreviations it has.
> 
> auto time = Clock.currentTime(); // bzzt, wrong
> 
> if(time - something > duration!"hours"(4)) // bzzt, wrong
> 
> writeln(time.toISOExtendedString()); // bzzt, wrong, but this used
> to work!
> 
> 
> 
> Why aren't we using real words here? Real words are easier
> to remember and easier to type.
[...]

I have to disagree on this one. One of the reasons I hate Java so much
is because of its gratuitouslyOverlongFullySpelledOutVariableNames. I
mean, it takes almost the entire line of code to just refer to a
variable, let alone do anything useful with it. There's nothing wrong
with using abbreviations... BUT they have to be *consistent*.

I do agree with you that arbitrary abbreviations are very bad. One
module abbreviates "current" as "cur" and another module uses "curr". I
agree that's very bad. We do need to standardize on these things so that
they are consistent.

My stance is that variable names *should* be abbreviated, but within
reason, and abbreviations must be *consistent*.  Shortening loop indices
to i, j, k is OK, because we know what they mean. However, renaming,
say, "hours" to "i" is bad. On the other hand, spelling out
"dayOfTheMonthExceptInLeapYears" is bad too. There needs to be a
balance. Which is where consistency comes in, because if "balance" means
"arbitrary point between two extremes", that doesn't work either.

The sec/seconds arbitrary switch as somebody pointed out is an example
of inconsistency. It causes confusion and makes it hard to remember. But
if seconds was *always* abbreviated "sec", then there's no problem at
all, and it's easier to type too.

IOW I don't think abbreviations would be that big an issue if it weren't
for the inconsistency. The fault is with inconsistency, not with
abbreviations.


T

-- 
Life would be easier if I had the source code. -- YHL


More information about the Digitalmars-d mailing list