Re: How to prevent cdr from capitalizing symbols?

From: Christopher C. Stacy (cstacy_at_news.dtpq.com)
Date: 09/28/04


Date: Tue, 28 Sep 2004 07:04:23 GMT

rpw3@rpw3.org (Rob Warnock) writes:

> Kenny Tilton <ktilton@nyc.rr.com> wrote:
> +---------------
> | Andrei wrote:
> | > I wonder what's the background of the idea to read all the symbols in
> | > "cap" case? Wouldn't it be more natural to leave them as they are?
> |
> | Good question. Ping the historians. I have only been on board for ten
> | years, still a newby myself.
> | Maybe "Back In the Day" they were not worried about talking to other
> | languages, including case-sensitive languages...
> +---------------
>
> Actually, I suspect it was the Teletype Model ASR33

Case sensitive languages? Surely you jest.

Have you ever wondered why the source code that you sometimes
see for very early LISP programs was not written with the nice
indentation that we favor today? Even though the handwritten
M-exprs are usually pretty like mathematical notations?

Here's a hint, kiddies: The original character set for Lisp was
what was available on the IBM 026 keypunch (for punched cards).

I don't know when LISP was first used with a typewriter device.
It could have been pretty early on. But punched cards and paper
tape were more common. Interactive computing was very uncommon.
I don't think the IBM 704 or 709 even had a typewriter option.
Regarding the ASR-33 teletype...that's some newfangled terminal
using, what's it called...ASCII? No, don't think so, not on IBM.
And the typewriter input devices on the IBM computers (like the 7090)
were more primitive than that. A little later on at Project MAC,
there were IBM 1050 Selectric typewriters, though. I think CTSS
also supported ASR-35s. The DEC PDP-1 machines could (and did)
have both Selectric and ASR-33 terminals.

As to why this was uppercaseness was never fixed: It Ain't Broke!
Why shouldn't the representation of symbols be uppercase?
And I think it's useful to remind beginners that what they see on
the terminal is not actually their Lisp code. seeing that their
input is converted into something else highlights this difference
from character-based languages. Anyway, there is no need at all for
mixed case if all you have is symbols. When I started programming
in MACLISP around 1980, it didn't even have strings. (There were some
gross hacks for pretend strings; you could make lowercase symbols.)
Uppercase only looks strange if you're used to lowercase. It still
looked perfectly reasonable even in 1980, even though most terminals
(except ASR-33s) had lowercase by then. The other languages, FORTRAN
and COBOL and BASIC and SNOBOL and APL and so on were all uppercase.
You don't need lowercase unless you're trying to have a fancy UI.
Back then, LISP was used exclusively for AI, and such fancy interfaces
were not really important. These things all changed as the Lisp
Machines came along.

In some Lisp implementations, you can set a variable that will make
symbols print out in lowercase, if it really bothers you. With all
the graphical interfaces around today, I still don't notice that my
code prints out in uppercase, but maybe I'm just old fashioned that way.
Today I do _write_ my code in lowercase, though I used to usually
elect to write in uppercase until late 1983 (based on some very
old programs of mine that I just now wandered around looking at).



Relevant Pages

  • Re: Case-insensitivity considered harmful
    ... In many environments of the 1960s, monocase, specifically uppercase, ... you could get a lowercase print chain mounted, ... Bell Labs UNIX & C ... While there are some exceptions, older languages tend to ...
    (comp.arch)
  • Re: Case-insensitivity considered harmful
    ... - it is fastest to type lowercase ... CamelCase, either UpperCamelCase, or lowerCamelCase, are not too bad, ... and almost all of them were lowercase. ... UPPERCASE, and, and occasionally, ...
    (comp.arch)
  • Re: gethostbyname
    ... If you need lowercase then call a routine to convert. ... uppercase, then these queried records will return as uppercase. ... Microsoft MVP - Directory Services ... Instead of the website you're using, I suggest to use OEx (Outlook Express ...
    (microsoft.public.win2000.active_directory)
  • Lowercase equivalent to uppercase, or vice versa
    ... COBOL character repertoire.", and, the REPLACE ... each lowercase letter is equivalent to its corresponding ... uppercase letter, as specified for the COBOL character ... However, COBOL character repertoire, 8.1.2.1 General ...
    (comp.lang.cobol)
  • Re: Lowercase equivalent to uppercase, or vice versa
    ... COBOL character repertoire.", and, the REPLACE ... each lowercase letter is equivalent to its corresponding ... uppercase letter, as specified for the COBOL character ... However, COBOL character repertoire, 8.1.2.1 General ...
    (comp.lang.cobol)