Opinion29 Jun 2007 03:12 pm

So whenever I try and tell my parents, friends, girlfriends… ok, (I’m kidding about the girlfriends part) about what computer programming is, what frameworks are, and generally, what I do while in school, it becomes rather hard. I realized this early as it’s difficult to explain recursion to a new student, much less impossible to explain recursion to your mom, so I have decided upon what the best analogy for relating to computer programming is.

The Car

Frameworks

What I would say to a peer
I built a framework that is general enough to be used in multiple applications. It contains database abstraction, session handling, automagic inclusion of classes and access control. This framework can be used in multiple applications, such as my side project which is creating a roommate matching website.
What Mom hears
I built the engine that runs the car. The application can be thought of the whole car, but it’s the engine that makes it run. The engine can be taken out of one car and put into another car with little to no change to it.

Theming

What I would say to a peer
The theming in the framework allows for a developer to create a set of XSL stylesheets that can shape and mold the entire look and feel of the application. Anything from one column with header and footer to a three column layout with only a header.
What Mom hears
The application allows for me to either choose which paint I want to have on my car, and if I want a spoiler or a sun roof. With the flip of a button I can go from a silver car with a spoiler to a red car with sun roof and mud flaps.

Web Standards

What I would say to a peer
Many programmers know of all of the problems that IE has in regards to specifications and how they really throw them out and have their own rules. It’s really sad that one must resort to many of the CSS hacks in order to make a website look similar on all pages.
What Mom hears
Imagine that you have a specification to how all engines are created, and how it fits in the car. This will allow an engine to be built by one company and used by Ford, GM, Toyota, BMW etc. Now, imagine that you build your engine so that it will work with this specification, but think that there is one company (BMW) that does not follow that specification. Imagine that you have to drill a hole in parts of your engine where there shouldn’t be holes, and bang it with a hammer a few times before it will fit properly. As an engine manufacturer will be very upset that it doesn’t work properly with Audi, but you must do this to every engine. Usually at this point I hear “that’s awful” or “why would one company be like that”, then I say imagine Audi is Microsoft, and that’s how web development works.

I’ll post more analogies to THE CAR when I think of them, but these are the basic ones.

One Response to “Best computer programming analogy”

  1. on 20 Apr 2009 at 3:30 pm Doodman.

    This is really good. kudos.