Friday, September 21, 2007


Technology in Star Trek, computers, part 2

One more in the technology in Star Trek series: computer programs. In part one about the Star Trek computers we mostly looked at the computers themselves. This time we’ll look at the programs.

Actually, it’s hard to separate the computer from the programming in most cases: the computers are integrated AI units that seem to do everything, simply at the utterance of a human-language sentence. Where we see direct references to programs, data structures, and the like are with the holograms. The emergency medical hologram — the doctor — is the best example.

As I said in part one, some things never seem to change. They appear still to have problems with memory leaks, or something very much related. Many times, they worry that the doctor’s program has been running for too long without rest, and they say that will cause “his program to degrade”. The most interesting thing is that this is, apparently, a permanent condition once it happens. That is, unlike with resource leaks today, it’s not just a question of “rebooting” the doctor, or even shutting his program down for a while and restarting it later, after a rest. Once his program should “degrade”, the damage would be, it seems, irreparable.

They can also “lose his program” if it stops running in the wrong state or at the wrong time, as if the power fails. There’s one episode where there’s a danger of that happening unless they can transfer his program to the mobile emitter in time. Again, this isn’t something they can recover from, so it’s truly a crisis situation.

Don’t these people take backups?

The programs also have the smoothest plug-in system around. New “subroutines” can just be dropped in on their own, and they work, adding entirely new function with no direct connection to the rest of the software. They can give the doctor starship command subroutines, and he suddenly has the skills he needs to command a starship. Or they can “delete his ethical subroutines” with no apparent side effects — he’s the same doctor in almost all ways, except that he’s now happy to do unethical medical practices.

In a similar vein, subroutines can be selectively “damaged”, and, again, apparently irretrievably. Overuse some portion of the program, and that portion could be damaged, possibly beyond repair.

The interesting thing about the spontaneous program damage is that it didn’t seem to be important to the storylines. It just occasionally added a bit of urgency that could have been accomplished with a less silly explanation. When we’re told that computer systems that advanced have that basic a design flaw, well, it’s kind of hard to suspend that bit of disbelief.

As Maggie has pointed out in the comments of earlier entries, the 24th-century crowd seems to have developed recursion into a sort of “silver bullet”. They’re having some difficulty with a computer program, someone says, “Try a recursive algorithm,” and, hey, that does the trick. And on top of that, trying it only takes two or three button-pushes. Wouldn’t it be nice if it were all that easy?

And I think this ends the “Technology in Star Trek” series. I’ve about milked it for all it’s worth by now.


scouter573 said...

It took me years of practice, but I have finally mastered recursion. It means: to curse and curse again!

Recursion is great for software guys (I loved it when I was one), but the hardware guys hate it (and I hate it now). Recursion assumes unbounded resources, or at least a significant pool of resources that are, in fact, quickly exhausted. Most programmers don't really get recursion - they use it only rarely in production code. And database guys really hate it. So simple, so powerful, yet so easily abused.

Did you notice that they never have threading problems or deadlock? At most, they have a broken scheduler ("Computer, compute pi to full precision!").


Maggie said...

There were situations where I couldn't figure out why they didn't just copy the doctor's program. I can't remember exactly when they were now, but I think one was when he was an opera star on a planet and wanted to stay, and the other was when they wanted to send him to his creator to try to cure him. There was great fear, if I'm remembering correctly, that he wouldn't make it. And they'd have to do without him. Huh? He's a program, can't they send a copy? Can't they incorporate his memories back into the original program when he gets back? Is that too dehumanizing? I'd love to have a copy of me that I could just fold back into myself while I sleep. Did you do transporters? I've enjoyed this series, even if my memory isn't very good. When a person is transported somewhere, aren't they basically killed and recreated from a "pattern?" Sure, the new thing thinks its the original person, but the original person's dead. That's not so much different from copying the doctor.

The Ridger, FCD said...

I didn't watch more than four or five Voyagers, but wasn't their EMH aberrant from being left on too long? Perhaps rebooting him would just have given them the original, not theirs with all the additions.

Ray said...

OK, so now I have to ask why you haven't mentioned or discussed the most advanced Star Trek technology of all: Mr. Data. I would have thought he (it) would be a perfect subject for this series...

Barry Leiba said...

Simple enough: I haven't seen "The Next Generation". This is all about "Voyager" and, occasionally, the original series.

Ray said...

Then you missed the very best series of all. That's just my opinion, of course, even though it also happens to be true :-)