Demystifying Technology without Jargon

  1. API
  2. Binary Code
  3. Cache
  4. Compiling
  5. Cookie
  6. Database
  7. Defragmenting
  8. Exploit
  9. IP Address
  10. Open Source
  11. Phishing
  12. Router
  13. Server
  14. VPN
  15. Web Browser


A compiler is a computer program (or set of programs) that transforms source code written in a programming language (the source language) into another computer language (the target language, often having a binary form known as object code). The most common reason for converting a source code is to create an executable program.


Compiling is Setting Out Your Clothes the Night Before

Compiling is like putting out your next day's outfit before you go to bed.

Think about getting dressed in the early morning. You're sleepy. It's dark. You go to your underwear drawer for underwear. Socks or leggings are in a different drawer. Your undershirt is in a third drawer. In one part of your closet, there's a dress hanging, so you walk over to the closet and put that on. Then you walk over to the mirror and check it out - is it good? It's not good. Today's a pants day. Put back the dress in one part of the closet, step over to the other side to grab a shirt, then step over to the shelf for pants. Check again in the mirror. Good? No - need a different shirt.

This process is slow, because all your clothes are in different places. Clothes are organized in a way that is best for storage, not best for getting dressed.

The best way to organize clothes for getting dressed is to have all the clothes for one day organized into one neat pile, with the stuff you put on first at the top. Ideally, the outfit has already been checked to make sure it works.

If you want to speed up your morning, you can instead spend part of your evening reorganizing your clothes from being best organized for storage into being best organized for getting dressed - you pick out your clothes for the day and lay them out for the next morning.

Source code is organized in a way that is best for understanding it and changing it. Compiling is the process of investing additional work up front to reorganize the program in a way that is best for actually running the computer program, quickly. Often, compiling also has steps that involve checking the program to make sure it "works" in key ways.


Hear a term that you wish had a metaphor? Tweet us, post it to Facebook, or, if you're feeling geeky, open a new task on Github!

Created by Clint Andrew Hall, licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.