Icons of engineering quality: part 1
Engineering quality is something that is never taught, but which occasionally happens. Most engineering is slapdash and Rube-Goldbergish. Someone needs to get something done. Sell a product, solve a problem, move on. Very few things are designed to last, or are designed to be eternal forms. I don’t even think most things are designed to be useful. Not even things whose very purpose is to be useful.
Good stuff doesn’t always look right. Paul Graham pointed this out in his essay, “taste for makers.” He used Lisp and the SR-71 as examples. Neither is the most advanced thing in the world, but they were pinnacles of good design, and both are still considered advanced designs even today.
Consider the humble calculator. Electronic pocket calculators date from the 1970s. The first truly useful one (as in, useful beyond abacus or slide rule level) was made by HP in 1972. I don’t count the sinclair executive or Sharp EL-8 (which came out a bit earlier) as anything more than parlour tricks, as they were less useful than a slide rule. They were certainly less impressive than many pocket sized mechanical computers, which had been around for many years before them.
“The Curta mechanical pocket calculator had a barrel shifter, three registers and a 4 instruction ALU; it was invented by a prisoner in a nazi internment camp”
The HP-35 was a real calculator. It had memory, scientific functions, programmability, and a vague sort of boxy elegance. Calculators today generally still look more or less like this thing does. But was it a pinnacle of calculator design? No. It was a beginning, and for most calculator designers, a sort of end.
In my opinion, the ultimate calculators ever made were the Voyager series of calculators. Specifically, the scientific version, the HP-15C, and the financial version, the HP-12C. How badassed are the HP-10C series of calculators? Well, one of them, the one for finance guys, is still being made; the HP-12C. It’s the original chipset. It’s not the original semiconductor process, they actually changed that because they could no longer get the silver oxide batteries which powered them (though if you have one of the original ones, you’ll probably never need new batteries). The high end scientific version has such following, it regularly goes for around $400, used on ebay. It also has a petition online to bring it back. There is an updated version of the HP-12C for financial snobs (I own one), where HP bothered to update the chipset to make it faster, and they went through several iterations of the firmware and the hardware which runs it to get it just right; a multi-million dollar investment in engineering. They also still sell the original chipset, because it is the one most trusted in the financial services industry. Mind you, HP isn’t even remotely the same company as it used to be. HP basically doesn’t do hardware or software development, but they did for the HP-12C, because it sells so well. It also still sells for about half what it went for in 1981. Imagine buying an 8086 PC with DOS-1 and a 720kb mass storage device for $1000. That’s the equivalent in other forms of 1981 technology. The HP-12C is such an icon of the financial services industry, until recently Bear Stearns and Goldman Sachs gave them out to new employees (Goldie may still). This is a calculator designed in the late 1970s, and first released in 1981. Still used today.
Why the hell is this thing so good? Is it something real, or just some weird fetish? Consider; what do you need a calculator for? Does it have to do symbolic integration? Does it need to have 10,000 functions? Does it need to be programmable in a high level language? The answer to all of these things is pretty obviously no. They do sell calculators that do these things. But grownups don’t use them. Adults use computers for such things. A calculator needs to be small, durable, handy, clever, powerful enough to do anything you won’t want to write in a computer anyway, and that’s about it. Calculators don’t need graphing capabilities; that’s for students to cheat on tests with. Computers are far better than calculators at graphing and symbolic algebra.
The Voyager calculators do just this. They’re smaller than most modern calculators, and have a more satisfying (and sensible) form factor, which is horizontal, rather than vertical. They are durable enough, you can still buy working, well-used 1981 models with the original batteries installed, and the batteries will be good for another decade. They used a battery technology which is no longer available to the consumer: silver oxide batteries. You can only get them for military applications. The keys were actually etched rather than just painted. The cases are strong. HP-12C’s have been dropped out of helicopters and survived. They’ve passed intact through the digestive tract of a hippopotamus and were still able to calculate bond yield to maturity after cleaning. I am pretty sure I could kill a man with one. They feel as if they are carved out of granite; even the worst of the crappy modern chinese versions have this attribute.
All the voyager calculators had the same architecture with some differences in ROM and number of registers. They used “binary coded decimal” to represent numbers. What does this mean? It mean numbers could be directly represented on a screen; a register would produce the correct output. That way there was no intermediate stuff needed to drive the screen. It also meant you had to use some more complex circuitry to make adders and such, since 10 decimal = 10000 in binary (as opposed to 1010, which is the correct base 2 way to represent decimal 10). This seems weird, but is actually insanely clever when chips cost a lot to make. The Voyager calculators display directly showed the contents of a register, just like the old 1960s computers with those science fiction blinking lights, except, you can read the output! Yes, these calculators use the dreaded “reverse polish notation.” All that means is they use a stack based approach (5 deep, counting the display register X, and a “bottom of the stack” register mirroring the last value in the X reg if you want to backtrace; something most debuggers should use, but don’t). And that the programming language was actually what you entered into the calculator when you were using it in an ordinary fashion. Duffers who code in Java all day don’t realize their infix notated Java gets turned into something a lot like RPN when it hits the CPU. The calculator used RPN because that’s what computers use. It’s also how you think about these things, whether you realize it or not. That’s why RPN takes about half the keystrokes of “algebraic” entry. If you stop to think about what is going on underneath the covers in an HP-12C, you’ll realize that this thing is really a lot like a PDP-8 with a really good UI, and a floating point based architecture.
The PDP-8 was one of the first “personal computers.” As you can see above, it used paddle switches to program the bits of a 12-bit register. It also generally required a couple of refrigerators worth of volume of equipment to provide a couple of kilobytes of memory, and some mass storage to store computer programs. It came out in 1965. So, it was less far removed from the HP-12C than we are today. An amazing step forward; you could stick a processor more powerful than that, plus a bunch of memory, plus a display in a thing that fits in a shirt pocket, which has batteries whose lifetime is measured in decades, and you didn’t have to load the thing with assembler to use it either. It even had sophisticated floating point programs built into the thing. But the underlying architecture of the Voyager series was more or less the same as a PGP-8; a couple of registers and some primitive indirect addressing capabilities.
The UI really bears thinking about, but you’d need to own one to follow along. The core of the UI is the enter key, which is giant, and in the center where it belongs. The [f] and [g] keys which change the state of the other keys are different colors, and off to the left where you can easily find them, along with most of the “verbs” for the calculator. If you want to change state or use a verb; go left. Data entry, go right. Regular computer keyboards generally ignore this idea (though my macbook doesn’t; it actually does something dumber to make up for this). The keys give resounding clicks, like closing the door in a well made Mercedes Benz. The old versions gave a little sneeze in the display when you’d enter something into a variable register (sadly, the new ones don’t), so you’d know it was in there. The little built in programs are incredibly generally useful within a given subfield. While the finance 12C doesn’t do sin and cos -that’s because finance guys never do either. Helpfully, they all have directions printed on the back for the built-in programs, in case you forget the intricacies of one of the built in algorithms. This is a great secret to successful design (one the CRAN project has forgotten); make it so you don’t have to remember details of how to use it. They knew what to put in to make it very powerful and useful. They also knew what to leave out. Most modern calculators suffer from creeping featurism. Put too many features in a small electronic item, and it becomes impossible to use effectively. You don’t want to have to carry around a thick book to use the thing. In that case, buy a laptop or desktop and stick the manual on the computer. I could imagine sticking an SD card in my HP-12C, so I could back up my little programs, or add zillions of them, but that would detract from the sturdiness of the thing, and make it too complex. Nope, the 400-odd words of memory are more than sufficient. If I need more, I need a computer. If I lose 400 words (most people will never use 400 words); they’re easy to put back in by hand. If I add complexity, it’s my complexity, and I know where I kept it. Win-win. All good designs leave stuff out. It is tempting for nerds of the C++ or java era of engineering to throw every feature in the world into a machine, but this is because they themselves use faulty and messed up tools to build things. Proper design is spare and perfect; like a samurai sword. Compare the Max Wedge (many of which are still raced today) to the spaghetti under the hood of your car; the Wedge is minimalistic and purposeful:
Why doesn’t everyone use these calculators? IMO, every serious person who needs such a thing actually does use them. I bought mine to learn about accounting systems on the advice of a number of quants. Using this thing, learning its algorithms is the best way to understand how money flows in companies work, and how to figure out when they’re cheating, when you look at their 10-K statement. I think it was a great tool for this. Furthermore, it is a great tool for actually examining companies, and checking algorithms I am writing to examine companies. The thing is, most people who have calculators are not serious. They don’t use them for anything real. When you are serious about a task, you use serious tools. Mechanics don’t use a leatherman to repair their car unless they have to.