38 comments

[ 3.9 ms ] story [ 55.5 ms ] thread
So, what did IBM want to use instead?!?!
A great read, although I'd still like to know what IBM's reasoning for opposing this use of the Tab key was.

Is it because they didn't want Tab to be both an input and a control character? I.e. there are some cases where you can type a Tab into an input field, and there are other cases where you can't, and it's not immediately obvious which ones are which?

All the way in 2026, I would still be sympathetic to this view.

Interesting, I wonder if the "TAB" argument was IBM at the time wanting screen input to work just like they did on mainframes ?

Well before DOS was a thing, the mini I programed on was using Tabs to move between the TUI fields. Once you were happy you would press RETURN to process the data. At the time, seems IBM was trying to avoid doing anything similar to any of its competition.

(comment deleted)
I find this story odd because IBM was consistent with their keyboard nomenclature across multiple products, and the 3270 series mainframe terminals used the Tab key, located in the same place where you would find a tab key on a modern keyboard, to move the cursor to the next field.

https://www.bitsavers.org/pdf/ibm/3278/GA27-2890-4_3278_Disp... (Page 73 of the PDF)

As an aside, it's worth noting that moving between fields was important enough on IBM terminals that they had a dedicated "back tab" key located on the opposite end of the keyboard to the tab key. On the original IBM PC, they decided to combine both functions into a single key. As a result, the tab key on the classic PC keyboard features the symbols for both forwards tab and back tab on the same key, the back tab symbol being on top to indicate that you need to hold down shift to use that function.

EDIT: The 5250 series terminals used the terms "Field Advance" and "Field Backspace" instead of Tab and Back Tab, but otherwise they used the same symbol on the keys, and the keys were located in roughly the same position as the 3270 series. Reference: https://www.bitsavers.org/pdf/ibm/5291/GA21-9409-0_5291_Disp...

I am trying to think of other older examples, but I know I have seen it before Workspaces/Chromebook:

The upstart adopts all the keyboard shortcuts of the dominant player. Then the existing userbase is comfortable... compatible, with the new and different software.

Then, slowly but surely, new novel shortcuts are introduced and you gradually find the “compatible” ones vanishing or conflicting or just glitched, until one day you’re no longer capable of using Apple or Word or Netscape or Excel.

I propose that IBM saw that coming, and fought against a future where IBM-trained users easily adopted someone else’s apps.

