Iris Classon
Iris Classon - In Love with Code

Stupid question 35: What is meant by the term bootstrapping in programming?

[To celebrate my first year of programming I will ask a ‘stupid’ questions daily on my blog for a year, to make sure I learn at least 365 new things during my second year as a developer]

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

Leave a comment below, or by email.
Marco
9/10/2012 6:37:05 AM
Oh great i allways wondered what that is. 

Then theres something id like to try, its called bitch slapping, do you like that? Is that something you would let me do to you? 
Amr
9/4/2012 12:51:56 PM
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." 
loreq25
9/4/2012 1:19:06 PM
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 
Paul Cole
9/4/2012 2:27:56 PM
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/ 
Mike
9/4/2012 5:46:08 PM
I find the Twitter bootstrap useful for UI. 
James Curran
9/6/2012 7:31:58 AM
"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" 
Atul Gupta
9/6/2012 8:23:06 PM
Reply to: James Curran
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 
Lee
9/29/2015 11:58:59 AM
Reply to: James Curran
Love this info @James! 


Last modified on 2012-09-04

comments powered by Disqus