Skip navigation.

The fine art of coding fat bums and thin waists

In the golden ages of Rubens, Rembrandt and India's Bollywood, a little bit of fat was considered desirable in a woman. I can still remember those warm soft giving huggy feelings when I went out with a bouncy-bouncy big lady in my younger days.

Things are not the same today. Slim, thin girls with slight bumps where big tender breasts should be are considered the modern ideal. And the same goes with other types of software.

My choice of blogging software was a bit like a beauty contest. I didn't choose Drupal for this weblog because of power, featuritis or scalability - it was simply a question of slimness and shape. I was most impressed because Drupal is a full-featured CMS with forums, blogs, RSS support, search, statistics, content approval, all in one tiny package. In contrast:

Drupal 4.4.1   0.43 MB
Serendipity    0.54 MB
Mambo 4.5      0.94 MB
PostNuke       2.24 MB
Xaraya         2.87 MB
PHPNuke 7.2    3.69 MB
(tgz or zip format)

For the number of features, this is better compression than bzip. Dries Buytaert, the primary author of Drupal is obviously an exceptional software designer. And PHP is only a hobby for him - he digs Java full-time.

Now this post is not merely about thin bums or drupal breasts, but big fat bloated software. I'm the author of a big database abstraction library that has been accused of bloat before. Well let me pose this paradox, if ADOdb is so big, then why is it also considered to be one of the fastest database libraries available for PHP?

The answer is that provided software is structured properly, with the high performance, frequently used code in the center (so tightly optimized that you can't breathe), and all the peripheral code in optional modules (so that they don't impede performance), then you can be fat and beautiful.

Most of ADOdb are optional modules, because we support so many databases - and we tune for different database versions for that extra bit of speed and functionality; think of it as a loop-unrolling optimization at a high level. For example, we have 5 drivers for Oracle, and 3 drivers for MySQL. The licensing of ADOdb is also quite liberal, you can have a minimalist fat-free ADOdb install.

I'm sure that some of the above CMS's I have mentioned could be a lot smaller if all the freebie icons and language packs were removed. Perhaps we need to conduct a nudist beauty contest, with all the extraneous modules stripped. Any takers?