As someone who prefers tabs (I'm not looking to argue), I once asked Brendan Eich on Twitter why he prefers spaces. His answer was more thoughtful than I'd expected.

The tab key itself is hijacked by modern OS/UI behavior. It makes it complicated to actually type literal tab characters in certain contexts, particularly in the browser.

I still prefer tabs (and I'm a Go developer), but he is absolutely correct about that being a pain in the butt. For instance, try getting a tab character into the text area on Hacker News

I've ran into an elusive bug in VSCode where sometimes pressing tag moves focus to the next focusable instead of adding a tab/spaces. It's infuriating, and the only solution is restarting VSCode.
Interesting to think how Microsoft is today's Ibm having adopted that beurocratic culture and deep hierarchical org.
The latest in a long line of articles where "Raymond Chen" is my first thought before even opening it, just based on the title

Great read

This article seems to just be a dig at IBM without bringing any receipts or adding any substance. "A colleague told me that they said..."

Honestly, why should I even believe it?

The thing I find funny here is that MicroSoft in the 80s and early 90s was a scrappy bunch of hackers trying to get something out the door. But over time they've sort of become IBM. Based on the way things have progressed...

Microsoft has become IBM. IBM has become CA. Apple has become Microsoft. Oracle has become DEC (if DEC had a few more lawyers.) Amazon has become Oracle.

I have such a long history of thinking of Microsoft as the Big Bad in tech, that it's funny to think of them as the young upstart that's just coming into their own and standing up to the big guys for the first time. If it was early enough for folks to be arguing about what keys to use for functions, it must have been 1985, which means Microsoft was just coming to the end of their time needing to satisfy IBM in order to survive/thrive.

They still depended on IBM to some degree. If IBM stopped shipping Microsoft products on their PCs, it would hurt Microsoft quite a lot. But, clones had just begun to break out. Compaq and a few dozen other clone makers were exploding in popularity. I imagine Gates must have seen their orders from clone makers growing exponentially, and much faster than sales to IBM, and realized they didn't really have to kowtow to IBM, anymore.

A real shame about OS/2, though.

I think we should connect game controllers to all machines so the arrow buttons move you between fields, the 'A' key takes you up a level (in hierarchical menus), the 'B' key takes you into a subordinate menu. So to move between fields, you type some data, then take your hands off the keyboard, pick up the game controller, hit the right or left buttons, then put your hands back on the keyboard. It should make you SO much more productive!
the Microsofties viewing their IBM colleagues as mired in pointless bureaucracy and the IBM folks viewing Microsofties as undisciplined hackers.

I work at MSFT, this made me chuckle hard. Microsoft must have been a very different company back then, because now I find myself and my colleagues mired in pointless bureaucracy via endless meetings, AI mandates, promotion theatre and the list goes on. I am decently paid but the bureaucracy is soul destroying.

I've had to work with oracle people this very year and had the same style of interactions, funnily enough. They required constant input from higher ups in our mostly flat org, no matter how many times an annoyed VP had to email a "I agree with whatever my people say".
I find keyboards fascinating because they have many anachronistic elements and design flaws, yet nobody outside of elitist mechanical keyboard circles seems to be willing to fix them. Everybody seems to just think "whatever, gotta live with it." Why do they still have an extra large Caps Lock key in such a prominent position? What does ScrLk key on my keyboard do? Why is there an Ins key when practically every text edit field is in insert mode anyway? How often do you actually use the Pause key and what does it do?
> Why do they still have an extra large Caps Lock key in such a prominent position?

Because sometimes you still do want to insert text with all caps, for example as part of an ID. Also Caps Lock as opposed to Shift Look is quite useful when you want to insert caps and numbers quickly, again as part of IDs.

> What does ScrLk key on my keyboard do?

It switches between the cursor or scroll wheel or the mouse moving the cursor or the viewport/document. It's quite useful. Firefox e.g. implements this functionality under F7.

> Why is there an Ins key when practically every text edit field is in insert mode anyway?

To switch, because sometimes you do want replacement mode. Also it is useful for the Ctrl-/Shift-Ins, which is the original CUA key for what people now know as Ctrl-C/V. It is quite useful for when the latter means something else.

> How often do you actually use the Pause key and what does it do?

It used to still work for a while in Linux, but sadly they removed it. Also it is still useful for the CTRL-ALT SysRQ, Pause sequence to advise the OS, when nothing else works, or you don't want to shutdown properly. Also it feels quite powerful to tell the computer to be off, and it basically immediately being off.

> yet nobody outside of elitist mechanical keyboard circles seems to be willing to fix them.

Mostly not to destroy people's muscle memory, I think.

People have gotten used to, and expect certain behaviour from OS+apps. Futz with that, and users become annoyed, frustrated, or ditch an otherwise fine piece of software.

In other words: history / inertia.

Also somewhat related to Microsoft and IBM:

"I may have invented it, but I think Bill made it famous." - David Bradley (IBM), creator of the Ctrl+Alt+Del shortcut key.

CUA 87 (released in 1987) used the tab key to advance between fields unless there was a dedicated Next Field key. CUA 89 was likewise.
IBM is also the reason MS-DOS doesn't support "-" for options and why it doesn't have devices in the "\DEV" directory on all drives. Support for "/" as path separator survived though!

Many MS folks used Xenix and were fans of Unix and very early DOS had SWITCHCHAR and AVAILDEV config.sys options for these things. But AFAIK IBM threw an absolute fit about it and forced their removal.

The DEV issue is specially annoying because DOS 1 didn't have directories - thus it could not have been much of a compatibility problem. But instead DOS/Windows is stuck being unable to support creating files named "CON" or "COM1" because it assumes device files exist in all directories.

I find admirable how every era was filled with fights on just about every detail. Keys included, layout, shape, meaning. And now nobody pays attention that any of this at all. Very strange and funny at the same time.
Did you not catch the debate about Tahoe's glassmorphism?
IBM was legendarily over-managed. This is second-hand but a guy I used to work with told a story of when he interned for a summer at IBM in London during the mid-90s doing what would now be called a QA engineering. At that time everyone wore suits to work but the culture was changing so the interns put in a request to be allowed casual Fridays. Bear in mind that they were locked in a back room somewhere without any customer interaction so they didn't think it was a big deal.

Months later, just before the end of the internship, they received a reply. Their manager had forwarded their request up the chain of command and the email had the full quoted history. Their request had been bumped up 4 successive layers in the London office, then across to the US headquarters where it continued its upwards trajectory, finally alighting on the desk of a VP who, after thanking them for bring the issue to his attention, rendered an carefully considered opinion.

The whole process had taken weeks, presumably as each person in the hierarchy debated whether they had the authority to tackle such a weighty issue.

The email had then been inexplicably bounced back DOWN the chain one link at a time, back across the Atlantic Ocean, and through the local office, down to the suit-bound interns, again weeks later, who by this stage only had days left at the internship.

The answer was no.

Good story but in fairness the "no" decision was usable for the next set of interns.
A coworker of mine got his first job at IBM after graduating from what was effectively an early version of a tech trade school when tech trade schools were not common.

He showed up to work at an IBM hardware factory in the US and as soon as everyone walked in the door they was called into a meeting that day. IBM announced they were all laid off immediately. IBM having almost no experience with layoffs to that point and still styling itself as a company you go to work at for life seemed to be legitimately unsure what to do.

So they gave everyone minimum 1 years pay, benefits, IBM actually assigned HR people who were VERY involved in trying to place people other places and paid many to relocate them, and what amounted to a 4 year scholarship too if they wanted to use it.

Dude had been there less than an hour and decided to just go back to school for 4 years ...