It looks like I’ll be at least occasionally moving between my home in Japan and offices in the US where I may wind up setting up a system for myself to use while I’m there (I’m not a huge laptop fan when it comes to extended work). This brings up an annoying issue: keyboard layouts.
It is difficult to find US-layout keyboards out here, so even though I usually write only a few Japanese-language emails per day its just not practical to use anything but the local flavor. Even if I did have a bunch of US-layout keyboards it would be insanely annoying to have to switch between JP-layout on laptops, server crash carts and customer systems and then switch back to US-layout when I got back to one of my offices. So I’ve gotten accustomed to this layout and it works well for me.
The main keys that do letters and numbers are all in the same place, so it seems like this wouldn’t be a big deal. The problem is the crazy keys that do “top row” and wildcard stuff like bangs, hashes, quotes, backticks, at-marks, brackets, colons, semicolons, parens, etc. All the stuff that is rarely used on, say, a student or blogger’s keyboard is usually worn smooth on a programmer’s keyboard, especially if he switches languages all day. And they are all in radically different places on JP and US layouts.
So… naturally I’ll probably just get a decent one here and keep in the closet over in the US, and whip it out whenever I show up.
But that brings up a point about familiarity and how “good” tools are from the perspective of the one using them. I could easily take the position that US-layout is poo and that JP-layout is superior. Or I could get uber nerd and pretend that some statistical study on finger reach and frequency of blahblahblah matters whatsoever when it comes to programming. It doesn’t, really. That’s to imagine that input is the hard part of programming, and its not — its figuring out what to write in the first place. So its not speed of input, per se, but smoothness of operation. More to the point, its which layout prevents the wetware halting problem: where the human doing the work has to stop what he is doing to figure out something unrelated to the essential task at hand.
But it remains true that some layouts are probably actually worse than others. It follows that other sorts of tools can fall into the realm of “good enough that preference is a matter of taste or familiarity” or in the realm of “actual poorly designed garbage”.
The reminds me of guns. There are several excellent machine gun, rifle and pistol designs employed in militaries across the world. Many of them are decent enough that while some have a slight edge over others in some areas, I’d go to work with pretty much any of them. For instance, the M4 vs. the SCAR. The SCAR is actually better, but the M4 is familiar enough to me and I have enough confidence and skill with it that I just don’t really care which one I wind up getting stuck with.
I don’t have nearly as much faith in the AK-47 as a precision weapon, especially in an environment where quick on/off safety and partial reloading is critical. They are famously resistant to neglect (which is often mistaken for durability), but that’s really a key attribute for a rifle intended for the mindless Commie Horde sweeping en masse across the tundra or untrained insurgent/freedom-fighter/terrorist whose backers need cheap trashy guns with which to arm their cheap trashy goons. Indeed, the AK-47 is in real terms less good than the SCAR or M4 and there is a whole list of rifles and carbines I would consider before going to work with one (but still, its not absolutely awful, just so much less good than the alternatives that I’d avoid it if possible — sort of like Java).
Where this is really striking is with machine guns and pistols. On the pistol side there are a rather large number of designs that actually break down frequently during use. This never happens in a James Bond movie, of course, but in real life it happens at the most inconvenient times. Come to think of it, there is never a convenient time for a pistol to break. Once again, despite the absolute superiority in design of the semi-automatic over the revolver, familiary can overcome the technical deficiencies between the two (with lots of practice) and I would actually prefer to go to work with certain revolvers over certain semi-autos. (This is to say nothing, of course, of the issue of caliber…)
With machine guns, however, the differences in good vs. bad designs are vast. In the nearly any modern military you’re absolutely spoilt. A “bad” gun is one that doesn’t have a TV built into the stock to ease the passage of long turns on security. They are mindlessly easy to load, sight, barrel change, fire, strip, clean, maneuver with, etc. The links disintegrate and can be re-used on unlinked ammo, all sorts of cool toys fit around the thing (which can, sometimes, make them start to suck just from the “too much Star Wars” problem), runaways can have their belt broken, they will eat through just about any garbage that gets caught in the links or even fire bent ammo. They aren’t even unreasonably heavy (and its patently unfair to compare it to the uber lightness of an M4). Its amazing how well these things work. But when they are all you know you start complaining about them, wishing you had a 240 when you’ve been handed an M-60 (because its possible to jam it up if you accidentally load it bolt-forward, or probably lacks a rail system, or you’re an unsufferable weakling complaining because you didn’t get the lightweight bulldog version, or whatever). I’ve had the misfortune of having to go to work with old Soviet machine guns, though, and can attest that they are indeed of almost universally horrible design.
When we say “crew served weapon” in modern armies we mean “the weapon is the centerpiece of the crew” not “this weapon is absolutely unreasonable to assign to any less than three people”. It might have meant that operating the machinery actually took a crew back when tripods included full-sized chairs, ammo came on a horse-drawn cart, and vast amounts of oil and water were consumed in operation. But that was the early 1900′s. We still employ machine guns as crew served weapons beacuse its an advantage to have an AG and actually set up a tripod if you wind up facing off against a for-real infantry force, not because its difficult to wield one. Today a single person can easily maintain and operate a 240, M-60, MAG58, 249, MG42, MG3, or whatever. Not so with, say, the PKM (or heaven forbid the SG-43). An RP-46 is actually better if you come to the field with American-style assumptions that a single person is adequate to handle a machine gun.
The PKM is not really belt fed, its chain fed, and the chain doesn’t disintegrate. Its also extremely strong. Like you can support more than a single person’s weight from a belt and it won’t break. The longer the belt the more bullets, and this seems good, until you realize that it feeds from the wrong side (the right), which prevents a right-handed shooter from feeding the pig himself with his left hand and leaves the indestructible spent chain right in front of the shooter. This means its right underfoot when running after a bit of shooting — which has made be bust my face in the dirt on the top of the gun more than once (not so convenient at interesting moments, and absolutely detrimental to my Cool Point count).
But the failure of design doesn’t stop there. That stupid belt is nearly impossible to reload by hand without wearing gloves and using a lever (box top, table top wrench, whatever) to force the rounds into the thing (yeah you might load 50 rounds by hand, but how about 5000?). They also rust instantly, in accordance with the PKM Belt Rust Time Law — however long its been since you last packed the belt is precisely how long it takes to rust exactly enough to generate a vast amount of busy work without rusting so much that the belt should be discarded. If you try oiling them to prevent that they gum up or actually start growing hair instantly. Its a never ending cycle of trying to keep the belts from making your life suck without giving up and throwing them all away. Which is why the Soviets conveniently invented a reloading machine. Which itself sucks. I can’t even begin to explain the inadequacy of this stupid machine, but it actually is the only way to maintain even a marginally reasonable reload rate for belts — but there is no way you could do this under fire, or on Tuesday (the machine jams spectacularly on random days, Tuesday tending to be the worst day for this for some magical reason).
I haven’t even begun to mention the inadequacy of the ammo crates. The standard ammo crates are insanely stupid. Actually, this isn’t a gripe reserved just for 7.62 ammo, its true for all commie ammo I’ve ever seen. The ammo cans aren’t like the infinitely reusable, universally useful, hermetically sealed, flip-top boxes found in non-backward armies. They are actually cans. Like giant soup cans, but without a pull-tab — not even a sardine-key. They come with a can opener. A huge one (but only one per crate, not one per can). You read that right, a can opener. You know, the lever-kind where you hook the grabby part onto the crimp at the top edge of the can and pull to lever the pointy part down until it makes a tiny puncture, then slide over a touch and repeat until you’ve prized and ripped a gash large enough to do your business. Let that sink in. We’re talking about an ammo can. Like with bullets that people need to do their job, hopefully sometime this year. But once you’re inside the fun just doesn’t stop — no way. The thousand or so rounds inside are in boxes of 5 or 6 or so. The can that you worked so hard to open isn’t full of pre-loaded belts. That would deprive someone of a government job somewhere and that’s just not Progressive. So inside there are dozens and dozens of tiny, crappy, flimsy little cardboard boxes, each containing a few rounds. And the rounds are individually wrapped in tissue paper.
You just can’t make this trash up. Its amazing. How on earth could such a horrible, stupid, backward constellation of designs emerge from one of the two nations to reach the Moon before the end of the 20th century?
A guy I worked with a few years ago called Mule had a theory that this was, in fact, an excellent design for a machine gun system in a Socialist military. Nobody can use it alone, so you can’t get a wild hair up your ass and get all revolutionary — you need to convince at least a platoon to get crazy with you. You employ a gazillion people not only in the loving production and hand gift-wrapping of each one of the billions of rounds of machine gun ammunition throughout the nation, you employ another gazillion or so to open and load the belts. Its the ultimate low employment figure fixer — at least until the state digests enough of itself that this becomes suddenly unsustainable, of course.
Mule’s theory was that this machine gun design — from the actual shittiness of the gun itself to the complete circus of activity which necessarily surrounds its production, maintenance and use — is a brilliant design from the perspective of the State, not the soldier, and that the aims of the two are at odds is simple the natural result of a socialist system. Mule was one of the most insightful people I’ve ever met (and I’m not being rhetorical — he really was a hidden genius).
Thinking about what he said has made me re-evaluate some of my assumptions of bad designs. Perhaps the designs are excellent — not for the end user, but for whoever is in charge of the end user. And that brings me back to thinking about just why the Java programming language is so bad, yet so prolific. Java is the PKM of the programming world. Its everywhere, it sucks, it is good for (some, Stalin-like) bosses, and the whole circus surrounding its existence just won’t ever go away. And sometimes those of us who know in painstaking detail why a 240 (or nearly anything else in common use) is better are still stuck using it to get real work done.