Adam Kennedy wrote:
>>> Also, why exclude v1.23 useful as a tuple...?
>> Belt and suspenders.  It might be mistaken for a number.  Written as
>> "v1.23.0" it's more obvious that it's a version tuple.  And if someone
>> leaves off or strips the "v" for some reason, it's still clearly a
>> tuple and a liberal parser can deal with it without heuristics.
> 
> It's got a v... it's a tuple by definition, whether it's got one element or 
> 10.

What if you don't know the definition?  What would one think upon encountering
various versions cold?

v1.2.3  is not a number, it must be a tuple!

1.2.3   same deal

v1.2    its X.Y, that must be a number.
        OR
        versions in my experience are tuples, so it must be a tuple.
        OR
        it has a v in front of it, that means... "version"?  I dunno.

Whether you like it or not, humans eyeball version numbers all the time and
they don't think to study the documentation... if they can find it or even
think they might need it to parse something as simple (should be simple) as a
version number.

Disallowing vX.Y removes an ambiguity into which the user will fall.  The best
way to avoid a mistake is to remove the possibility entirely.  For example,
when designing a postal code system you remove 1, l, 0 and o because they are
easily confused.  Or you interleave numbers and letters, as the Canadians do.
 You don't tell your entire population to practice better penmanship.

Weighed against this, to which I've gotten no answer, is what is the value of
allowing v1.2 that v1.2.0 does not also offer?  Is that value worth opening an
ambiguity in a system that's already full of traps?


-- 
...they shared one last kiss that left a bitter yet sweet taste in her
mouth--kind of like throwing up after eating a junior mint.
    -- Dishonorable Mention, 2005 Bulwer-Lytton Fiction Contest
           by Tami Farmer

Reply via email to