
Ok, so do aliens have software? Or not. Let's get on with it. Consider the spaceship (that's the Millenium Falcon being refueled down below). Pretty complicated piece of thing. Lots of moving parts. Can stretch or exceed normal physical limits. Can keep the driver alive in the "vastness of space". Means supplying whatever the driver breathes and eats and handling whatever comes later. Means the ability to go pretty fast, unless aliens live
really long. Means the ability to counteract gravity...which is not such a problem when you're in space since even low-power ion propulsion can work. But it gets pretty important pretty darned fast when you're falling through the atmosphere. So a spaceship can do an awful lot of things and probably do them pretty well. And? Well, pretty complicated things usually have a lot of parts. For the whole spaceship to work, all those parts gotta work, too. Which introduces the idea of yield.
Those 95 out of every 100 work, right out of the factory, but what happens in space? Well, hopefully the aliens did some end of life testing...means running a bunch of thrusters till they poop out and seeing how long that takes. If you're gonna put your best spaceship pilot in this thing and go across the "vastness of space", you probably want some expectation that your pilot will come back....or at least keep communicating until we've all lost interest. So, lets assume that trip across "vastness of space" from alien home-central to earth is a week. The end of life testing reveals that if you put 100 thrusters on the spaceship, you run them all for a week, they still all work. But if you run them for two weeks (don't forget the trip home), a couple of them break. So what to do? OK, if the spaceship needs a 100 thrusters to move around, let's put in a couple of spares and when a working thruster breaks, we can switch in the spare.
A switch. Isn't that how all this got started? Yep, for most conceivable complicated things you want to do, you do need some means of affecting or changing the thing's behavior. At the very least, you need a switch. But it could get even worse. Suppose in doing the end of life testing, the aliens found out that if, rather than run each thruster until it stops working, you give each one a break every once in while. Turns out thrusters really like those breaks. Turns out that thrusters run that way, with breaks, stay alive twice as long! Wow. Back to the spaceship. So, let's say the green guys put in 10 spare thrusters. Rather than letting them sleep until something breaks, the alien chief tester suggests a new strategy. Rotate through all 110 thrusters. Every once in a while, the chief tester guy says, give 10 thrusters a break, keep at least 100 of them running. What happens? End of life testing says they will all last quite a bit longer....and you still get some spares. Those aliens are pretty smart.
So what needs to happen to implement that strategy? You probably need 110 switches to turn each thruster on and off. You probably need to remember which thrusters last ran so you get an idea which ones need to get a break. If a thruster goes south, you probably want to remember about the broken one so you never try to use it again. All that stuff to remember, and it has to be ready to change on moment's notice...like when the spaceship hits a flock of birds. Oh yeah, no birds in space, all right, maybe when the spaceship is landing. Back to our definition of software, "anything that lets you take hardware, a concrete thing that you can touch and feel, and then cause it to change its behavior or function", looks like we can make a pretty good argument that a safe (good against breakage), efficient (good use of spares) spaceship probably has something like software....and that's just to move around. Also has to navigate and keep the pilot alive and all that stuff...but that might be chapter 2.
So maybe there are little green guys sitting at laptops messing with software. Kinda weird. Is the existence of software one of those absolutes? People gotta breathe and eat. To exert a little control over the breathing and eating they build stuff. And when the stuff gets a little more complicated they gotta write software. Might software be an expression of existentialism, our -and the green guys- autonomy over the physical world? The developer of software imposes a his/her/its own view of reality upon the physical attributes the software controls. According to Sartre, "Evil is the product of the ability of humans to make abstract that which is concrete." What is software other than an expression of the ability of humans to make concrete that which is abstract?
No comments:
Post a Comment