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.
In the late 90s I moved from one country to another. As a part of a job hunt I applied to the local IBM office, because I had some OS/2 mileage. Then promptly got three offers from other places, accepted one and completely forgot about the IBM application.
Not 8 (eight) months later I got a call from their HR saying they'd like to interview me next Thursday. And then they got completely flabergasted when I said I was no longer interested. Don't know what they were smoking, but they were exceptionally full of themselves... while not even offering a good pay.
When I went to a grad jobs fair in 1998 or so IBM were offering at least 25% less than any other company I spoke to, and 40% less than the best paying roles.
The only company they were on par with was Arthur Andersen, who were offering around £15k for trainee accountant roles, but you know how fast those salaries go up once you’re qualified and start to progress.
My dad was am IBM lifer, when they said they could wear suits that weren't black he wore a blue suit and his boss asked him if he rode the bus to work.
I interned at an IBM R&D site in Winchester (UK) for a year in 1988-89 and none of us interns wore suits, or even ties. I don't recall many of the f/t IBMers doing so either. It was pretty informal really.
(Not disputing your story, just providing a different perspective.)
I work with a lot of government departments. The "policy" is not a thing that can enforce itself, and often barely exists at all. Rarely is it actually written down!
Mostly these things boil down to a vetocracy where all managers in some hierarch must say 'yes', otherwise a single 'no' is a final 'no'.
Hence, the trick is not to ask because the more people are involved the higher the chance that one of them will say 'no'.
The manager in that office you worked in most likely made a decision themselves and didn't punt it up the hierarchy, and hence nobody told him 'no'.
The corollary to that is a clever bureaucrat can kill a proposal simply by inviting many decision makers to a meeting.
PS: It's hilarious to see this effect play out as a consultant, because often I deal with different "randomly" selected subsets of the same organisation and the difference in their day-to-day can be stark. It just boils down to which managers take individual responsibility, and which regularly beg for permission to do their job. "No."
> The corollary to that is a clever bureaucrat can kill a proposal simply by inviting many decision makers to a meeting.
Not particularly clever. My experience is that low-level team/line managers typically already have the authority to say "no" to their own people; but they don't want to take the blame for saying "no" (they want their team to like them!), so by punting the decision up the chain, they're effectively punting the blame for saying no up the chain (under the expectation that anything so punted will get a "no" response.)
Some this backfires, though: everyone above them says yes, and so they have to be the one to say no. (They may end up lying if asked, vaguely saying "someone important" said no.)
Sometimes this backfires badly: not only does everyone above them say yes, but someone somewhere up the chain loves the idea, and turns it into an "initiative" — i.e. something the line-level manager is now locked into doing.
I asked to be excepted from a contract condition giving IBM first pick on any IP I develop in my own time.
Keep in mind, I was working in one of their technical support call centres. I had no access to IBM proprietary information, I had no role in developing it, I was a complete non risk on this front. I had more access to customer systems, no access to RED or BLUE networks, just an IBM lotus notes account I could use to slowly download information from HR.
Everyone I could physically speak to looked at my request and went, hey that's a really reasonable request.
It took 6 weeks for the first no to come back, my direct manager, whose stats I was apparently holding in place, apparently tried to intercede, adding 2 further weeks for a review. The answer was still no. This had apparently gone up through one line of reporting across to the US, branched out into legal and came back down that path. It was crazy.
So I left, so I could work on a small software project with a friend without risking IBM having an interest in it.
Another one. The HR forms were all written in the early 80s and digitised sometime in the 00s. Our team, not being customer facing, was super diverse. I know there was an attempt to try and get the HR forms updated to recognise other gender/pronoun combinations. This took like 12 weeks to be reviewed, and I think the eventual no was based entirely on the fact that no one wanted to try and figure out whose job it was to update the forms. Our team was full of LGBT people, and retention of them appeared to be critical. Hard no.
Also, our sexual harrassment training came on tape (in the year of our lord two thousand and ten) and implied that it was the updated version, previously it might have been vinyl or something.
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.
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...
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.
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".
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.
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.
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.
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).
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.
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...).
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?
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/
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
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.
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.
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."
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.
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.
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".
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).
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.
> 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.
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).
> 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.
> “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.
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.
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.
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.
> 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?
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.
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.
IBMs earliest block mode terminals with field entry, including the 3270, predate the microprocessor. They were fully implemented with fixed hardware control.
> 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.
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.
> 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.
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.
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.
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.
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.
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".
"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.
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
Yeah but, even ones that don't use literal tab characters use the tab key to write code, right? RIGHT? Like, does he hit space N times?
I somewhat get the argument, but if you're writing code in the HN textarea you're doing something wrong (for code where tab/space matters anyways). Like, any code editor will use the tab key properly.
Though, it sills maddens me there's no somewhat universal tab-entry in OSes like we have with enter (somewhat because there's a mix of shift+enter, alt+enter and cmd+enter). All of shift/alt/ctrl tab are usually also hijacked.
> Yeah but, even ones that don't use literal tab characters use the tab key to write code, right? RIGHT? Like, does he hit space N times?
Now that I think about it, I think I haven't hit the tab key for indenting code in ages. I use cmd+] and cmd+[ to indent/unindent blocks of code in my default editor and doing so habitual for single lines now as well that I have 'unlearned' the tab key. For the few occasions I'm in a editor that does not have this keybinding I am actually hitting spacebar a few times as it is more predictable than whatever amount of spaces using the tab key would give me (or if it gives me a tab instead of spaces) and me having to dance around with the backspace key as well. Some editors I think use tab/shift-tab to indent/unindent blocks/lines of code, but not insert a tab. But then you are having 2 modes for the same key depending on the context.
> it sills maddens me there's no somewhat universal tab-entry in OSes like we have with enter
That's a good point!
Were it up to me, I'd probably say something like: Ctrl+`, or maybe ` followed by escape, or something like that. Maybe one of the function keys? Eh...most if not all of those have been hijacked to mean various inane and stupid things too. :/
Hmm...oh! How about: Caps Lock+Shift ? I'm using an ergonomic keyboard, but I think the button press would still work pretty easily. I assume most styles of keyboard would have both, so it wouldn't lock people out if they are writing in a different language, either.
It might be reasonable to have a separate key for "tab" vs "next field", as well as separate key for "line break" vs "send". (But, tab and line break are not applicable for all contexts.)
However, it might also be reasonable to have a key or key combination (some programs use ^V) to enter control characters as data rather than as commands.
It might also be a consideration when designing a new computer (which does not have to be the same as existing ones); I had thought about such things and may make such a consideration.
It was a sad day (well, presumably pair of days) when Sun & Apple gave up that fight and moved caps lock into that position.
Also, Apple definitely had the nubbins correct (D and K) and foolishly surrendered that as well: they're easier to notice when they're under the wrong fingers. With them on F and J, if your hand is offset towards the outside you're forced to notice the absence of the nubs.
Wow I never thought about that, but it makes complete sense. I just tried shifting my hands "as if" the nubs were on D and K and wow, it should have been this way.
Oh well, just like caps lock can be remapped, so can my keycaps be swapped (perks of blank keyboards I guess), though it'd be even harder to use a keyboard that's not mine I guess.
Is that how you do it? I have always used my left pinky. As I try it, unless I'm moving my hands off home row, both Ctrls feel just too far to be confident I'm hitting the right one (and not hitting the modifiers second in from the edges, and not hitting both). Maybe it's just my small hands!
In terms of ergonomics, the curled-left-thumb "Command" activation (it's where Alt is on a normal keyboard) is my favorite thing about the Mac key layout.
When you type a table on a typewriter you use the tab to advance to the next column (how many you have depends on the typewriter - you often had margins and one or two tabs). In typewriters, tab doesn’t have a specific width and you don’t have tab stops at every 8 columns. At least on the ones I have here.
Non english speaker trying to wrap my head around what Brendan said to you.
I was once told that the tab key can be represented in different ways on different systems, and that's why spaces are safer because they're always represented the same.
Literally try entering a "tab" character in a Hacker News reply. For me in Safari, it changes the focus to the "reply" button.
It's literally difficult to enter a "tab" character into many text entry fields and dialogs and applications, because it's used so often as a navigation key.
It is Control-Q Control-I. Control-Q is the quoted insert function, and Control-I is the traditional teletype way of typing a tab 0x09 (just like Control-C in a terminal results in 0x03 when not in a cooked mode).
I only found this because I am an Emacs user and I instinctively tried Control-Q first (because many other key bindings like C-f or C-b work). The Control-I bit is a guess that worked. I cannot imagine a non-technical user knowing how to insert a tab character in Safari.
> I was once told that the tab key can be represented in different ways on different systems, and that's why spaces are safer because they're always represented the same.
The main counter argument is that users have different preferences for the amount of indentation, so giving them control over that, just as they (nowadays) have control over the font used and window width, is a good idea.
The tongue-in-cheek counter argument is that fixed-width spaces are preferable over ‘normal’ spaces. They also give you more control over indentation, allowing, for example, mixing usage of THREE-PER-EM SPACE (https://unicode-explorer.com/c/2004) for indentation with FIGURE SPACE (https://unicode-explorer.com/c/2007) for right-aligning numbers.
No, the point was that pressing the Tab key often does something else than inserts the tab character. Moves focus to the next input field, for example.
Tab key is both a control character moving the cursor to the next input and also an input representing the tab character as you see in a text editor.
Now that im thinking about it I’m convinced capslock would have been superior next field key and alt+capslock to be used for toggling capslock. But it’s not obvious to me capslock [e: must be] seen by the OS. It could be changed on the keyboards themselves.
No, it's that it's extremely challenging to insert a literal tab character into anything resembling a web form.
You can configure your editor so that pressing the tab key inserts a tab character. Good luck with a web browser, or a UI where tab moves focus to the next control. The space bar basically always inserts a space character.
No he's saying if you're trying to write code in an edit box in a web browser (for example) and you press tab, instead of inserting a tab character it will move the focus to the next input field.
Bullshit reasoning though, because even people who use spaces for indentation don't do it by hammering the space bar - they also press the tab key. And of course in modern browsers we can give tab the expected behaviour.
The only logic I've ever heard for using spaces for indentation that actually makes sense and I vaguely agree with, is that lots of programmers do not give a shit about formatting code and even using spaces properly is often a bit too much for them.
That doesn't matter so much if you have an autoformatter though, so with the exception of Go I don't know why modern languages with widely used autoformatters don't use tabs.
Brendan Eich was making a point about the tab key also being used to switch to different text fields and buttons. This makes it difficult to type in certain applications. A space doesn't have that issue.
About your point of tab being represented different on different systems: It will always be ascii 9, how it's draw does differ between text editors but I consider that one of it's strengths for programming. Everyone can configure what an indent looks like for them, it makes reading code easier.
For me, it's not until that file is retrieved for local use where I have to deal with this. If it was born remotely and only used remotely with the same settings, I never notice it. But yeah, I hate it with the passion that raises my temp to that of a thousand suns.
Having a non-standard size is exactly the reason the tab character (not the key) is unusable. If you accidentally get some space indenting anywhere in the same project as tabs, then it'll be misaligned on someone's editor and they'll "fix" it, making it misaligned on someone else's. Trying to never use space indenting is impossible. Never copy and paste from anywhere else, never manually align multi-line statements, never align comments with code, etc.
As far as I'm concerned, it's a feature when the viewer controls the number of spaces per tab, it's a bug when someone else does (as is often the case online via css `tab-size`).
It’s not “random”, it’s whatever you’ve configured it to on your machine. Your choice of (e.g.) 3 spaces per tab shouldn’t be forced onto me if I prefer (e.g.) 4 spaces per tab. As long as you’re on your machine, you’ll see exactly the amount of code indentation you prefer - not something “random”. On someone else’s machine, well, that’s up to their preference, and it’s hard to complain about how someone else has their machine setup.
Control-shift-u, 9, space/enter, works on most Linux systems.
To explain: control-shift-u allows entering a Unicode character by its hexadecimal code. This presumably depends on the Input Method Editor (IME) in use, which is something I've never fully understood, but this seems to work widely across different desktop environments (Xfce, KDE) and display servers (Xorg, Wayland).
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.
Personally I don't like the tab key for field change.
Firstly it was a breaking change from dos. Dos programs used Enter. And enter meant you could capture numeric data using 1 hand, since the numeric keypad has an enter key.
That means left hand can stay on the (paper) source. Right hand types. People got fast at this. (Really fast). And this pattern lives on in some programs kline Excel).
Lots of people (ie my customers) hated needing both hands on the keyboard. Lots of our programs allowed mapping of enter=tab.
I should be clear. It's not the "name" of the key that matters, it's the location.
The dual-use of the key is just an annoyance we live with. Sometimes the key behaves as a navigator, but in other cases it behaves as a spacer. Daft. (Enter would have the same problem. )
The best solution (by far) would gave been to add another key to the keyboard. Preferably in the numeric key pad. We got lots of new keys in that era. Hindsight says we should have added a "move on" key at that time.
I have used plenty of DOS programs back in the late 80s/early 90s, and I don't remember a single one that used "enter" to move between fields. Most of the time, "enter" closes the dialog. They all use TAB to move to the next field.
But maybe you're talking about even older software?
If you're designing a text editor that's intended to run within a browser you need to fully break user expectations about the functionality of the tab key - there are two completely logical and intuitive roles it can serve in such an environment that are in conflict.
The same issue arises (with much higher frequency) with Enter and even in the modern world I'm sure we all have a pretty complex ruleset we've committed of when ctrl+crlf triggers a newline, or a message send and what the corresponding behaviors of a bare crlf and shift+crlf are.
In HN's editor shift+crlf and a bare crlf cause a newline creation and ctrl+crlf does nothing - but often times ctrl+crlf will trigger a form/message/whatever submission, shift+crlf often causes a raw newline insertion (even when in a form context) and then a bare crlf might do one - might do the other or might even do neither! Those are the common bindings but I have seen exceptions and inversions of bindings with shift+crlf causing form submission while requiring ctrl+crlf for raw newline insertion.
All this stuff is just super annoying and causes a lot of user friction (and for a long time MSFT's style guide was considered a seminal reference for best practices as ironic as they may seem to folks these days).
I assume so. Obviously there are very different concerns if you're managing an organization with countless moving parts versus you want to build something for the user quickly.
The way I interpreted it was that there was no complete "IBM" reason. I read it as "one person in the IBM bureaucracy stepped in and brought things to a halt, which highlights the cultural differences" considering it is a post about said differences.
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.
That's exactly my memory too, using a tab was second nature and it irked me when I went to gui apps with a mouse and the tab order was wrong, mainly with visual basic apps.
It's been ages since I used an IBM green screen but I seem to recall that in our application Tab did move between fields, but I think there were also function keys reserved for this purpose.
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 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!
Possibly, OS/2 co-development started in 1985, which is the same year IBM released the a keyboard with arrow keys.
Of course, that assumes it came from a place of corporate strategy rather than individual habit, which could have been learned from other older systems.
I'd never really thought about it before, but Enter to advance to the next field field and Ctrl + Enter to submit the whole form (which is the typical keyboard shortcut for submitting the form while a multi-line text input control has focus) does have a certain appeal to it.
The overloading of return to either send a message or add a newline has become really annoying since chat apps (and then now AI) have become popular.
You have to keep a mental context of whether you need to hold shift before you press return. See also: every message I've ever sent that ended with I' because I fat-fingered the ' key while typing a contraction.
Terminal keyboards generally used to have two separate ENTER (submit the form to the mainframe) and RETURN (insert a line break) keys. I mean, even the original 101-key PC keyboard has them: the RETURN key above the right Shift, and the ENTER key of the numpad.
Shift+Enter will usually enter a newline in a message without triggering send... At least that's the convention used most of the time. No guarantees on specific applications, just my own experience with this.
Enter/return on the 'Submit' button, I suppose. The rationale may have been "Start at the beginning of the form, keep hitting Enter after filling in each field, and it will submit itself when you're done."
Some terminal software would use a function key that would be labelled "Execute". You'd usually have a template to put over the function keys to tell you what does what.
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.
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.
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".
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.
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.
I don't think even modern-day Microsoft is anywhere near as bureaucratic as IBM, but yeah - it seems almost inevitable that as a software company grows it'll lose an "undisciplined hacker" culture and become stuffier, for better or worse.
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?
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.
Not 8 (eight) months later I got a call from their HR saying they'd like to interview me next Thursday. And then they got completely flabergasted when I said I was no longer interested. Don't know what they were smoking, but they were exceptionally full of themselves... while not even offering a good pay.
The only company they were on par with was Arthur Andersen, who were offering around £15k for trainee accountant roles, but you know how fast those salaries go up once you’re qualified and start to progress.
(Not disputing your story, just providing a different perspective.)
Mostly these things boil down to a vetocracy where all managers in some hierarch must say 'yes', otherwise a single 'no' is a final 'no'.
Hence, the trick is not to ask because the more people are involved the higher the chance that one of them will say 'no'.
The manager in that office you worked in most likely made a decision themselves and didn't punt it up the hierarchy, and hence nobody told him 'no'.
The corollary to that is a clever bureaucrat can kill a proposal simply by inviting many decision makers to a meeting.
PS: It's hilarious to see this effect play out as a consultant, because often I deal with different "randomly" selected subsets of the same organisation and the difference in their day-to-day can be stark. It just boils down to which managers take individual responsibility, and which regularly beg for permission to do their job. "No."
Not particularly clever. My experience is that low-level team/line managers typically already have the authority to say "no" to their own people; but they don't want to take the blame for saying "no" (they want their team to like them!), so by punting the decision up the chain, they're effectively punting the blame for saying no up the chain (under the expectation that anything so punted will get a "no" response.)
Some this backfires, though: everyone above them says yes, and so they have to be the one to say no. (They may end up lying if asked, vaguely saying "someone important" said no.)
Sometimes this backfires badly: not only does everyone above them say yes, but someone somewhere up the chain loves the idea, and turns it into an "initiative" — i.e. something the line-level manager is now locked into doing.
https://www.youtube.com/watch?v=CXDxNCzUspM
https://www.youtube.com/watch?v=KodqIPMbyUg
I asked to be excepted from a contract condition giving IBM first pick on any IP I develop in my own time.
Keep in mind, I was working in one of their technical support call centres. I had no access to IBM proprietary information, I had no role in developing it, I was a complete non risk on this front. I had more access to customer systems, no access to RED or BLUE networks, just an IBM lotus notes account I could use to slowly download information from HR.
Everyone I could physically speak to looked at my request and went, hey that's a really reasonable request.
It took 6 weeks for the first no to come back, my direct manager, whose stats I was apparently holding in place, apparently tried to intercede, adding 2 further weeks for a review. The answer was still no. This had apparently gone up through one line of reporting across to the US, branched out into legal and came back down that path. It was crazy.
So I left, so I could work on a small software project with a friend without risking IBM having an interest in it.
Another one. The HR forms were all written in the early 80s and digitised sometime in the 00s. Our team, not being customer facing, was super diverse. I know there was an attempt to try and get the HR forms updated to recognise other gender/pronoun combinations. This took like 12 weeks to be reviewed, and I think the eventual no was based entirely on the fact that no one wanted to try and figure out whose job it was to update the forms. Our team was full of LGBT people, and retention of them appeared to be critical. Hard no.
Also, our sexual harrassment training came on tape (in the year of our lord two thousand and ten) and implied that it was the updated version, previously it might have been vinyl or something.
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...
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...
https://usermanual.wiki/Document/GA2727421OperatorsGuideforI...
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.
(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).
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...).
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?
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/
> 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.
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."
I mainly ask because Microsoft has another product called Linux Integration Services: https://www.microsoft.com/en-us/download/details.aspx?id=551...
"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".
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.
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.
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.
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.
Why? In this scenario, what would happen with a patent that wouldn't happen without a patent?
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.
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?
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.
We still don't know how he solved the problem of carbon dioxide build up. We know he solved it, though!
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.
IBMs earliest block mode terminals with field entry, including the 3270, predate the microprocessor. They were fully implemented with fixed hardware control.
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.
>> Something that's bothered me about user-facing patents
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.
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.
so they spent seven layers of management escalating against their own standard: https://archive.org/details/ibmsj2703E/page/n13/mode/2up
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.
Lame.
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".
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?"
There is no universe where that is true.
Win95's UI was so incredibly influential that stuff introduced by it are still around to this day.
RIP /.
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 somewhat get the argument, but if you're writing code in the HN textarea you're doing something wrong (for code where tab/space matters anyways). Like, any code editor will use the tab key properly.
Though, it sills maddens me there's no somewhat universal tab-entry in OSes like we have with enter (somewhat because there's a mix of shift+enter, alt+enter and cmd+enter). All of shift/alt/ctrl tab are usually also hijacked.
Now that I think about it, I think I haven't hit the tab key for indenting code in ages. I use cmd+] and cmd+[ to indent/unindent blocks of code in my default editor and doing so habitual for single lines now as well that I have 'unlearned' the tab key. For the few occasions I'm in a editor that does not have this keybinding I am actually hitting spacebar a few times as it is more predictable than whatever amount of spaces using the tab key would give me (or if it gives me a tab instead of spaces) and me having to dance around with the backspace key as well. Some editors I think use tab/shift-tab to indent/unindent blocks/lines of code, but not insert a tab. But then you are having 2 modes for the same key depending on the context.
That's a good point!
Were it up to me, I'd probably say something like: Ctrl+`, or maybe ` followed by escape, or something like that. Maybe one of the function keys? Eh...most if not all of those have been hijacked to mean various inane and stupid things too. :/
Hmm...oh! How about: Caps Lock+Shift ? I'm using an ergonomic keyboard, but I think the button press would still work pretty easily. I assume most styles of keyboard would have both, so it wouldn't lock people out if they are writing in a different language, either.
However, it might also be reasonable to have a key or key combination (some programs use ^V) to enter control characters as data rather than as commands.
It might also be a consideration when designing a new computer (which does not have to be the same as existing ones); I had thought about such things and may make such a consideration.
Also, Apple definitely had the nubbins correct (D and K) and foolishly surrendered that as well: they're easier to notice when they're under the wrong fingers. With them on F and J, if your hand is offset towards the outside you're forced to notice the absence of the nubs.
Oh well, just like caps lock can be remapped, so can my keycaps be swapped (perks of blank keyboards I guess), though it'd be even harder to use a keyboard that's not mine I guess.
In terms of ergonomics, the curled-left-thumb "Command" activation (it's where Alt is on a normal keyboard) is my favorite thing about the Mac key layout.
It had a purpose, and it got hijacked and made its actual purpose more difficult to use.
It's not dissimilar to Apples initial Touch Bar and then removing the Escape key.
Average user might never use that key; average developer doesn't got long without using that key for its purpose.
I was once told that the tab key can be represented in different ways on different systems, and that's why spaces are safer because they're always represented the same.
Is that what Brendan was trying to say?
It's literally difficult to enter a "tab" character into many text entry fields and dialogs and applications, because it's used so often as a navigation key.
I only found this because I am an Emacs user and I instinctively tried Control-Q first (because many other key bindings like C-f or C-b work). The Control-I bit is a guess that worked. I cannot imagine a non-technical user knowing how to insert a tab character in Safari.
The main counter argument is that users have different preferences for the amount of indentation, so giving them control over that, just as they (nowadays) have control over the font used and window width, is a good idea.
The tongue-in-cheek counter argument is that fixed-width spaces are preferable over ‘normal’ spaces. They also give you more control over indentation, allowing, for example, mixing usage of THREE-PER-EM SPACE (https://unicode-explorer.com/c/2004) for indentation with FIGURE SPACE (https://unicode-explorer.com/c/2007) for right-aligning numbers.
Now that im thinking about it I’m convinced capslock would have been superior next field key and alt+capslock to be used for toggling capslock. But it’s not obvious to me capslock [e: must be] seen by the OS. It could be changed on the keyboards themselves.
You can configure your editor so that pressing the tab key inserts a tab character. Good luck with a web browser, or a UI where tab moves focus to the next control. The space bar basically always inserts a space character.
Bullshit reasoning though, because even people who use spaces for indentation don't do it by hammering the space bar - they also press the tab key. And of course in modern browsers we can give tab the expected behaviour.
The only logic I've ever heard for using spaces for indentation that actually makes sense and I vaguely agree with, is that lots of programmers do not give a shit about formatting code and even using spaces properly is often a bit too much for them.
That doesn't matter so much if you have an autoformatter though, so with the exception of Go I don't know why modern languages with widely used autoformatters don't use tabs.
About your point of tab being represented different on different systems: It will always be ascii 9, how it's draw does differ between text editors but I consider that one of it's strengths for programming. Everyone can configure what an indent looks like for them, it makes reading code easier.
I can have my tabs look the way I like them. You can have your tabs look the way you like them.
TL;DR: This is a feature, not a bug
To explain: control-shift-u allows entering a Unicode character by its hexadecimal code. This presumably depends on the Input Method Editor (IME) in use, which is something I've never fully understood, but this seems to work widely across different desktop environments (Xfce, KDE) and display servers (Xorg, Wayland).
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.
Firstly it was a breaking change from dos. Dos programs used Enter. And enter meant you could capture numeric data using 1 hand, since the numeric keypad has an enter key.
That means left hand can stay on the (paper) source. Right hand types. People got fast at this. (Really fast). And this pattern lives on in some programs kline Excel).
Lots of people (ie my customers) hated needing both hands on the keyboard. Lots of our programs allowed mapping of enter=tab.
I should be clear. It's not the "name" of the key that matters, it's the location.
The dual-use of the key is just an annoyance we live with. Sometimes the key behaves as a navigator, but in other cases it behaves as a spacer. Daft. (Enter would have the same problem. )
The best solution (by far) would gave been to add another key to the keyboard. Preferably in the numeric key pad. We got lots of new keys in that era. Hindsight says we should have added a "move on" key at that time.
I have used plenty of DOS programs back in the late 80s/early 90s, and I don't remember a single one that used "enter" to move between fields. Most of the time, "enter" closes the dialog. They all use TAB to move to the next field.
But maybe you're talking about even older software?
Maybe.
The same issue arises (with much higher frequency) with Enter and even in the modern world I'm sure we all have a pretty complex ruleset we've committed of when ctrl+crlf triggers a newline, or a message send and what the corresponding behaviors of a bare crlf and shift+crlf are.
In HN's editor shift+crlf and a bare crlf cause a newline creation and ctrl+crlf does nothing - but often times ctrl+crlf will trigger a form/message/whatever submission, shift+crlf often causes a raw newline insertion (even when in a form context) and then a bare crlf might do one - might do the other or might even do neither! Those are the common bindings but I have seen exceptions and inversions of bindings with shift+crlf causing form submission while requiring ctrl+crlf for raw newline insertion.
All this stuff is just super annoying and causes a lot of user friction (and for a long time MSFT's style guide was considered a seminal reference for best practices as ironic as they may seem to folks these days).
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.
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.
(It's intended to allow video games that use standard OS controls to be controlled sanely with a gamepad.)
Of course, that assumes it came from a place of corporate strategy rather than individual habit, which could have been learned from other older systems.
https://en.wikipedia.org/wiki/IBM_PC_keyboard
You have to keep a mental context of whether you need to hold shift before you press return. See also: every message I've ever sent that ended with I' because I fat-fingered the ' key while typing a contraction.
(And yes I do miss those - with an external keyboard these get less painful but still don't work 100% like on a PC)
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.
Great read
I'm aware of folklore.org, but I wish there were something equivalent within Apple itself. Sadly, it's not part of Apple's culture.
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 may have invented it, but I think Bill made it famous." - David Bradley (IBM), creator of the Ctrl+Alt+Del shortcut key.
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.
But yeah, I sometimes show that Sinofsky's blog entry as an example of difference.
Honestly, why should I even believe it?