Naming things
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jun 20 11:46:47 PDT 2015
On 6/20/15 5:27 AM, Vladimir Panteleev wrote:
> Naming things
>
> There are only two hard things
> in Computer Science: cache
> invalidation and naming things.
> -- Phil Karlton
>
I think the issue we are struggling with here is that:
abbreviate -> abbreviated
This makes some sense. However, the past participle of "set" is "set".
So "set the extension" -> "a set extension" doesn't work, because "set"
doesn't change. Our enemy here is the English language :)
If the original was named something like "modifyExt", then "modifiedExt"
would be fine.
And my understanding of the pushback from Walter about renaming really
has to do with avoiding breaking code for the sake of renaming. At this
point (before setExtension has ever been released), it's "what is the
best name". No code should be broken, the renaming objection shouldn't
apply. I'm 100% in favor of not having both setExt and setExtension to
mean different but similar things.
withExt seems better, and reasonably informative.
path.withExt("abc") -> "use this path, but with extension '.abc'"
And 'with' doesn't work with every possible updated version, we have to
work around the quirks of English here.
But really, the egregious error is the slightly different yet identical
names. It's like having setExt and set_ext mean different things. This
also reminds me of std.regex vs. std.regexp. I never knew which one was
the "new" version.
If there is some other idea besides setExtension (or some prefix of
that), I think we should go with that. We could use some analog to
'set', like 'modifiedExt' or 'changedExt' if that sounds better. It just
shouldn't be the same exact name, with differing levels of abbreviation.
-Steve
More information about the Digitalmars-d
mailing list