Stupid question 35: What is meant by the term bootstrapping in programming?
Bootstrap are those things on the side of the boots, and a term used in computer science
I’ve heard this term so many times I just had to ask. With English not being my first language, I didn’t even know what the term meant in general. So let’s have a look at the term first.
What are bootstraps? The things on the side of a boot, looks like a loop. It helps you get the boots on, and you’ll often find them on cowboy boots.
What do we mean by bootstrapping in general? A self-sustaining process that proceeds without external help.
Where does the expression “pull oneself over a fence by one’s bootstraps” come from? According to Wiki: “The term is often attributed to Rudolf Erich Raspe’s story The Surprising Adventures of Baron Munchausen, where the main character pulls himself out of a swamp by his hair (specifically, his pigtail)”.
What do we mean by ‘bootstrap’ in programming? Something (a baseclass, method, API etc) that initially sets up or configures the program, and/or something that ‘kicks of’/ leverages a larger operation with an initial little kick in the butt. A little kick in the butt that gets it going and leads to a bigger action (little effort going in - major result coming out).
This probably sounds a little big vague, and the term is rather abstract and depending on the context can have different concrete implementations - therefore the vague description (although I am trying to limit the description to programming).
Do you have a better description, and maybe even some favorite bootstrappers? And since Stackoverflow links seem to be popular in comments ( ;) ) I’ll save us some time and add the first one here myself:What is boostrapping?
Comments
I think the term "bootstrapping" is most popular in deployment. It means for the installer to detect requirements and install them before installing the application. Like installing the .NET framework before installing a .NET application. From here "The deployment tools in Visual Studio include the capability to automatically detect the existence of components during installation and install a predetermined set of prerequisites — a process known as bootstrapping."
may be it derive from "The Bootstrap Theory" ...The Bootstrap Theory was pioneered by Dr. Stephen T. Colbert. It states that the best way for a person or group of people to come up in the world is to create their own opportunites and lift themselves up by their bootstraps. (http://wikiality.wikia.com/Bootstrap_theory)... Bye
I would describe a bootstrap in programming as something (usually a framework) that helps you get from A-B quicker than if you were writing everything from scratch. A good example is the Twitter Bootstrap project: http://twitter.github.com/bootstrap/
I find the Twitter bootstrap useful for UI.
"Bootstrap" in computers originally (and exclusively, until fairly recently) referred to the process which ran when the computer was first turned on. This is a rather tricky when you consider the that operating system (which includes the API to read the hard disk) is STORED on the hard disk. It's much like having a video tape to explain how to set up your VCR. To get around this problem, computers of all forms come with a ROM (in PCs, it's knows as the BIOS), located at address 0 in memory, which gives very simple & direct hardware instructions on how to get the first part of the OS (located at track 0, sector 0 on the disk). That code tells how to get the rest of the OS, and the OS tell how to get your user files. Hence the computer is "pulling itself up by it's bootstraps" (Every step of that has gotten much more sophisticated over the years, but the basic idea remains) Soon the sentence "turn the computer on and run the bootstrap loader" got shortened to just "boot the computer", and restarting the loading process without actually powering down got called "rebooting"
Agree with @James. it has been BIOS (basic input output system) based boot strapping for many years and now that is being replaced with UEFI (unfied extensible firmware interface) in Windows 8
Last modified on 2012-09-04