Buildering Fun!

I've given ardarvin the first version of the buildering guidebook module. There's still some touch up features I'd like to add to polish it off, but it should serve our basic needs well. I'll post a link to it as soon as it actually goes up, and add it to the Random Code section for those interested in poking around.

The project allowed me to get into drupal's development side in a more practical sense, and I'm left both impressed and incredibly intimidated by the process. On one hand, I do love the flexibility and options available to a module developer, as a whole, the system seems very well thought out.

On the other hand, working in a procedural environment with a mess of random globals, random functions, uncertain data, often poor documentation of variables and arguments is a bit of a nightmare.

I've tried as best as I can to keep up on ongoing development going into drupal, but information can be a bit hard to come by (as there's just so much of it, a signal vs. noise issue). One particular update I'm happy with is a streamlining of drupal's file management functions in Drupal 7. It seems silly to have to update the database and the file system separately, instead of just hiding that all behind a single interface.

The most recent Lullabot podcast covered the reduction of the "node" as the all mighty base content container, but didn't really go into specifics. If one were to read between the lines, perhaps it's a hint of drupal slowly making it's way over to an OO overhaul.

You don't have to convince me that OO code is not the be all end all of everything, but every time I hunt down another random function, or trip up on some random global variable, I can't help but imagine what a beautiful, magical world a PHP5 OO version of drupal will look like.

Now if I could only convince the PHP developers to adopt a dot syntax for method chaining, my PHP life would be complete. There's just something so aesthetically wrong about:

$obj->setCriteria($here)->  // imaginary linebreak
    doSomething($else)->andThen($go);