There has been some discussion in recent days regarding Object-Relational Mappers (ORMs), Drupal, and why the latter doesn't use the former. There are, actually, many reasons for that, and for why Drupal doesn't do more with the Active Record pattern.
Rather than tuck such discussion away in an issue queue, I figured it better to document a bit more widely.
According to Drupal.org, it has now been four years and five days since I first joined the Drupal community. My how time flies, and how much has changed since then.
I like giving presentations. I really do. But this has been quite a conference season this year; certainly my busiest ever. Four conferences in four different states, and nine presentations. And the year isn't even half over yet...
Here's what I've been up to:
There's been a fair bit of talk about PHP IDE's of late. That's not surprising given how useful they can be. (Really, folks, vi can only take you so far.) Most of the attention has been focused on the big boys: Eclipse and its derivatives (both free and commercial), Komodo, and NetBeans. Eclipse and NetBeans are both Java based, and Komodo is based on Mozilla's XUL platform (which also runs Firefox and company). I've been bouncing between them for a while, and haven't really been satisfied with any of them. I usually refer to Eclipse as the one I hate least. :-)
There's a new contender to keep an eye on, though, that is worthy of notice: KDevelop.
As Drupal gets bigger and bigger in the marketplace, it is moving into areas where system administrators still hold sway. Dedicated servers or server farms have a different set of needs than a shared host when it comes to monitoring and performance.
That's not even Drupal specific. For any high-end web app, it's useful to be able to interact with it for administrative purposes through standard system tools. On Windows, that's the Windows Administrative Tools or IIS. On LAMP, that could be a unified web app like webmin or a KDE control panel plugin or a Gnome applet. Getting a web app into certain organizations requires offering existing sysadmins a way to integrate it into their existing management workflow.
But what pieces of the app do sysadmins want in their existing admin tools? Calling all sysadmins, what do you want from us? :-)
Oy, what a year it's been! Aside from the excitement of the election and the economy, it's been an exciting year for me in the professional realm. (Personal realm, if you don't already know then you shouldn't know. :-)) And of course, it's been a crazy crazy year for Palantir, too, but in a mostly good way.
Let's see, one new job, two new Drupal jobs, two conferences, one sprint, three camps, six new colleagues, two foreign countries, eight other US states, one book... and a partridge in a pear tree, probably. Oof!
Via Planet PHP I stumbled across this article decrying Singletons. It's not a new argument, really, but one of the comments pointed me toward a Google Tech Talk video entitled "Global State and Singletons". To be honest I don't agree with everything said in either the article or the video, but both are spot on about the problems of global state, something I've lamented before in relation to testing.
That is especially relevant now, as we consider the question of Handlers in Drupal. Why? Because the most controvercial part so far, the environment variable, is designed to address exactly this problem, a problem that is currently prevalent throughout all of Drupal.
Permit me to explain.
Earlier tonight, I was commenting on a friend's blog. He was asking about web game programming, and the challenges of Flash vs. Java. For whatever reason, the first thing that came to mind was OpenLaszlo, which some fellow Drupal colleagues have been very big on lately, so I left a quick note to that effect despite, to be honest, not knowing much about the subject.
Wait, colleagues? It took me a moment to realize that I had indeed just written "colleagues", because I've never actually worked with the people in question.
Drupal 7 is shaping up to be the most modern Drupal ever! (Now there's a silly title if I ever heard one...) Not only are we upping the system requirements to PHP 5.2 and MySQL 5.0, but PostgreSQL users will now need PostgreSQL 8.1 at least.
Recently I've been talking up various ideas for pluggable subsystems in Drupal in IRC and the other usual haunts. Ideas have been percolating in my head, but so far I have been remiss in actually writing them down. Yesterday, however, I had an epiphany to solve the primary issue I was trying to work out, so I present a hopefully workable RFC (for real, not IETF version) for pluggable subsystems in Drupal.
I am posting this over to Planet PHP as well to invite commentary from those who aren't already embedded in the Drupal mindset. :-)