When was the last time you booted up your computer? Ever thought about why it's called that? It comes from a shortening of "bootstrapping", which in turn comes from the phrase "to pull yourself up by your bootstraps". Originally meant as an example of an impossible task, it eventually came to mean to better yourself without outside aid.
The metaphor got picked up by computing, where it got big, and it got more technical. Probably, because it's used so damn much in computing. Every time you turn your computer on, it has to bootstrap itself to get a complicated program like an OS going.
The process is probably most easily described using compilers. You need a compiler to translate human readable code into machine readable executable. If you start with a small, incomplete compiler for a language, you can bootstrap the compiler. Using only the features available, write a compiler that's slightly better. Use that compiler to make a slightly better one, and so on. Until eventually you have a full fledged compiler and language to go along with it.
But computing isn't the only thing this principle applies to. The concept is well described in Sid Meier's Alpha Centauri.
Technological advance is an inherently iterative process. One does not simply take sand from the beach and produce a Dataprobe. We use crude tools to fashion better tools, and then our better tools to fashion more precise tools, and so on. Each minor refinement is a step in the process, and all of the steps must be taken.That's pretty much how all technological innovation works. Moreover, that's pretty much how all innovation works, technological or not. Technological, linguistic, philosophical, cultural. They all work by making slight improvements on earlier working models. And that's what civilization is. Our ancestors used their civilization to create a slightly better one for use, and we try to use that to create a slightly better one for our descendants.
-Chairman Sheng-ji Yang, "Looking God in the Eye"
I feel like you need some citations for this.
ReplyDelete