Remix.run Logo
ch_123 9 hours ago

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...

Animats 9 hours ago | parent | next [-]

Here's a real IBM 3270 keyboard.[1] Note the "Next field" key on the left, and the matching "Previous field" key on the right.

The IBM 3270 was a device for filling up forms. The mainframe sent the terminal a form with blanks, and the terminal let the user fill in the blanks. The terminal hardware prevented the user from overwriting the static parts of the form, and could apply some other form constraints, such as numeric fields. That was all done by the terminal. When the form was filled in, the user pressed ENTER, and the completed form was sent to the mainframe as one transaction. This approach let one mainframe service huge numbers of terminals. The user never experienced delays while typing and could type at full speed, often without looking.

PCs didn't have that usage model. The PC crowd was thinking "typewriter". One of the first terminals for home computers was called the "TV Typewriter".

Web forms do have that model, but with less consistency.

[1] https://sharktastica.co.uk/resources/images/model_bs/themk_1...

ch_123 8 hours ago | parent | next [-]

Nitpick: The terminology used by IBM on the 3270 family (including the 3277 whose keyboard you shared) was "Tab" and "Back tab", not "Next field" and "Previous field".

robocat 6 hours ago | parent [-]

Yes: Page 30 of The Operator's Guide for IBM 3270 Information Display Systems calls it a Tab key.

   Tab also has typamatic capability that allows you to move the cursor quickly from field to field.

  The Back Tab key moves the cursor back to the first character position in an input field. If the cursor is already in the first character position of an input field, and if you press the Back Tab key, the cursor will then move back to the first character position of the preceding input field.
So my guess is that the cursor defaults to being at the start of a field as you navigate, so Tab and Back Tab work as expected. But if you're editing a field and have moved the cursor within the field then Back Tab acts differently.

https://usermanual.wiki/Document/GA2727421OperatorsGuideforI...

jasomill 4 hours ago | parent [-]

This is correct. It's also worth pointing out that the 3270 defaults to overwrite rather than insert mode, and has an "Erase EOF" key that deletes all text from the cursor position to end-of-field.

jasomill 4 hours ago | parent | prev | next [-]

My favorite feature of 3270/5250-style keyboard layouts is the separate carriage return and Enter keys, allowing for multiline text entry without special handling to avoid conflicts with the command to signify that input is complete.

With only a single combined Enter/Return key, it's hard to remember in any given context whether Shift+Enter or Control+Enter will open up a new line instead of immediately sending a message, dismissing a dialog box, completing input into a particular spreadsheet cell, editable filename, text object in a drawing program, etc., or whether I need to copy/paste a line break from another application because no such shortcut exists at all.

rmunn an hour ago | parent [-]

The software I've used has been pretty consistent about Shift+Enter meaning "new line without triggering the Enter key action" and Ctrl+Enter meaning "action" (send the message, go to the next field, etc). The behavior of the Enter key varies from program to program, but I have yet to find a program where Shift+Enter triggered an action while Ctrl+Enter did not. Which software are you using where Shift+Enter triggers an action?

(I do agree that it's hard to remember what Enter is going to do, of course. It's just Shift+Enter where my experience differs from yours).

shrubble 6 hours ago | parent | prev | next [-]

Note as well that a screenful of user-entered checked/constrained text, meant for some form of database query or insert, meant just one interrupt to the mainframe CPU; and all the info was there in an easy to parse format. Very low use of resources.

jll29 8 hours ago | parent | prev | next [-]

