A Django Analogy

I was thinking recently about how I look at Django and my place in it, and I found a certain analogy to be very apt: it’s a lot like a kitchen. Bear with me here.

Most people don’t go to the kitchen just to stand there. They have a purpose: to make a meal. The kitchen doesn’t provide the meal, it just provides most of the things you need in order to make the meal. There’s a set of appliances — stove, oven, refridgerator, microwave, etc. &emdsash; and and a pantry full of common ingredients — salt, sugar, flour, etc. — to get you started with most recipes, but it’s up to you to plan the meal and bring the flavors you want in the dish.

Tying it to Django, the appliances are the core features — models, database abstraction, forms, etc. — while the common ingredients are the bundled contrib apps — auth, syndication, admin, etc. — with the rest of the ingredients being your own apps that you add to the mix.

What fascinates me, though, is the plain white door in the corner of the kitchen. It blends in with the wall, drawing little attention to those who don’t look for it. But behind it lies a machine shop, where the ambitious can go and build new appliances. I don’t settle for just bringing flavor to the party, I want to make it easy to do complex things with those flavors.

I’ll probably use this analogy a lot in the future. It fits, and can be extended to accommodate a lot of stuff.

Comments

  1. At 11:04 a.m. on Nov 10, 2007, RD said ...

    Nice post... To add to your analogy, sometimes you find that Django has already made a fresh pot of coffee for you! So, it's not always just the ingredients that it supplies, some dishes are all but ready for you to put on the table and serve.

  2. At 3:33 p.m. on Dec 3, 2007, Michael said ...

    I dislike overextending analogies, but I've had some trouble explaining to people (non-programmers) asking me about Django and Python, specifically the relationship between the two. In this analogy, could Python be the utilities (water, power) that makes Django run?

  3. At 3:57 p.m. on Dec 3, 2007, Marty Alchin said ...

    I worried this analogy would try to reach too far, and maybe this is, but maybe it isn't. When I think about the machine shop in my own description, it's not really made up of much of Django itself.

    So I suppose you could say Python is that machine shop, or perhaps the manufacturer that supplies the tools found in the shop.

    "Yay! Python sent me a shiny new water jet cutter! Now I can make pasta extruders for Django!"

    Yeah, I suppose that would be rather fitting. I'd say the "utilities" part of the kitchen (electricity, water, gas, etc) would be underlying hardware or operating system services, made available by Python-produced equipment (microwave, faucet, oven, etc).

    Yeah, this is why I was worried about how far it could be taken.

Speak up!


This particular article was posted on Friday, November 9, 2007, and has received 3 comments.

It was preceeded by Ohloh's KudoRank and followed by Using Declarative Syntax, Part 1.

It contains no links.

Archive

Categories

Powered by Django.