logoalt Hacker News

Sharlintoday at 10:56 AM1 replyview on HN

No, everybody else is talking about short identifiers in general which is what the GP asked about. For car and cdr specifically you’re right, of course.

I also love how the register names don’t even have ANY mnemonic relation to what the contents mean in Lisp. Address and Decrement? Totally arbitrary. It’s like having a high-level language where function parameters are always names rsi, rdi, and so on. Because obviously "destination index" means "first argument"!


Replies

jiggawattstoday at 11:15 AM

I agree, I too think this is all nuts.

Something I tell junior developers: There is one way to correctly spell out a word in full, but many different ways of abbreviating it. Don't make me guess or memorise which one you chose, completely arbitrarily.

UNIX and languages "born from it" are especially prone to a ludicrous level of abbreviation because of its start in the earliest days of computing when serious machines had mere kilobytes of memory, and so every byte was precious. Compounding that were the use of teletypewriters, which did not generally allow edits and were glacially slow. Tab complete was impossible.

This has become so ingrained in the early generation of computing science pioneers that they passed on these behaviours almost like religious doctrine, like dogma or rituals that must be preserved. Perhaps it was mostly subconsciously done, but I have seen programmers in the 90s and early 2000s still instructing others to do these things, to shave bits and bytes off identifiers to 'save space'.