Drupal Doesn't Suck - Countering Slashdot's Amateur Web Developer Rabble

Drupal iconSigh.  Today's Drupal-related post on Slashdot, like the previous 50 Drupal-related posts on Slashdot, will generate a ton of comments, most of which will be variations on "Drupal sucks."

I'm tired of the same old conversation that happens every time this topic comes up; by reading this blog post you can save yourself the trouble of ever reading another Drupal story on Slashdot.

"WTF is Drupal?  Why should I care?  A CMS what?"  

Since approximately 90% of Slashdot's Drupal articles are technical/reference book reviews, the real question should be why someone would click through the Slashdot home page to a review, read the review, then comment on the review, without ever having any idea of what the reviewed book was about.  Apparently that process gives them a misanthropic smugness that googling just can't satisfy.  Thankfully, someone usually posts this LMGTFY link.

"I tried Drupal once.  Couldn't figure it out.  I want a website, not a Database My Sequel Tarball CMSMS.  Instead, I just signed up for Wordpress.com."

The Drupal Starter Guide is very clear about the requirements and learning curve involved with building a Drupal site.  It explicitly suggests that people consider easier alternatives if they're planning to build a pure blog, pure wiki, or pure forum site and even provides links to those alternatives.  I wouldn't mind this type of comment at all, except that it's invariably phrased as "Drupal sucks, it's too complicated, don't waste your time!" and not as "I chose a tool that was either unnecessarily complex or that I didn't have enough skill to implement.  Learn from my mistake."

"I tried Drupal once.  Couldn't figure it out.  Too complicated.  Instead, I just hand-coded a complex series of perl scripts that extract content data from an old MS Access database that lives on my desktop."

These people just terrify me.  Luckily, they are incapable of working on teams in any real capacity so I won't ever have to actually work with them... I'll just have to clean up after them when I take over their failed projects.  

My personal website (that you're reading now) is incredibly simple as far as modern Drupal sites go, but I still have a ton of functionality going on besides just serving up pages: integration with Google Analytics, Twitter, various RSS readers and importers, a secure login system, a comment system with moderation, content that appears conditionally depending on a variety of conditions, image management and processing, in-page HTML editing, and much more.  All of this functionality is provided either by Drupal or by one of the thousands of add-on modules in the Drupal ecology.  I can't imagine how long it would take me to code something equivalent by hand -- but it would be several orders of magnitude greater than the single evening I spent building this site in Drupal.

Of course there is a learning curve for something this powerful.  It takes a lot of time, effort, sweat, and caffeine to get to the point where one can build a simple but powerful Drupal site in a day (or an incredibly complex site in a few months) and that's only because thousands of Drupal community members have put in even more time, effort, sweat, and caffeine to make the software so awesome.  The hundreds of thousands of Drupal sites out there, that the thousands of other Drupal developers like me have built, are evidence that Drupal does work, that it is a valid choice for a web platform, and that the development model does produce increasingly useful software.

"Drupal is too [ big | complex | resource-heavy | tied to PHP which is a crappy language].  You should use $My_Obscure_CMS_Of_Choice instead."

Well, Drupal does have a footprint that is probably overkill if you don't need any CMS features at all.  It is complex, as mentioned above.  Resource usage is, of course, a cost-benefit decision tied to your other environment requirements, maintenance burden and skill set, etc.  Language snobs have always groused about PHP but the LAMP platform is obviously the most available and accessible hosting environment around and there is no shortage of PHP developers.

But when it comes to some of these obscure CMS recommendations, their obscurity, or at least their lack of a large community, really hinders them in a few key ways.  By now, we're all pretty sure that Drupal isn't going anywhere in the near future -- but I've helped several organizations move off of abandoned platforms.  Drupal competes in several niches but any new platform hoping to compete against it in any of these niches is going to have a hard time attracting developers and users without some sort of significant advantage.  The network effects of such a large and collaborative community have contributed greatly to the software's success.  Economics geeks can argue whether this is strictly network effect or if there is some bandwagon action going on, but the point is that the community continues to not just grow, but to thrive, and the software consequently continues to improve.

Also: Zotonic?  A CMS built in Erlang?  Good luck finding another local dev to patch that up when your first dev wanders off.  And I'm sure that the various third-party providers are just leaping to build API interfaces and libraries for that.  /sarcasm.  ;-)

"I downloaded Drupal module $X and it sucked!"

No, you suck!  I mean, seriously, dude, you're on Slashdot.  Do I really have to explain the concept of open source software to you here?  Fix it, hire someone else to fix it, build your own, but whatever you do, please lose your ungrateful attitude somewhere on the way.