The SAP application model is such a form-based model (no surprise given that all five co-founders of SAP were ex-IBM consultants that were fired for moonlighting - specifically, for writing a payroll software for chemical giant ICI in assembler on ICI's mainframe in an extended night action...).

SAP call their forms "dynpros" (dynamic programms), and the reslting interactive mode of processing "realtime/dialog programming" as opposed to "batch processing". This all looked very IBM 3270-"inspired" (and so was the SAP logo made up of IBM blue with the well-known stripes...).

dylan604 8 hours ago | parent | prev [-]

It looks really strange to have 3 keys right next to each other all pointed in the same direction.

As another head scratcher, what is the shift-1 symbol? The exclamation point appears to be the shift next to one of the 3 left arrow keys, but I'm also unfamiliar with the regular unshifted key. Anyone familiar with these?

ch_123 7 hours ago | parent [-]

It's the | symbol.

On later generations of IBM terminal keyboard, you'll see | on the shift-1 position, and a separate key with the broken-bar (¦) symbol. For example, on this keyboard, the broken bar is below the backspace key along with the \ character. https://sharktastica.co.uk/image?id=qhTU8QvD

The reason for the two different types of bar/pipe characters, and why the original IBM PC keyboards only had the broken bar on the keyboard, involves a particularly arcane footnote of history relating to supporting the PL/I language on ASCII terminals: https://www.os2museum.com/wp/a-wunderbar-story/

dylan604 7 hours ago | parent [-]

I had never come across the broken bar before. I feel sorry for those that had to suffer these keys. The keyboard keys themselves look like they have about a mile of travel which was probably exhausting as well. I learned to type on clackity clackity arm typewriters, and those keys were I assumed designed by a masochist. These look even worse

ch_123 6 hours ago | parent [-]

The early 3270 keyboards (and the other IBM keyboards from the mid 70s up to the early 80s) are some of the most pleasant keyboards I've typed on in terms of key weighting and tactile feel. The length of travel is comparable to modern mechanical keyboards. The downside is how tall and aggressively angled the keyboards are, which are very far from modern ergonomic standards.

kps 6 hours ago | parent [-]

Those beam springs had the second-best feel ever, after the Selectric. Then the Model F cost-reduced (and thickness-reduced) it, and the Model M further.

> The downside is how tall and aggressively angled the keyboards are, which are very far from modern ergonomic standards.

Like a typewriter. And like a typewriter, you were expected to have them on suitable furniture so the keytops were at the right height.

ChuckMcM 9 hours ago | parent | prev | next [-]

Having worked at IBM, I would guess that using the tab key in this way was part of a patent they were pursuing and Microsoft's use would show this to be 'obvious' and thus not patentable. But that is just a guess.

In the 80's IBM had a whole class of high level technical people called "Systems Engineers" whose entire job description was to opine on the merits of any given system. Not write systems, not debug them, and certainly not to explain them, it was simply to opine "you're doing it wrong."

MoonWalk 9 hours ago | parent | next [-]

Microsoft is suffering from the lack of such a group today; they're definitely doing it wrong, where "it" is pretty much everything... except pissing off users.

coredog64 8 hours ago | parent [-]

Microsoft could implement the "Am I doing it wrong?" check via the shell script `/bin/true`

Henchman21 8 hours ago | parent [-]

They’d need to install WSL2 first though!

Nition 7 hours ago | parent | next [-]

It's a Linux subsystem for Windows so we'll call it Windows Subsystem For Linux.

wvenable 6 hours ago | parent | next [-]

For trademark safety, this is the correct approach. You can say "Blah for XXX" and that's fine but if you say "XXX blah" then you can get into trouble.

Nition 4 hours ago | parent [-]

Is this really true, or is it just something people have repeated enough times like 'nuclear Ghandi'?

I mainly ask because Microsoft has another product called Linux Integration Services: https://www.microsoft.com/en-us/download/details.aspx?id=551...

wvenable 4 hours ago | parent [-]

It's not a rule, it's just convention. Trademark law is about whether there is confusion about who made the product but not specific wording. Using "Blah For XXX" wording just makes it clearer.

"Tool for Windows" vs "Windows Tool"

The latter sounds much more like it could come from Microsoft. People repeat this because it avoids this confusion but it is not mandatory. A few projects on Github have had to be renamed because they've been challenged and the accepted solution from the trademark holder has has been to switch it around and become "for XXX".

jasomill 3 hours ago | parent | next [-]

In the present context, I'm reminded of IBM's "OS/2 for Windows", which, while actually a reduced-price version of OS/2 2.1 that used a customer's existing copy of Windows 3.1 to avoid the cost of licensing the Windows 3.1 components IBM shipped with OS/2 to support Windows compatibility, was also a marketing ploy to reposition OS/2 as a Windows enhancement rather than a replacement OS (which, to be fair, is not as misleading as it may sound, since OS/2 2.1, unlike Windows 3.1, is capable of memory protection and preemptive multitasking between Windows applications).

Nition 4 hours ago | parent | prev [-]

That makes sense, although in that case personally I would have named it Windows Linux Subsystem.

ux266478 5 hours ago | parent | prev | next [-]

To solve this matter, I propose renaming it to WNL:

  WSL is not Linux
jasomill 3 hours ago | parent [-]

For a recursive acronym, I prefer LiNT, officially LiNT is NT, and unofficially, either Linux in NT or Linux is Not There, with the official and second unofficial definitions reflecting the WSL 1 architecture where WSL, like Win32, is a subsystem layered on top of the NT kernel, and doesn't rely on any Linux kernel code.

cybercatgurrl 3 hours ago | parent | prev | next [-]

it’s a windows product therefore windows comes first in the name. at least that’s my recollection of the reason why i’ve seen before

colejohnson66 6 hours ago | parent | prev [-]

Wasn't that due to trademarks?

rbanffy 8 hours ago | parent | prev [-]

A TRUE: device?

Henchman21 7 hours ago | parent [-]

As long as I can plug in a serial console and it endlessly spits out 1s!

rbanffy 8 hours ago | parent | prev | next [-]

> I would guess that using the tab key in this way was part of a patent they were pursuing and Microsoft's use would show this to be 'obvious' and thus not patentable.

IBM insisting it not to be tab wouldn’t make sense. Microsoft was working for them and the programs should adhere to the CUA (Common User Access) standard.

andrewf 7 hours ago | parent [-]

OS/2 1.0 and the first edition of the CUA were both released in December 1987 according to Wikipedia; Raymond's story isn't dated but could've happened before this. (If I had to make a wild guess, I could imagine this request was a side effect of some internal IBM battle about what the CUA should dictate).

rbanffy 5 hours ago | parent [-]

I imagine this is mostly about form-based applications, GUI or not, before the Microsoft pulled the rug from under IBM.

thaumasiotes 9 hours ago | parent | prev | next [-]

> I would guess that using the tab key in this way was part of a patent they were pursuing and Microsoft's use would show this to be 'obvious' and thus not patentable.

Something that's bothered me about user-facing patents:

Let's assume that the idea of using a keyboard key to move between input fields in a software form is not obvious, and in fact is a brilliant stroke of genius the likes of which the world is not likely to see again. If that one guy hadn't been born, we would have gone thousands of years with no method, keyboard-based, mouse-based, or otherwise, of moving from one input field to another input field. Every piece of software would use nonconfigurable timers, and you'd just have to hope you could type fast enough.

I don't see what the hypothetical benefit of extending patent protection to this brilliant idea is supposed to be.

Say you're the company who comes up with the idea. You can benefit by including it in your product, where all your users can see it. In other words, the benefit you get from coming up with this idea is that you can publish it for the world to see, and that's the only way you can benefit from it. A usability feature that your users cannot use or know about doesn't increase usability.

Even though the idea isn't obvious, the implementation is. If you disclose your brilliant idea, everyone will copy it and your advantage in the marketplace will be transitory.

So... what is the purpose of giving you a patent? That cripples the marketplace, but it fails to realize the benefit of patents, publication. Publication necessarily had to happen anyway.

pavlov 8 hours ago | parent | next [-]

> “a brilliant stroke of genius the likes of which the world is not likely to see again. If that one guy hadn't been born, we would have gone thousands of years with no method”

But that’s not the criteria for granting a patent. It doesn’t have to be a stroke of genius. It can be something that many people could invent at the particular moment of the filing (as evidenced by many cases of near-simultaneous patent filings, like Daimler and Benz competing for the ICE in the 1880s). It just needs to be demonstrably novel.

I’m not saying tabbing back and forth through dialog fields qualifies, but then again it’s hard to place oneself in 1980.

fragmede 5 hours ago | parent [-]

The arrow keys, and enter, are the obvious ones to use, but you have to move off of home row to hit them. That's the "non-obvious" bit of using the tab key to navigate fields. Back when that level of usability was important.

somat 7 hours ago | parent | prev | next [-]

Err... wasn't your post a perfect example of why patents exist?

The concept probably has a real name, I call it first mover disadvantage. It is much easier to copy a mechanism than to invent it. So why even try? Every thing you have to spend real effort to invent is trivially copied the instant you try to sell it. And them copying it don't have to bear the nearly the R&D expenses you did. so it is trivial for them to sell this mechanism for less meaning you don't even get a fair slice of the pie.

So to try and limit this imbalance we invent a legal fiction, ownership, not of a physical thing, but the way it works. Not forever, but for 20 years you get ownership over those works.

Patents do have their problems, But I think the core idea is sound, create a registry of mechinisms, use this to provide economic protection to the inventor.

thaumasiotes 6 hours ago | parent [-]

> Err... wasn't your post a perfect example of why patents exist?

Why? In this scenario, what would happen with a patent that wouldn't happen without a patent?

IcyWindows 3 hours ago | parent [-]

I worked on a software project make years ago. We spent a lot of money over months doing users studies to figure out the best UI for a narrow demographic.

The final UI was simple and intuitive, but it took a lot of money figuring it out.

I don't think the money would have been spent if our competition could immediately copy what we figured out.

Customers did benefit then, and now, 20 years later, anyone can do it, and humanity is little better off than if no research was done.

thaumasiotes 2 hours ago | parent [-]

So... in this scenario, what would happen with a patent that wouldn't happen without a patent?

toast0 8 hours ago | parent | prev | next [-]

> A usability feature that your users cannot use or know about doesn't increase usability.

Cannot is maybe doing a lot there. There's plenty of usability features that aren't really obvious or apparent unless you look very closely. Ex: pinball machines have timed shots, but there's almost always a grace period so if you contact the ball with your flipper around when the timer hits zero and it makes the shot, chances are you'll get credit for it even though the timer expired. That's a usability feature most users won't ever notice. At WhatsApp, I would never send an S40 user a verification code where the 4th digit was 8, because if you got a text message with 123-890, s40 would turn -8 into an 8th note emoji; until today, probably 3 people knew that ... but it dramatically improved usability.

> Even though the idea isn't obvious, the implementation is. If you disclose your brilliant idea, everyone will copy it and your advantage in the marketplace will be transitory.

> So... what is the purpose of giving you a patent? That cripples the marketplace, but it fails to realize the benefit of patents, publication. Publication necessarily had to happen anyway.

If I had gotten a patent on the 'avoid -8 in verification codes', then the technique would have been public for everyone to see. So publication for exclusivity / forced licensing is an exchange of value between society and the inventor. Of course, avoid -8 is pretty obvious, when someone testing the s40 client complains about getting an 8th note in their verification code message, you make a quick tweak to code selection to avoid sending those.

For an invention that must be disclosed to be used, society isn't really getting anything in return for exclusivity. Maybe promotion of progress, theoretically, I guess, in that whoever thinks of it first gets paid; leading more people to think about things?

jjmarr 7 hours ago | parent [-]

You're missing the historical context. Prior to patents, inventions would commercialized as magic tricks and the mechanisms hidden. Then the inventor died and the secrets were lost.

For example, Cornelis Drebbel air conditioned Westminster Abbey in 1620. King James I (of the Bible) thought it was a cool party trick. But there was little ecosystem to commercialize and Drebbel moved on with his life, trying to sell other products with temperature controlled feedback loops + a submarine. Then he died.

The only commercialized invention of his was creating a dye that was redder than others. His son-in-law kept that a family secret and focused on selling this improved dye throughout Europe, since that didn't require revealing the secret.

The rational move was to give up on a multitrillion dollar HVAC industry to sell redder dye, since the second could be a trade secret.

peterfirefly 3 hours ago | parent | next [-]

> + a submarine

We still don't know how he solved the problem of carbon dioxide build up. We know he solved it, though!

xp84 6 hours ago | parent | prev [-]

Comments like this are the absolute best part of HN. Thank you for sharing this.

jasomill 18 minutes ago | parent [-]

Likewise.

And after reading the Wikipedia article on Drebbel, how have I never heard of this guy?

I'm particularly curious how the Royal Navy failed to realize the value of the submarine.

Reading over the article on the history of the torpedo, it sounds like early attempts to weaponize, by Drebbel and others, were unsuccessful.

Even so — bearing in mind that this a undoubtably a reflection of my own bias as a child of the Cold War raised in the shadow of the largest military-industrial complex the world has ever known — I can't help but marvel at the fact that no spare-no-expenses crash development programs arose to operationalize effective submarine-based warfare by the naval powers of the time.

kevin_thibedeau 7 hours ago | parent | prev | next [-]

> move between input fields in a software form

IBMs earliest block mode terminals with field entry, including the 3270, predate the microprocessor. They were fully implemented with fixed hardware control.

WalterBright 8 hours ago | parent | prev | next [-]

IBM also infamously patented the XOR cursor.

philipallstar 8 hours ago | parent | prev | next [-]

Presumably it's to give you an advantage for putting in the work to develop it for a period of time.

eastbound 7 hours ago | parent | prev | next [-]

> the benefit you get from coming up with this idea is that you can publish it for the world to see, and that's the only way you can benefit from it

That’s your opinion, but it’s not the spirit of the law. I’m personally fully against Intellectual Property, including for movies and music, for reasons that are obvious (public money is being spent aimlessly trying to prevent two private individuals from copying things that are copied by their very nature of being published - or trying to prevent people from using ideas that are contagious - what next, put a copyright on political ideas? on dance moves? on beautiful colors?) but that’s not the law.

> we would have gone thousands of years with no method

There are other methods: The 4 arrows. The tab method is much more efficient and easy to implement, but we would have gone with the 4-arrows-to-navigate-fields method.

Onavo 8 hours ago | parent | prev [-]

You can say the same about swipe to unlock and that had been litigated to death.

thaumasiotes 8 hours ago | parent [-]

I did say the same about swipe-to-unlock:

>> Something that's bothered me about user-facing patents

FartinMowler 8 hours ago | parent | prev [-]

What?!?! I was an IBM Systems Engineer in the late 1980s / early 1990s and that was nothing like my job description.

ChuckMcM 8 hours ago | parent [-]

Do you remember what the official definition was? I admit I was working at an internship in FEIS (Field Engineering Information Services) in Colorado and people with that title would occasionally yo-yo in to a meeting make some comment that didn't apply and then yo-yo out again. None of the engineers in the organization had anything but disdain for them. If you were late 80's, I was interning in the late 70's so its entirely possible that they restructured the job responsibilities somewhat. But again I'd really love to see what was the official job description from the time.

mrandish 8 hours ago | parent | prev | next [-]

> IBM was consistent with their keyboard nomenclature across multiple products, and the 3270 series mainframe terminals used the Tab key

While it seems odd in light of IBM's usual adherence to corporate norms across business units, having read a couple different books on the origins of the PC at IBM, it may be related to the entire PC unit in Boca being an extraordinary aberration outside the norm for IBM. Despite seeming hopelessly corporate to the Microsoft team, the Boca IBMers were considered a "Rebel Unit" inside IBM - when they were considered at all, since the vast majority of IBM wasn't even aware of it.

Due to being started virtually overnight (in IBM timescales), running incredibly fast and only existing thanks to Thomas Watson, Jr. himself overruling his lieutenants to approve such a "skunk works", Boca didn't have nearly the level of oversight, coordination or control as an effort that size normally would. In the early days Boca ran largely outside normal reporting channels and when they'd try to source tech or components from other parts of IBM, had to sometimes clarify that they were in fact part of IBM.

sedatk 9 hours ago | parent | prev | next [-]

From what I remember, there were two "Enter/Return" keys on IBM 3270 terminals. One was the regular "Return" key we have today, which just advanced to the next field, and didn't submit the form. There was also another "Enter" key where the Right Ctrl key is today, and that submitted the form. So, I presume, instead of being against Tab key, IBM might be against "Return" to be the form submit key as people who use 3270 would expect it to advance to the next field.

And that was true for many DOS programs. Pressing Return would just go to the next field, not submit the form. That was one of the things that needed some getting used to on Windows.

ch_123 8 hours ago | parent [-]

Your memory is correct, and it's interesting to note that on the IBM terminal keyboards, the Enter key was marked "Enter", and the return/new line key was marked "↵". On the classic IBM PC keyboards such as the Model M, the Enter key is marked "↵ Enter". I believe IBM chose this to convey that the Enter key on the PC was both an "Enter" _and_ "Return" key in one. As you say though - individual applications got to chose what that meant in practice, leading to inconsistent behavior.

logickkk1 8 hours ago | parent | prev | next [-]

Funnily enough, IBM had already published this. CUA explicitly says tab and backtab move between fields.

so they spent seven layers of management escalating against their own standard: https://archive.org/details/ibmsj2703E/page/n13/mode/2up

mrandish 7 hours ago | parent [-]

Not being familiar with the term CUA, I looked it up and TIL something (https://en.wikipedia.org/wiki/IBM_Common_User_Access). Since the doc you linked is dated 1988 and CUA was a brand new thing circa OS/2 (at least in traditional IBM timescales), the apparent inconsistency might be down to the massive scale of IBM in those days and organizational propagation delay.

Another factor could be still-reverberating echoes of the likely political battles around something as broad and far-reaching as CUA. I can only imagine the quiet boardroom battles won and lost fighting over CUA between different factions across all of IBM's kingdoms, divisions and principalities.

MoonWalk 9 hours ago | parent | prev | next [-]

Also conspicuously missing from the story is what key IBM DID want to use. I mean... that's the first question you'd ask!

Lame.

yndoendo 8 hours ago | parent | next [-]

It looks like it they wanted to use their existing special field management keys (field advance and field backspace) with tab being a different user experience. [0] Document does even use the word "Tab". "Field Backspace" seems to duplicate "Home" key usage under some conditions.

To be fair, Microsoft & Bill Gates are bad at quality user experience. "Ctrl+F" differs through their applications.

[0] https://archive.org/details/bitsavers_ibm525xGA2onDisplaySys...

*Edited.

The more I think of it the current TAB (SHIFT+TAB) key should of been used for entry navigation navigation only while the white space tab should of been something such as "SHIFT+SPACE".

MoonWalk 6 hours ago | parent [-]

"To be fair, Microsoft & Bill Gates are bad at quality user experience."

In some ways. Gates deserves never-ending enmity for plaguing us with backslashes in paths. But in others, Microsoft advanced the state of UI and UX more than anyone else in the '90s.

"Would of?"

rbanffy 6 hours ago | parent [-]

> Microsoft advanced the state of UI and UX more than anyone else in the '90s.

There is no universe where that is true.

badsectoracula 5 hours ago | parent [-]

There is: this one.

Win95's UI was so incredibly influential that stuff introduced by it are still around to this day.

Tempest1981 9 hours ago | parent | prev [-]

Ctrl-F6 ?

OhMeadhbh 9 hours ago | parent [-]

Shift Ctrl F6

SirFatty 9 hours ago | parent | prev [-]

And this is a great example of why I read the comments on HN stories... thanks for the info!

RIP /.