Steven D'Aprano wrote:
On Thu, 27 Aug 2009 10:31:04 -0700, Ethan Furman wrote:
Steven D'Aprano wrote:
A mistake is still a mistake even if it shared with others.
Treating its with a lead zero as octal was a design error when it was
first thought up
[snippage]
I have to disagree with you on this one. The computing world was vastly
different when that design decision was made. Space was at a premium,
programmers were not touch-typists, every character had to count, and
why in the world would somebody who had to use papertape or punch cards
add a lead zero without a *real* good reason? I submit that that real
good reason was to specify an octal literal, and not a decimal literal.
Octal with a leading 0 comes from B, which influenced C, which influenced
many languages. B was designed in 1969, the same year as Pascal, not the
1950s -- six years *after* Basic, ten years after Lisp and Cobol, eleven
years after Algol, and thirteen years after Fortran. *None* of these
other languages use a leading 0 for Octal, and none of them are
particularly terse.
Obviously I can't speak for Ken Thompson's motivation in creating this
feature, but I'm pretty sure it wasn't to save typing or space on
punchcards. Even in 1969, hex was more common than octal, and yet hex
values are written with 0x. My guess is that he wanted all numbers to
start with a digit, to simplify parsing, and beyond that, it was just his
programming style -- why call the copy command `copy` when you could call
it `cp`? (Thompson was the co-inventor of Unix.)
Maybe it was because they were working on minicomputers, not mainframes,
so there was less processing power and storage available.
--
http://mail.python.org/mailman/listinfo/python-list