It's a damn shame that the control characters for "Field Separator" (FS ASCII 28 decimal) and "Record Separator" (RS ASCII 30 decimal) weren't used instead of TAB and CR/LF.
Then the whole CRLF vs CR vs LF for line endings in files would have been totally avoided, with CR returning the print-head/cursor to the left-most position (right-most on R-L languages) and LF literally moving the print-head/cursor down.
The drivers for the particular terminal could have translated as required, and we would not need (in 2025!) to be specifying to git and elsewhere what to convert line endings to/from.
I know that back in the days of literal TTYs (ASR-33) where I cut my teeth, the BEL/BS/SP/CR/LF/FF etc characters were literally controlling a print head, but even then it didn't make much sense that we didn't have internal representation of what was needed (field separator, group separator, record separator) that was translated when doing actual I/O to a physical device.
We had distinct keys for Enter and Return for the longest time. An ISO standard keyboard has Return in the main block and Enter in the numpad.
https://en.m.wikipedia.org/wiki/Enter_key#/media/File%3AEnte...
What a wonderful essay. I learned to type on a manual Underwood typewriter with a carriage return lever. I don't miss it, but there was something so satisfying about moving that lever and feeling the whole carriage move. It meant that I had typed another line, and had made progress. The thing I truly don't miss was not being able to afford a new ribbon, and having to move back over every character and type it again to make sure that it showed up because the ribbon was so dry. Or not being able to undo mistakes.
I wonder if I should make a joke menubar program where every time you make a newline while typing it sounds a slide-ding noise! I might do that…
I remember being mildly intrigued as a kid when I started seeing PCs with the Enter key where my C64 had Return.
It's ironic that, though we haven't seen a Return key for a long time, the down-left arrow symbol still used on many keyboards represents the motion of a carriage return. I guess there's no other symbol that would convey the meaning of Enter as well.
Every Apple keyboard, even the iPhone I’m typing this comment on, has had a Return key. Only the Num Pad has an Enter key on Apple’s keyboards.
And Fn+Return can be used for Enter if the keyboard doesn't have a Num Pad, for the few Applications that use it.
Huh, TIL. I do wonder though what programs are looking so specifically for the exact Enter code.
Same for me. It had the smell of professionalism. Even more than for an Enter key I longed for the luxury of four distinct cursor keys.
The 2023 MacBook Air I'm typing this on has a return key.
> I guess there's no other symbol that would convey the meaning of Enter as well.
Just wait until UI mafia from Microsoft, Apple or Google find about this. They will come with a new symbol every 3 months.
The first programmable device I owned was an HP scientific calculator, which had a big Enter key, the only key spanning the space of two regular keys on the device. A friend opined that you could tell that it was a real computer and not just a calculator by the presence of that key. It wasn’t true though, the Enter key was there for the HP’s RPN operation and wasn’t otherwise relevant to its programmability.
To me, "return" implies a "go back" action (like "backspace"), which is the opposite of "enter", so naming the key the latter makes more sense. Plenty of TUIs used the arrow keys, Backspace, and Enter for navigation.
Also, the text is nicely readable but none of the images are viewable.
It was one of the things I found amusing my first time using OS X after growing up on Windows. Enter would “enter” a folder or execute a program, while Return in Finder starts renaming the file.
As I understand it, "return" is a shorthand for "carriage return" - as on typewriters, going to a new line meant returning the carriage to its original (start of line) position.
Carriage return moved the paper (on typewriters before the IBM Ball) and moved the print head (the "ball" on an IBM typewriter, or the actual print head on TTYs and DECWriter equivalents) back to column 0.
Line Feed moved the paper up one line, Form Feed moved the paper up by a "form length" or, in the case of chain printers, to the particular position on the chain that was synchronized with the perforations on the paper itself.
The carriage return physical device on the typewriter combined moving the carriage (which could be done by hand) and the rolling of the paper up one line (which could also be done by hand) into one convenient motion.
Going to a new line is "line feed", hence the combo CR/LF.
I believe that it also has to do with the fact that at the time there no ‘screens’, only teletypers. So a new line is “return the carriage to the start” and “feed another line” (of paper) into the printer.
Yeah, it kinda blew my mind when I figured out that DOS was actually correct in that way, and unix was 'cheating' by magically inserting CR into the terminal codes.
You’re “returning” whatever text you typed to the program accepting input.
That doesn't quite fit the regular usage of the word. When someone asks you a question, you don't "return", but rather "respond" or "reply" or perhaps "submit" your response.
Some people will "revert", which doesn't help matters much either.
I remember back in the day I had a demo disc where one of the installers (I think it was Theme Park?) had a prompt of "Press return to quit, press enter to continue". And that confused single-digit-years me for a surprising amount of time, as there wasn't, to my mind, a real difference between the two keys.
Even then I assume it was really a troll as much as anything else.
Perhaps a confused translation of escape/enter happening there? I don't think there's many (if any) PCs with both a return key and an enter key.
My experience is with IBM AT and OS 2 which had a Return and a numpad with an Enter. The AT and Model M keyboard at least were part of a very popular and influential generation or two of "PC".
https://en.wikipedia.org/wiki/Model_M_keyboard
EDIT: Holy cow, those Model M pictures are so nostalgic.
Older (pre-1980 or so?) Swedish texts call it vagnretur. Literally a wagon (or carriage; Swedish has only a single word for those things) return. Guess English picked up the word carriage from French at some point and that word ended up being used for carriage return rather that wagon return that would have made as much sense to me, but that might sound weird to native speakers.
Why would wagon return make sense? I don’t see the connection. A carriage is something that holds things for transport. A wagon is specifically the wheeled thing that is pulled along. Typewriters aren’t wheeled transports.
It makes sense because it's the same word in Swedish, the distinction doesn't exist.
A carriage is a wagon that transports people, not "things", a carriage are also usually wheeled, just like wagons.
In this case, one reason why "wagon return" might have made more sense is because there is a wagon that holds the platen of the typewriter.
Carriage is another word for wagon (german Wagen, swedish vagn)
When the essay says "a literal tooth", does it really mean a literal calcium tooth from some animal's mouth?
There was a metal tooth that the shift lock engaged on the shift key below it, effectively "locking" the key carriage in place in the "shifted" position (caps lock for alphabetic characters, the "special" characters for the numerics).
To release it, you either pressed the shift key down, or pressed the shift lock again to "unlock" the shift.
No animals were harmed by the implementation of the tooth :)
No those would be "literal canines", i.e. grammatical assistance dogs.
Technically the difference is clear. Return is for character based protocols, teletypes, ttys, VT100, ssh and the like.
Enter is for IBM 3278 style where a "screenful" or form of inputs is buffered by the terminal and sent as a whole when the user presses enter or send. Fewer interrupts and context switches at the mainframe. Required even its own ssh client. Return key exists, too, and can be part of the buffered data record.
In practice the enter term leaked into the character-based world.
And of course ASCII separates them, with LF (linefeed, sometimes called newline) and CR (carriage return, or just return) being two separate characters. Windows (and probably some other) text file conventions used CR+LF to end a line, while unix conventions used just LF (hence the alternate name of "newline").
In line printers, a line feed moves the paper forward one line. A carriage return moves the print head back to the start of a line. You can do interesting things by making them separate commands, like bold text (overstrike) or underlining, so they were independent commands for talking to a line printer.
ASCII standardized on a character set containing control codes for line printers, so it included CR and LF separately. It's a bit weird that some terminals changed the semantics of those control codes, but I guess things never stay static in time.
Line printers (also "chain printers" from IBM) used "form feed" to move the paper to the next "form", which for the most part was moving the tractor fed paper to the line after the page perforations.
The printers either kept track of the number of lines printed "so far", or, in the case of a chain printer, there was a literal chain (similar to an engine timing belt) that had a particular location that was supposed to be aligned with the paper perforation.
Standard tractor feed paper had a printable area that was 132 monospaced characters wide (13.2") and 11" high. Tractor feed paper had the holes at a standard distance apart vertically and a standard margin to allow for the tractor holes and an area before printing, so that the paper could also have vertical perforations to remove the tractor feed paper after printing.
Teletypes were 72 characters wide and 0.1" line height and used continuous paper rolls.
FTA: Apple also added Enter to the numeric keypad, although an Enter that almost exclusively did the same thing as Return.
If applications followed the UI guidelines, Enter behaved like Return if enter didn’t make sense in the context and vice versa. Yes, that was mostly (when do you have UI to enter a multi-line text to be processed as a separate unit?) but when it mattered, return started a new line, and enter sent entered text to be processed by the application.
MPW shell was a (?the?) prime example. In its editor, Return started a new line, Enter executed the current selection or, if there was none, line.
My 2013 MBP says `enter` above `return` ... Presumably shift is the modifier (I never use it).
On a current Mac laptop, you can still press fn + return to get the effect of the Enter key.
The only thing I really use this for is renaming files in Finder: select a file and press Enter to edit the filename.
Are there any other apps in which it does something useful nowadays?
On my 16" M1 MacBook Pro both Return and Fn+Return edit the filename... does it work differently on yours?
I have a faint memory of Enter creating a page break rather than a newline on a school Mac when I was a kid. Maybe that was in AppleWorks?
I wouldn’t doubt it, the way some Mac keys are completely unintuitive.
On at least some Macs well into the 2000s, I remember that if you had a dialog with a text field in it, Return would add a new line in the text field, but Enter would _always_ choose the button with the thick black bar around it (typically "OK"). There were also some websites where OmniWeb (remember OmniWeb?) would interpret the Enter key (but not Return) as "click the 'next' link on this page", which was great for paging through webcomic archives and the like.
Good read, I didn't realize how much diversity there was in those buttons. Thought it was just a few different options!
in CR LF, the LF being there to account for timing as its tolerant of the return process still being in progress is genius.
Keys are often replaceable; and we can put our own labels on them.
Why not “Sure”?
Make it so.
Proceed.
Engage.
Take that!
En Garde!
Go!
Blam!
Start your engines!
Yes.
Forward.
Eh, good enough.
If you have an "Internet" keyboard, you already have a "Forward" key.
Allons-y!
Shibbit!
On my phone with 100% text size, I got a hyphen as follows:
“Manual hyphenation was not ad-
vised, either”
It is a very common older model iPhone, so I wonder if they lined that up on purpose. Brilliant, if so. It isn’t a manual hyphen, it just so happens to hit there.
If you want more of these jokes in the structure and flow of the text you should read Gödel Escher Bach.
I got lucky in a different spot:
"Manual hy-
phenation was not advised, either."
I agree. Separate keys would be better.
I wonder if hat word processors would have used a separate Enter (or Go!) for?
I was considering a purchase, seeing as it is such a wealth of information and history. However, there are expletives in chapter titles! That’s a no-no for a collection-worthy book.
The Valley Virgins strike again
Are you 12?
My child is.