I don't use Drupal. I don't care for PHP. Yet I still ended up attending a Drupal User Group [1] because both Smirk and R use Drupal (and I guess that means I just outted the documented overwrought PHP framework [2] he's switching to) and that means I too, have to quaff the non-cabonated sugar water [3].
Yum.
The first presentation was on what looked like a framework built ontop of Drupal, which is a framework unto itself, and I was thinking that the whole point of Drupal was to provide a framework to remove the drudgery of website construction yet it's now too low level and cumbersome to work with so let's wrap the whole thing up in yet another obtuse abstraction layer to further remove us from any tangible implementation details.
Yeah.
[In talking with Smirk after the meeting, I learned that what was being described with breathless enthusiasm was really just a Drupal distribution with a bunch of pre-installed third party modules installed for constructing a particular type of website. I'm glad Smirk cleared up my misconception of that presentation.]
The second presentation was on drush [4], which is a commnd line interface to administer a Drupal site because the Drupal control panel is apprently just too limited. Everybody (including Smirk) was oohing and ahhing over this incredible new approach to adminstration and I'm like … this is new [5]? Am I missing something here? (short answer for now: yes, but I'll get to that in a bit)
The final presentation was on the upcoming Drupal 7 release, which includes a bunch more modules in the core distribution, “stories” are now called “articles,” and a few minor API (Application Programming Interface) changes (but don't worry—there's a project to automatically convert 6x modules to 7 [6]).
If I seem underwhelmed, it's … well, because I am. I was not in the target audience for the meeting and in fact, I seemed to be the only programmer in attendance [let me clarify that a bit: while Smirk can program—he has a Computer Science degree and is getting his Masters; I think I was the only person there who actually makes a living by programming. Everbody else doesn't and even those that could program stated they will spend extra time to avoid programming if at all possible—why spend five hours writing a custom Drupal module that works exactly as you need when you can spend ten hours trying to find a module that sort of, kind of, does almost what you want so you can work around it's limitations, because, as we all know, everything that you could possibly do on the computer has already been done before, so why reinvent those square granite wheels?] [Cynical much? —Editor] [What? Me, cynical? Naaaah … —Sean]
Between the presentations and hanging out listening to the conversation afterwards, I felt very out of place there. One person there was going on and on about Titanium [7], a development environment that allows one to make “desktop applications” using only HTML (HyperText Markup Language)5, CSS (Cascading Stylesheets)3 and JavaScript that can be installed everywhere (that is, under Windows, Mac OS-X and Linux). That's not programming as I know it (and why was he bringing it up at a Drupal User's Group? I don't know).
Another person was complaining about slow websites, and when I mentioned the easy solution to that (just serve up static pages) he just rolled his eyes and proceeded to continue on with the conversation (he came across as nice, but as he said, he wasn't one of those “server guys.” Sigh).
I had a hard time explaining my reaction to Smirk after the meeting. I mean, I can understand why Smirk is using Drupal to design some websites, as it allows the customer the ability to log in and customize their site without having to bother us, but as I attempted to explain to Smirk, this ever increasing layering of abstractions is all unicorns and rainbows [8] until something breaks.
And now what?
Did the router go down? Is DNS (Domain Name Service) borked? Oh wait, Apache could have run out of file descriptors and thus can't load the site any more. Could be a disk quota issue, then again, it could be that a file that the web application locked was on an NFS (Network File System) mounted drive that actually was symlinked to a file shared via SMB (Server Message Block) from a Windows machine in accounting and Bob just changed the contents of the file out from under the web application without knowing it.
But I digress.
I'm not saying I had a horrible time, I didn't. It wasn't that bad. I just wasn't the intended audience. And the [DELETED-anti-programming-DELETED] extreme user-centric vibe in the room didn't help either.
I'm also thinking I need to do a post on [DELETED-unicorns and rainbows-DELETED] needlessly complex abstractions …
[1] http://groups.drupal.org/node/28316
[3] http://en.wikipedia.org/wiki/Drink_the_Kool_Aid
[4] http://drupal.org/project/drush
[6] http://drupal.org/project/deadwood
[7] http://www.appcelerator.com/appcelerator-platform/titanium-architecture/