Larry Wall's comment on python...
James J. Besemer
jb at cascade-sys.com
Tue Oct 1 21:29:43 EDT 2002
sismex01 at hebmex.com wrote:
>AND, I distinctly remember that most printers could customize
>their tab stops via escape codes, same as some (not all) terminals;
>I worked a lot on some Xoroc terminals, and lots on a Northstar
>Advantage (ahh, beautiful hardware... *snif*) and they also had
>customizable tabstops.
>
Escape codes? What's that? ;o)
Yes, I think in the trans-PC era -- or really it was the microprocessor
era when it finally was possible to dedicate a computer to a desktop
printer -- configurable tab stops became the norm. I remember the first
printer I bought. It had a zillion escape codes for the half dozen
crummy fonts plus Kanji etc., etc. I recall you could set tab stops out
of order and make it zig-zag back and forth between them. Krazy uP
programmers had ROM to spare and got carried away. To my knowledge I
NEVER used ANY of these features (except perhaps sometimes picking an
alternative font).
>Hmmm... maybe, what I'm getting at is, why did terminal-designers
>everywhere toss out years of research in typewriter technology
>(at the time) and ignore customizable tab-stops? It's simply not
>sane, I think.
>
I don't know for sure and only purport to report what happened.
I guess what I'm saying is that the "heritage" extended back before
printers and terminals were smart enough to have tab stops. Most early
equipment simply ignored it or printed a goofy symbol.
Fact of the matter, a LOT of unit record equipment (and I date myself in
even using that term) in the decades before the microprocessor did not
have expandable tabs. Or if they did it was not generally user
programmable. E.g., the "line printer" we had attached to our PDP-11
had no notion of tabs. Nor could it print square or curly braces or a
few other characters critical to C programming. All had to be done by
the device driver. It DID have a "programmable" sense of vertical tab
and vertical height -- but that was reprogrammed by changing a carefully
crafted punched tape.
Then there was an issue that communicating tab settings from user space
to the device was an additional complication most users didn't care
about and most systems programmers didn't want to bother with.
This is just speculation but I believe the heritage dates back to where
the effort to compute tab stops was not insignificant. I believe 8
chars was chosen because it could be computed with masking functions
instead of a divide or mod.
Then too, from the beginning Unix acknowledged that SOME terminals were
smart enough. So you could tell the driver to send tabs instead of
expanding them. We actually had some "smart" terminals with user
settable tabs. Everybody wasted some time mucking with tabs and then
gave up. It simply was too much of a nuisance for no gain. There
wasn't any software that knew about your hardware stops so there was
absolutely no point.
>Indeed. I *do* recognize that using actual tabs is a much better
>solution, but having hard-stops each 8 chars is a show-stopper,
>so if my editor can't customize it's tab width, or customize it's
>stops (say, when in asm, on columns 12, 18 and 32) then I'm never
>going to use it willingly (you *could* whip me into submission,
>but I'll curse your name for the rest of my natural life ;-)
>
I'm not telling anybody what to do. Be free. Be happy. "Go wherever
you want to go and do whatever you want to do -- just so long as you
don't hurt anybody."
>That's what I mean. An editor should be smart enough to handle tab
>stops at arbitrary columns, and when using tabbed text, jump between
>those columns. Best of both worlds.
>
I think now days most do. But IMHO it's more effort than it's worth.
"Arbitrary" columns seems overkill to me, something for word processing,
not computer programming. I can live with evenly spaced tabs at 4 or 8.
For me, 8 seems less troublesome because that's how it comes out anyway
whenever I am NOT using my special editing environment. And I do like
sometimes to use "more", "grep", "pr", "lpr", "notepad", etc., etc. to
process my files and most of them still live in an 8 char stop world.
>I find them hmmm... philosophically [sp] "wrong", because computers,
>being programmable and customizable ("terminals" being specialized
>computers) and so, should _at_least_ do what their mechanical
>counterparts are able to do, and then some.
>
The proportional-spaced glyphs I'm looking at on the flat panel monitor
are so far removed from the original typewriters that I'm not sure
there's even a connection. Yeah, "typing" is a tiny subset of what we
use computers for but the analogy sort of breaks down after that. I
recall this ancient Remington typewriter that was my fathers -- I used
it for papers in high school. Tab stops were changed by removing and
reinserting these little clips in the back of the unit. I guess MS Word
is SORT of like that only it's easier to insert, remove and move the
stops plus you have more flavors.
Too, if we're talking about programming, "arbitrary" tab stops seems way
overkill. I use all sorts of fancy features when I'm formatting
documents. But with code -- I don't even like proportional fonts.
>Would an electronic calculator survive, if it couldn't do the same
>operations as a mechanical adding machine?
>
Well, possibly. The myriad extra operations and speed and quiet and
portability of modern electronic calculators makes them preferred though
many lack hard copy output, a standard feature of most mechanical
calculators.
Anyway, you're confusing the ability to do something (arbitrary tab
stops which I believe is readily achievable) with the need to do it
(which is what I was questioning).
>Yup, I did the same also, but maybe it was because there was no
>alternative?
>
Spaces were an alternative that some people used. Some fools didn't
indent at all.
One C project, the lead came up with a standard that indented each level
3 spaces. His reasoning was (a) tabs were bad so they were out, (b) two
spaces was too small, (c) 4 was too many to type and thus (d) 3 spaces
was Just Right. Needless to say, I used tabs and was prepared to
convert if need be when I finished.
Alternatively, maybe the standard prevailed for so long because it
worked so well for everybody.
>Same here, I find that kind of argument a falacy: "my program is
>badly modularized and I can't read it clearly, it's the editor's
>fault". Nope, sorry.
>
Then why the emotional contrast between 4 and 8?
>If it was corporate standard, it sux. But, as for personal taste,
>I never could decide which looks better, either:
>
>I'm still somewhat ambiguous over which is more readable,
>maybe it depends on the context, the surrounding code,
>the tab width, the amount of spaces one uses for the
>begin/end indent and the actual code indent, I don't
>know and I don't really care to do reasearch about it.
>
Personally I think they all suck. Big problem was the begin/end in the
first place. It was such a relief to switch to {}, and further to get
rid even of them.
>It's been nice tossing ideas around :-)
>
Ditto.
REgards
--jb
--
James J. Besemer 503-280-0838 voice
2727 NE Skidmore St. 503-280-0375 fax
Portland, Oregon 97211-6557 mailto:jb at cascade-sys.com
http://cascade-sys.com
More information about the Python-list
mailing list