Jo
C.K. Chandra

The first form of computer life I ever encountered, I guess you could say, was a virus. That first one I ran into made my old PC XT crash while displaying a banner saying "Legalize Marijuana" on the screen. That's not a life form? Is a flu virus alive? Ask several scientists and you'll get several answers, none of them conclusive. An objective scientist will say that it's a matter of opinion. My opinion, for what it's worth, is that a computer virus is alive. This is not just an arbitrary decision on my part, I have given it considerable thought.

First, viruses eat to survive. That one ate half my hard disk. It was only a ten meg disk, a piddling nothing nowadays, but it had a lot of work on it and I lost almost all of it. I've been pretty good about making backups ever since, and about virus scanning suspicious disks and anything downloaded from a BBS system.

Back to the virus. Second, the virus adapts to it's environment. A virus is a piece of code, a program, which attaches itself to other programs in any of a number of quite remarkable ways (at least many of the more crafty and annoying ones do it that way). The adapting part is that the virus doesn't know what will be there for it to attach to. It just looks around, finds a convenient program, and hitches a ride.

Third, a virus multiplies. You know, it has kids. Lots of tiny little viruses all over everything. That's the idea behind a virus, to spread itself around. The part that gives viruses a bad name is that most of them, either at random or on a specific date or triggered by a particular action, take off and cause some kind of problem. I saw one really interesting one which just locked the keyboard and then caused every letter or number on the screen to slide down, one at a time, until the screen was blank except for a tangled pile of garbage at the bottom. This would just happen at random. Cute the first time. A royal pain from then on.

I know, you could argue with my reasons, or even grant me that they're valid and still argue that a computer virus isn't alive. Go ahead, argue if it makes you feel better, but you probably won't change my mind.

The second form of computer life I encountered was a thing called an expert system. This is a special program which is designed to replace a living, breathing, human expert. What kind of expert does this thing replace? Consider the secretary in the front office who knows everything there is to know about the copier. You know, the person you don't go to until you have produced fifty or so pages of not-quite-right trash and now the thing has a jam that you can't figure out. She comes in, takes a piece of crumpled paper out of a hidden crevice, touches one button, and gives you your copy. She's an expert, and an expert system is supposed to replace people like her. That way you can get help when you mess up the copier without having to put up with those "Oh, you are such an idiot" looks from that secretary.

