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.

6 Responses to “Best computer programming analogy”

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

    This is really good. kudos.

  2. on 21 Jun 2010 at 11:52 pm montessori books

    Well, the article is actually the sweetest on that notable topic. I harmonise with your conclusions and will thirstily look forward to your next updates. Saying thanks can not simply be sufficient, for the extraordinary lucidity in your writing. I definitely will directly grab your rss feed to stay abreast of any updates. Solid work and also much success in your business efforts!

  3. on 12 Jul 2010 at 11:01 pm Northern VA Contractor

    I must say, I could not concur with you in 100%, however it’s just my opinion, that certainly could be wrong.

  4. on 21 Jul 2010 at 11:55 am planting grass seed

    Such a well written post.. Thnkx for sharing this post!

  5. on 21 Jul 2010 at 3:35 pm buy twink gear

    This site is a walk-through for all the information you wanted about this and didn’t know who to ask. Look here, and you’ll definitely find it.

  6. on 21 Jul 2010 at 5:15 pm home for sale by owner

    This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

Trackback this Post | Feed on comments to this Post

Leave a Reply