On 2008-01-15, at 10:03, David Cantrell wrote:
On Tue, Jan 15, 2008 at 09:46:01AM -0600, Peter da Silva wrote:
Version numbers ARE NOT "just numbers".
Then stop calling them version NUMBERS.
OK, "Version identifiers are NOT 'just numbers'".
While you, and other people, continue to do so, then people will
assume that "hey, it's a number" and "I can do numbery things with
it".
If a programmer thinks that just because something's a number that
means you can do "numbery things" with it, they need remedial training.
Neither in mathematics nor in programming are numbers "just numbers"
in the colloquial sense of "number" as a linguist might use the
term... though I suspect that there's a linguistic use of the word
"number" as well. In programming, neither integers nor floating point
numbers are well-ordered in all circumstances. In mathematics, many
numbers are not well-ordered in ANY circumstances. In particular, you
have to define an ordering on n-tuples.
For example, {0,1} may mean "version 0.1" or it may mean "the
imaginary number 'i'".
For example, {1999,12,31} + {0,0,1} may equal {2000,1,1}.
For example, {255} + {1} may equal {256} or {0} or {1,0}.
For example, "a - b < 0" may not be the same as "a < b". And
sometimes you need one and sometimes you need the other. In fact,
last year I put comments before a couple of comparisons in a program
I was working on because I didn't want some programmer changing "a -
b < 0" into "a < b" because it's "numbery".
"Yeah, that's nice and all, but
wouldn't it be great if nothing made any fucking sense and I took a
whiz all
over your UNIVERSAL methods? Yeah. Open wider and stop gaggig,
bitch."
Where "universal methods" means "a hateful bloody stupid idea that
pretty much only Perl actually uses".
Wrong.
OK, let's pretend for a minute that I wasn't aware that "universal
method" was a technical term in Perl. That should be easy, because I
wasn't aware that "universal method" was a technical term in Perl. So
pretend that I parsed this comment in the context of the
conversation, which is about version numbering schemes and not class
structures. Let's pretend I was gobbing a fat chunk of hate all over
Perl actually using floating point numbers (eg, 5.001002) as version
identifiers, rather than N-tuples (eg, 5.1.2). Not that I was gobing
a fat chunk of hate over the Perl class structure. OK?