The drop is always movingYou know that saying about standing on the shoulders of giants? Drupal is standing on a huge pile of midgetsAll content management systems suck, Drupal just happens to suck less.Popular open source software is more secure than unpopular open source software, because insecure software becomes unpopular fast. [That doesn't happen for proprietary software.]Drupal makes sandwiches happen.There is a module for that

Why I love Drupal

Submitted by nk on Tue, 2009-03-24 22:55

I can not even guess what drove James Walker to have a talk like he had at DrupalCon DC. It's full of false information, half-truths, false expectations and the like. I am trying to refute a few of his claims (where I could find a factual claim to refute). I am addressing this post to him. Also note that it might not make sense without the video.

First, we see a funny graph comparing Wordpress to Drupal. Supposedly, the number of users of a platform has something to do with the quality of the platform? Windows, anyone? Yes, we are happy that more and more people use us but that is not a means in itself. Also, WordPress is a blogging platform and guess what? There are more blogs than bigger websites... Apples to oranges, really.

Next up, the "scary alien head". Sure. Go ahead and do it, organize a contest for a dull, boring, enterprise-y, acceptable logo and move Druplicon into a mascot role. FreeBSD did it, they survived.

Next up some vague motions about how the welcome screen and the module screen is not user friendly enough. Well, we now have a usability team and we work on it. Hard to refute anything here because there is nothing concrete.

Next up is one of the old themes, which is removed from Drupal 7. Let's move on then...

Next up is our image problem. "We are seasoned Drupal professional and..." we know it is a problem and working on it for years! I do not want to name who made a string of presentations through many DrupalCons in the past, promising a solution... but now, ImageAPI is in Drupal 7 and there will be more. I have not seen the guy making those presentations in those issues, not even as a reviewer. I might have missed something, of course.

And then, "there is a module for that". And yes, there are 4400 modules for that, there are many duplicates, it's not ideal, but then there is now a group working on trying to at least point out the duplicates, leading often to merges. Also there is a redesign process going on and one of the goals is to make findability easier.

"And now they will surely ask questions from our community and get an RTFM". I am surely missing something but I just checked the first few pages of the Post Installation forum and I see no such questions. Noone installs Drupal and asks something five minutes later. It does require some tinkering because no two websites are alike. Once again: if you want a blog that's up in thirty seconds, go use WordPress.

"You can create anything with CCK and Views from a simple point and click interface". Noone said it's simple. I wonder where you got that, honestly. Yes you can create anything and you do not need to code in some sense. It's even debatable whether it's simple or not -- just because there are a lot of options, that makes it complex? That's usually not true, scattering options across many pages are a lot worse. Of course the initial eye tracking for the Views screen shows a bit of confusing but this is honestly like bashing Photoshop for being too powerful (and I am aware of the fact that Alan Cooper uses Photoshop as an example of a program that needs a better UI).

It follows with a bashing of the upgrade process. This is absolutely laughing stock, show me one software which is on Drupal's complexity and upgrading is a trivial, error free process. Drupal fares farely well in this regard, actually.

Now comes the usual OOP rant, I am sicked and tired of all these. First they presume that OOP is applicable in all situations. Guess what? No it's not. But even then, the example given here is simply false, how can you extend the form element type, well, with the same hook_elements you defined it, that's how every WYSIWYG module works for the last few years...

The next rant, about drupal_alter, Here is a fun bit: it's actually the Visitor pattern. So now we implement one of the design patterns that this talk so missed earlier and now it's not good. By the way, drupal_alter is not about building things twice -- it's about adding more.

We do not use external libraries. Let's see your examples... INI syntax? There is no standard for INI syntax, PHP exposes the function it uses to parse it's own .ini file but it has many shortcomings, for example if you want to add a quote in a descripion you need to use ". If we were using that, then this talk would complain about using " for sure. I have not seen a torrent of bug reports with the .info parser. Did you?

XML-RPC library. I did not write our own! We are using a third-party library, it's called IXR. And if you are so bent on it, yes, WordPress uses the same.... yes we did change a little bit because our code style is different, and now it has less bugs and it's faster... however, the project is largely dead because there is nothing else to be done w/ XML-RPC so there was nowhere to submit back our changes.

Also, note that we use the KSES library which is also largely dead because again there is little to be done with it as HTML standard is fairly fixed and also everyone else uses it. However, when a sechole was found in it All those who took it and used it unmodified (WordPress, Moodle, eGroupWare, Dokeos and who knows what else) were vulnerable but we were not because we did enroll it fully as filter_xss instead of using it as a separate 3rd party library.

About the OpenID library, noone forced your hand. update.fetch.inc in Drupal 6 used a class. We are not bigots, we use whatever is appropriate. Dropping a third party library as it is only a sensible decision when it's far superior to ours and has a community to back it. But, given our development model, the code we embrace becomes better during the years. We are not writing our own because love maintaing heaps of code, we do it because we are better. And we are ready to admit when we are not: we had our own JS in 4.7 and now we use jQuery instead because jQuery is up to our standards. There are very, very few projects that match the code quality of Drupal.

I am simply not going to debate the API problems -- if there are some that you think you desperately need, file a patch, it's not hard at all, thousands of people did it already, once upon a time even you did that instead of just standing there and whining. I am sad.

And finally, the problem about comitters and core contribution... Guess what? You do not need to know anyone. Everyone's patch can get it if it's good. If you do it... if you don't then it won't. Could we change our commit model? Maybe. But it's a very, very hard change and there were many discussions over the years and no agreement yes and it's nothing bad a cheap shot dragging this up in a presentation.

Commenting on this Story is closed.

Submitted by cpelham@drupal.org on Wed, 2009-03-25 05:01.

It was good you wrote this I think. But at the same time, James' presentation, which I attended, really was pretty entertaining. It's probably better if you take it with a sense of humor. Humorous gadflies are usually good to have around. He may have inspired some more people to go work on this or that issue...

Submitted by davideads@drupal.org on Wed, 2009-03-25 14:34.

You can create anything with CCK and Views from a simple point and click interface". Noone said it's simple. I wonder where you got that, honestly. Yes you can create anything and you do not need to code in some sense. It's even debatable whether it's simple or not -- just because there are a lot of options, that makes it complex? That's usually not true, scattering options across many pages are a lot worse. Of course the initial eye tracking for the Views screen shows a bit of confusing but this is honestly like bashing Photoshop for being too powerful (and I am aware of the fact that Alan Cooper uses Photoshop as an example of a program that needs a better UI).

No one said it was simple? I think Dries' recent comments (and comments over the years) directly contradict this. "Next is to eliminate the web developer and to make online publishing even more accessible. At Acquia, our goal is to provide anyone who wants to build a website the tools they need to build the website they want. No restrictions." You could say that this doesn't imply that anything will be simple, but most of the folks I work with have the perception that Drupal will butter their toast and develop their web strategy for them. While this is somewhat a case of client-itis, I can't say that the rhetoric and discourse surrounding Drupal (like the painfully naive How Drupal Will Save the World) has done much to help foster better expectations.

To simply say a patch will get accepted if it is "good" makes it seem like programming is like engineering with a spec in hand. I've had some patches I think are good (including one that would have prevented some bugs in early builds of OG) that have been rejected because they go against some unstated rules of how Drupal should work. That's cool, but it also reveals that statements like "Drupal is a do-ocracy" are a little thin conceptually. It's not just a "do-ocracy" -- there are social, political, and philosophical reasons for what goes in to Drupal and what doesn't that should be more explicit, not simply papered over with empty linguistic flourishes about the great community and its meritocratic system.

In all events, what's wrong with constructive criticism, or even careful and polite destructive criticism? The Django people, for their first conference, brought in a guy from another project (Mark Ramm), to poke holes in their system. That seems wise, to me. Had the Drupal community leaned towards self-criticism instead of evangelism from the early moments, I would wager Drupal would be a nicer, less frustrating system for both developers and users.

Submitted by nk on Wed, 2009-03-25 15:09.

I would say that a good number of the patches that go into core could be called that. And I personally love constructive. However, where was this taslk constructive?

Submitted by davideads@drupal.org on Wed, 2009-03-25 16:13.

Why does criticism have to always be constructive?

When Mark Ramm came and spoke to the Django folks, he wasn't saying "I'll fix these problems myself" -- he was just pointing out what he perceived to be problems from his vantage point from "across the aisle", working on another project that is trying to solve similar problems using the same language. That's immensely valuable even if it isn't "constructive criticism" in the way many people mean it. What if the critique says "tear it down" or "tear this part of it down"? Is that not constructive if the feature or behavior in question really does need to be rethought from the ground up?

Being polite and having substantive critiques is vastly more important than an imaginary notion of "constructive" criticism.

Submitted by nk on Wed, 2009-03-25 16:31.

Read my post about the substance of this talk?

Submitted by AbsoLutely on Wed, 2009-07-08 11:58.

Presentations are not there to pull holes in everything but I don't agree that a question and answer period should not be included then you would have had a much better opportunity to clear up any concerns that people may have had. If anything perhaps this has turned a little personal? But that is of course just my opinion?

Submitted by Anonymous on Mon, 2009-09-14 03:47.

Drupal frustrates the heck out of me. I prefer Website Baker personally. YMMV. Here's a good intro article for choosing a CMS.