Wednesday, February 13, 2013

Heuristically Programmed Algorithmic Computer

Back when I was a glorified code monkey, I was almost always a rude, arrogant asshole, prima donna,  and an impossible-to-work-with curmudgeon. A lot of things haven't changed.

Wait a minute. Before I tell this story, I have to back up. I'm graduated from college, got no job, no jobs prospects, I'm an unemployed alcoholic (or working up to it), and I'm living in my parent's basement.

Happy now?

Finally desperate, I go to the US Navy recruiter and take the Officer Candidate's test. That test was quite possibly the easiest test I have ever taken in my life. The navy recruiter scored the test, his eyes got very big, and he said in a hushed and reverent and rather awestruck tone (and the Southern accent helped not at all): "You got every question right!"

As if that had never happened before. Well, I got up, said thank you for your time, and left. There was no way I could enter into an organization where I would be dependent upon people who had gotten even one those dumb questions wrong. This is not to say there are no smart people in the Navy, there are, it's just that I didn't want to be one of them.

That probably was a mistake. Because, as it turns out, the business world is pretty much the same place, except you don't worry about getting blown to shit or falling into water, and there's a lot less smart people, and about the same amount of dumb ones.

So, fast forward to my first gig, and I had to write programs in COBOL. (COBOL, my dears, was shepherded along by Rear Admiral Grace Murray Harper of the USN, so that should tell where we are going). COBOL is (was) a modern programming language in that it looked more like English than machine language. I had a knack for COBOL, as it turns out, which led to more gigs.

Now I should also mention that every single company I worked for is now defunct, extinct, gone from this world. I'd like to think it was me, but no, it's just your standard business dipshittery or bungholery and asshattery that any organization with numbers larger than Dunbar's number is destined to turn into the Soviet Union.  So, since all those companies did the right thing and took a shit, fell over, burned to the water line, and sank into the swamp mud, I just assumed that every bit of my code is also gone, entropied into heat death, and all the machines that code ran on, turned into anchor chains and Conex containers.

Imagine my surprise to find out COBOL is still out there! COBOL, as it turns out, still runs a large part of the batch processing world. So, funny thing, since what I did was troubleshooting and production support (which meant aside from bug-hunting, rewriting the shitty code of hotshot programmers so that it would finish a run within the lifetime of the universe), I could probably get a job right now.

But let me tell you this story before I get to my point. At one leasing company I cannot name, we had a kid who was assigned to write a cash posting program for accounts receivables. When cash would come in, it would have to be posted into the correct cost center bucket - revenue per inventory item sold or leased. The kid worked on the program for a solid two months, going through what was then the "methodology" (even now, that term cause my jaw muscles to bunch up in irritation) of quality control and standards. I was on the review team to look at the code, and it was, even for COBOL, lovely. Elegant, well-documented, simple, easy to follow, and very clever. It involved building what is called a tree data structure where each "leaf" was an accounting cost center to receive an appropriate type of cash. As the program ran, and a new type of transaction (or an erroneous transaction or typo) was encountered the structure would create a new branch and leaf to accommodate it. I told him it wouldn't work. When asked why, I said "After you are gone and moved to on to a shinier and brighter job outside of this shithole, there will very stupid people who have to maintain this program, stupid people who will modify it. I can guarantee you that there will be one stupid person who does not understand your admittedly wonderful lacework you've done here, and will fuck it up completely. Go back and rewrite it so that even the most close-set-eyed, slack-jawed simpleton can understand it".

My advice was rejected, the program was installed, and two years later we could not close the books at end of fiscal year because someone had made a modification to the program a six months prior that subtly hosed about every other 100,000th transaction. I ended up staying awake for 36 hours to fix the code, hunt down all the transactions and get the close going again. I'd hate to think that was the highlight of my life, considering I got basically no tangible reward, but a lot more responsibility, out of the deal. (I was a consultant working outside the company, so I ended up with a very nice letter of commendation, and the person who created the bug six months prior was, per the Peter Principle, promoted sideways into a harmless manager's position. In a rather shabbily disreputable move, I would later - one late night - pour sour milk into the carpeting under this person's desk).

So. Robots. Algorithms. Drones. They are all the bugaboo right now. Drones gonna spy on you and take you down. Robots gonna take your job. Algorithms gonna be much better at everything than you are. High Frequency Trading algorithms are gonna become Skynet. It's the dystopian Singularity, the Rise of the Machines.

Yeah, right.

I think you know where this going, so, why even mention it? I will, though. People fuck up. People are lazy. People are careless. People are impatient. People fuck up in a way that is highly non-Gaussian, and they do it all the time. So there's that.

The other problem with all this? They are all of them designed and built by humans. Isn't that the same problem? Well, no. I'm talking about the really smart and conscientious humans. The problem there, the dual problems there, with something like Ray Kurzweil's singularity (or Harlan Ellison's I-Have-No-Mouth-But-I-Must-Scream reality altering hypercomputer) is they 1) ignore carrying capacity, and 2) rely on boot-strapping or sky-hooking. Ray Kurzweil expected exponential growth, but that could only happen if he had an infinite amount of human brains to throw at the problem. The total number of human brains that are dedicated to a problem means that your exponential curve turns into an S-curve. There's only so many brains.

That's problem No.1, and it's not insurmountable if you have software augmentation or boot-strapping, which is problem No. 2. The problem with boot-strapping (the other article of faith for the Rapture of the Nerds crowd) is that you need to know how to build the next smarter brain. Because if you can't do that (and, looking around, I don't see anyone doing that, simply because we don't how to build our brains), you don't get to bootstrap to the next level, and so on, and so on.

The latest angst is based upon the fact that we slowly getting better at machine learning and intelligence. We are finally aping the tried-and-true biological approach and it shows promise. The problem is the press gives us the impression that some ice dam has broken, and all the futile efforts at creating AI have finally found fruit (ignoring the fact that people in the computer sciences field have been doggedly and ponderously plugging away at this dreary drudge since, well, the late 1950s - it's just that we were all promised flying cars and HAL the computer ten years ago).

But the fact of the matter is, SIRI and self-driving google cars, Big Blue, and Jeopardy-playing Watsons, and autonomous drones notwithstanding, general intelligence, the kind of intelligence that has been displayed by brains mostly much smaller than ours (pretty much any mammal, but if you want specific names, corvids, monitor lizards, primates, dolphins, whales, etc.) is, and will for some time, continue to be out of the realm of this particular endeavor.

I would never say never, because I know there is a shitload of stuff piling up in the left field bleachers that will eventually come spilling disruptive technology into our lives (quantum computers, for example), and probably sooner rather than later, but I do think it is a much, much harder problem than the hackers think it is.

Unless, you know, you exploit some type of heuristic exploratory problem-solving method using trial and error with real life situations in an embodied biosynthetic brain encased in an artificial body. But that's so 2001.

No comments:

Post a Comment