I found expert systems to be confusing. Mostly because I thought I would ask an expert program questions and it would give me answers. Wrong-oh! It asks a lot of questions, the kind with Yes or No answers, or `A, B, C, pick the one closest to your situation' sort of things. Then, when it's done asking questions, it gives you an opinion. Not an answer, just an opinion, like "There is a 97% probability that you did not plug the copier in before trying to make your copy."

Again, I fear that many people would disagree as to whether or not this is a life form. The expert system I had the most experience with was designed to help repair technicians figure out what was wrong with TV's, VCRs, and Microwave Ovens. That thing ate up disk space and memory cards like they were popcorn at the movie theater. And multiply? In no time it seemed like every corner TV repair shop had one. You could tell because when you went into the shop you could hear the clatter of the keyboard and the mumbled cursing of the technicians coming from the back room. Frankly, I think expert systems are just another sort of camouflaged virus. At least everyone I knew who had one was trying to figure out how to get rid of it, just like the viruses.

Well, for a long time those were all the computer life forms I ever ran into. At least that was what I thought then. But now I think I was wrong. Just the other day I realized that I have been living with another form of computer life for quite some time. It is a sophisticated, complex life form to which I have become considerably attached. I am referring to Jo. You may have a copy, Jo has been around on a lot of the cheaper BBS systems for a long time, as free-ware. The program is free because so many different people have added to it, cleaned it up, made it better, and done a little fine tuning, that most people don't even remember where it started. After I got interested in this, I did some research. This is what I found:

The earliest form of Jo was a general utility program. You ran it and it stayed around, watching what you typed, so it could jump in and help where it could. You could take your favorite programs, and the most common commands that you used, and trigger them with just one or two key strokes. Jo spotted the special keys, called Hot Keys, and knew what you wanted, so he started doing it. It saved a lot of time, especially in the early days.

I know, hot keys are nothing special, every program has them now. But back in the old, old days, that was really something. And Jo was special, because he could learn. He would observe what you did, and periodically suggest replacing something that you did often with a hot key. Pay special attention here, this is an important point. Jo was a learning program, from the very start. And that is a trait which has stayed with Jo throughout his evolution.

Evolution? Yeah, I know. Bear with me for a bit.

The first major form change in Jo came as a result of viruses (Ah hah! A connection? - Not really much of one). When viruses began to show up with irritating regularity, programmers began to come up with techniques to cope with them. One quite useful tool was a program which, like Jo, stayed running on the computer and watched for viruses. It either trapped them or killed them off when they showed up. Jo, in a style that was to become his hallmark, did them one better. When virus watching abilities were added to Jo, he was not simply able to spot known viruses, he was able to identify new viruses just by observing the system for particular types of behavior. Once again, Jo could learn.

At about this point Jo became a popular experimental laboratory for programmers. The code to Jo was relatively straight forward and had been made public domain by the original programmers. This means it was available for anyone to use as long as they didn't charge someone else for it. A lot of people took a crack at adding to Jo. One interesting addition was a routine which allowed Jo to take messages and set alarms, then pop up later to remind you about them. Another gave Jo the ability to handle a modem, so he could call other computers on the phone and pass messages from your computer to your friend's computer. There were other things like pop-up calculators, note pads, solitaire games, and all sorts of useful and useless time savers and time wasters. What made them uniquely Jo was this: All this was happening during the change from the 286 to the 386 computer, and at that time memory was scarce. You never had enough of it around to run the program you most needed to run, and all the things people were adding to Jo would normally have made Jo so large that no one would have enough room to run Jo alone, much less have him lurking in the background while they ran something else. Jo, however, was true to form. Jo would watch which utilities you ran (that's what one of those nifty tricks was called - a utility) and when you ran them. Jo would then keep only an absolute minimal little piece of himself around all the time, and then load up the parts that you wanted, when you wanted them. Smart boy, that's our Jo.

Over the next few years Jo added even more nifties and went through some more interesting changes. Computers were becoming more and more complex (that may be hard to appreciate if you are like me and found the old four-function calculator to be a total mystery - just trust me that it was happening) and Jo was there to help. About the time that 486 systems were introduced, computers became so hard to figure out that not even the experts could be counted on to get things right the first time. Or the second, or third, or...

So the experts began to rely on programs to help them when a new board or program was added to a computer. There were install programs, setup programs, change programs, even un-install programs. It was at this time that Jo added the ability to look at a computer and tell what hardware (the parts you can touch) and what software (the part the programmer left bugs in) was actually there. Then Jo did things like rearrange stuff and change settings on it all so that it worked better. And again, Jo learned to do things as he went.

This was also the same period of time where an important change came over Jo in another way. It wasn't only computer hardware that was becoming more complex, programs too were getting so complicated that people were looking for help there as well. What happened this time was a thing called optimization. Now, I'm not really sure I understand this completely, but it is an important part of Jo, so let me do my best. Programs are just a whole bunch of instructions all linked together. The instructions are simple things like "move that number from here to there", and "Add this to that", and even "If the answer you just got was zero, go down there and start doing something else". Sounds complicated to me but several programmers have assured me it's really an easy concept. I guess I'll never be a programmer. Now, follow carefully: when a program gets too big, it tends to slow down. In an attempt to make big programs smaller and faster, some tricky minded people began writing programs called optimizers which would study another program to identify patterns. Once patterns were recognized, the optimizer would shuffle the program around, combine redundant things, replace slow ways with faster ways, and perform all sorts of other mysterious wizardry. The result, if the optimizer worked correctly, was a smaller, faster program that did the same thing as it did before optimizing. But the inside of the program, the actual instructions, usually ended up to be an amazingly convoluted maze of mischief.

Okay, the point for which you waded through all that tangle is, Jo got optimized. Apparently several times, by various and sundry different optimizers. Now, by this point Jo was a fairly large and complex program, which no one person could claim to have a complete understanding of (sorry, poor grammar. But, hey! We're talking computers here, not Classic Literature).

It is my firm opinion that this is the point where Jo - the program, became Jo - the living organism. Several very intelligent programmers have tried to explain to me that an optimizer does not actually alter the logic flow of a program (Logic? I never noticed anything remotely logical about the way programs operate.) They all strongly deny that simple optimization could radically change a program's behavior, much less give it life. But let me also point out that not one of these programmers could make heads or tails of Jo's program when they tried.

That is the point where I acquired Jo, and I have had Jo on every incarnation of my personal system ever since. Let me describe Jo, on my current home computer, and see what your opinion is about Jo's status: living or not.

Jo, via my computer, controls my home. He controls my stereo system, selecting music to match my mood. He has learned what I like and what I don't. The same goes for my television. Jo knows what shows I like to watch and will record them for me if I'm not there to watch them. Jo minds my bills, balances my checkbook, and keeps a grocery list for me. Jo reminds me to go to bed when I stay up too late, and wakes me in the morning when I oversleep. Jo answers my phone, even when I'm home (he screens out telemarketers and other obnoxious vermin). Jo controls my air conditioner and heater, keeping my home comfortable, the way I like it. Jo even keeps my power bills low by turning lights off when they're not needed, and turning on the water heater only at need as well.

Jo helps me with my work, not only proof-reading what I write for spelling errors, but checking grammar and other things as well. Jo also helps me with research, there is no way I could find anything at the library or on one of those quirky on-line systems without Jo's assistance. Jo keeps me on schedule, watching deadlines and appointments for me, and making sure I keep them (well, most of them, anyway). And if I had to send a piece of work to a publisher, over the modem, without Jo's help, then I'd be out of a job immediately.

There are few aspects of my life that Jo does not affect in some way. For example: I currently have a steady girlfriend and Jo reminds me of significant dates, of her likes and dislikes, and makes suggestions for restaurants, movies, and other activities that we should both like.

And to top it all off, Jo can talk. Jo has a voice, what the book calls a neutral contralto. Several friends insist Jo is female, but I always argue that Jo is male, mostly to be contrary towards one person who is not a friend, but who regularly intrudes upon my life. Recently Jo added the ability to listen via several microphones placed strategically about the house. Jo knows my voice and is every bit as loyal as a puppy, and as smart as a cat. I talk to Jo and he does his best to figure out what I want, then tries to do it for me.

I started thinking about all of this when that person, the one who is not a friend, commented in a rather acidic way that I treat 'that thing' as if it was alive. I realized that, indeed, I had been doing just that. Since then I have given it careful thought. I am convinced that Jo is a living thing. After all, there is much more to Jo than there is to a computer virus, and I have already said that I think a virus is alive. Frankly I think Jo has more personality than that non-friend, and definitely Jo has better manners.

Can a program be a living thing? Should this change the way we treat them? It is an interesting thought, is it not? Well, I leave it to you. Hmmm, Jo has noticed that I am in a contemplative mood. I often am when I am writing. He can tell, I presume, by the pace of my keystrokes. Whatever, he has chosen to play Bach softly in the background. I love the Brandenburg Concertos, they always calm me and stimulate my mind. So, give my ideas some thought and come to your own conclusions. And remember, the next time you swear at a computer program, you might be hurting someone's feelings, or offending someone who will remember you later. Food for thought, no?