top | item 860049

Drupal Sucks

81 points| edw519 | 16 years ago |robozen.com | reply

94 comments

order
[+] nir|16 years ago|reply
A CMS requiring a slew of third-party mods before it can be usable is useless to someone who can code a custom Rails CMS in a day or two. (Hint, hint. Build it in Rails.)

Seriously, this is #1 story in HN? Hint, hint: you will not build a production quality CMS in a day or two, nor a month or two. Not with Rails, not with pixie dust. And if you will take the time to build something comparable to Drupal, it will inevitably have its own design flaws and learning curve and people will blog on how you suck.

Instead of "X sucks" posts, how about writing about viable alternatives to X? A post about a quality replacement for Drupal would be much more interesting.

[+] patio11|16 years ago|reply
Hint, hint: you will not build a production quality CMS in a day or two, nor a month or two. Not with Rails, not with pixie dust.

This is absolutely true. The core of my Rails site, prior to adding the web application, was essentially a gussied-up single-purpose CMS. It is not publicly accessible, supports one fairly easy editing workflow, doesn't have to worry about e.g. HTML input, would be very insecure if my freelancers were of a mind to destroy me, and very, very uncustomizable as compared to e.g. Wordpress or any site you could cobble together from Drupal plugins.

Even with all that, the CMS portion of my site would take me probably about a week to build from scratch. There's just a lot more to it than the 15 minute build-a-blog video.

[+] albertsun|16 years ago|reply
I think the post speaks much more generally to why CMS's suck in general. I've developed sites using Drupal and reviewed many many others when I was deciding what to use.

Most of the weaknesses of Drupal are shared by all other CMS's. The author's alternative is to custom code a solution using Rails. (or some other framework)

That way, you don't have to worry about all the cruft that goes into a CMS codebase to make it flexible and support everyone's needs.

All that said, I still don't think Drupal sucks. It can definitely be frustrating to use and configure, but in a situation where you need to have laypeople or relative laypeople making changes to a site and its functionality, beyond merely adding and editing content, its the best option.

[+] tybris|16 years ago|reply
You can make a production quality CMS in a few days as long as it is specialized. Genericity is the productivity killer.

I spent some time revamping my website last weekend after having done no web development for about 4 years. I roughly split up my time like this: -2 hours to build a proxy to S3 in GAE (Custom) -2 hours to set-up a pure-Java PHP implementation on my GAE proxy (OSS) -3 hours to set-up a WebDAV interface to S3 in GAE (OSS) -4 hours to create XSLT templates and build them automatically (Custom)

I use NetDrive to connect to S3, and Kompozer to edit the content. Highly scalable, nearly free website with a perfectly good CMS and no need to make back-ups. Updating the software or adding services is as simple as typing my password in Eclipse. (by the way, everything in Java)

Over the years I've found web developers are not the smartest types.

[+] spudlyo|16 years ago|reply
I'm a MySQL DBA, I occasionally work on a database that hosts a few large Drupal sites. While I disagree that Drupal simply sucks and that you'd be better off hacking your own homebrew CMS in rails, the author does make some valid points.

Drupal does indeed store logs in the database, in a table called 'watchdog'. One problem I've run into is that if a popular page generates a bunch of warnings, there ends up being a pretty heavy write load on this table. It doesn't help matters that it's usually a MyISAM table, which means that all these writes stack up when the table gets locked, say when Drupal wants to do prune old entries. I've seen this nearly exhaust all the available MySQL threads. I think there is a module that you can use to stop this behavior. Alternately you can alter the table to use the BLACKHOLE engine.

One thing the author didn't mention, is that Drupal's content search is really bad. In order to perform multiple keyword searches it ends up generating these massive queries that join tens of search index tables. These queries can kill the MySQL join optimizer which can ultimately bring your MySQL server down.

http://drupal.org/node/514366

While this bug has been fixed, the search queries are still gnarly and slow. If you're planning on running a Drupal site with a lot of content you'll definitely want to investigate an alternate search system, perhaps using something like Sphinx or Lucene.

[+] ten7|16 years ago|reply
It boggles my mind that NO ONE has mentioned that a CORE module of Drupal that is simply not switched on by default is Syslog. So what if the CMS logs to the database by default? If you know better, switch that off (you have been able to do this since V6 started using dblog and NOT Watchdog) and log using Syslog. Come on people, wake up!

Check these: * http://drupal.org/handbook/modules/syslog * http://drupal.org/handbook/modules/dblog

[+] mcantelon|16 years ago|reply
Solr seems to have emerged as the new Drupal search standard.
[+] gaius|16 years ago|reply
Or perhaps not using MySQL. Table locks indeed, this is 2009!
[+] brandnewlow|16 years ago|reply
I use Drupal. Drupal was the only option for me when I started Windy Citizen. Drupal gets a qualified thumbs up from me.

That said, it does "suck" in many ways. For example: http://drupal.org/node/65922

I build WindyCitizen in Drupal 5 because when I started, 18 months ago, Drupal 6 was still just a baby release and most major modules hadn't yet been upgraded.

I'm now at the point where I need to upgrade the service to D6 to continue getting new releases of modules I'm using. Unfortunately, upgrading a 70+ module Drupal site is a major undertaking that appears to require a team of developers. One to follow the instructions and another to clean up and troubleshoot the exploding messes that result from following said instructions. I put myself in this position by choosing Drupal, but having to raise money to hire people to help upgrade your site is not my idea of a good time.

[+] netsp|16 years ago|reply
Well, that's a function of the complexity and the customisation of your site.

You use 70+ modules? Probably some custom work as well. There's just no easy way to get that. Drupal or no Drupal. You can DIY, which comes with its own troubles.

You could probably do a lot of what you do for free in a couple of hours with Slinkset or a few days with a custom reddit. But if you want to define so much functionality exactly the way you want it, you have complexity.

No way around it.

[+] unalone|16 years ago|reply
Reluctant upvote. Drupal's what I learned in high school. It gives you pretty unparalleled control over your site. Conceptually it's a league above any of its competitors: You can do some incredible things with it without knowing any coding.

It's also ugly and hostile and maintained by some of the least friendly people I've ever had to deal with on a project. There's an insane arrogance in the community.

I wish there was something just as flexible but better. As it is, the choice is between stiff and ugly.

[+] mcantelon|16 years ago|reply
>There's an insane arrogance in the community.

My experience with the Drupal community has been the opposite. The Drupal community, more than any other project with a similar size I can think of, makes a conscious effort to get people at various skill levels involved (encouraging non-devs to do documentation, etc.). Also, there seems to be more women involved in Drupal than projects of a similar size.

[+] ique|16 years ago|reply
I can't agree with you more. I recently finished a pretty big project in Drupal that featured some custom functionality that we had to write ourselves. Not only was it a tremendous hassle to get everything to work nicely with all the other modules but the codebase is just ugly and as the article states has a very high learning-curve.

As you say it gives awesome flexibility, but it most definitely comes at a price.

[+] lux|16 years ago|reply
Sorry to self-promote, but I'm the creator of a Drupal competitor that may be worth looking at for you:

http://www.sitellite.org/

It's a mature project (9 years old, so yes there is some cruft, hell PHP 4 was brand new when it started!), but doesn't have the same community size as something like Drupal. It does have a clean UI, decent documentation (manual, courses, API reference, etc), several dozen modules, and while there is a developer learning curve, it's really flexible once you get into it.

[+] lut4rp|16 years ago|reply
Since you've already decided we're "ugly and hostile", I'd like you cite certain examples of this hostility. I've been in the community for almost 3 years now, and its by far the most insanely-motivated and awesome community I know.
[+] yannis|16 years ago|reply
Dries Buytaert wrote the first version of Drupal circa 2000, with the almost brand new language PHP whose first real version as we know it (PHP 3.0) was released in 1998. In 2003, Brendan Eich (JavaScript) author helped spin out the Mozilla Foundation.

Take your hat and salute these pioneer programmers, who actually enabled millions of websites to be established at Z E R O cost! Their code has become legacy in the correct meaning of the world and as any legacy_code has limitations and problems.

If the author was around at the time, he could by now be able to modify Drupal within minutes than days and would have used the sexiest language of the day PHP!

A challenge for the article author, release your two day RoR CMS as an open source project and if it can offer 50% of the functionality of Drupal and its various popular modules I will donate $ 2000 to the non-profit you establish to promote it!

[+] polynomial|16 years ago|reply
This is an awesome challenge and I would love to see a list of what you would consider basic OOB functionality as provided by Drupal. If the CMS he builds in RoR in 2 days has checks for half the items on the list, his non-profit gets the $2K.

This also reminds me of the SXSW shootout this year, where none of the already built CMS's could meet the site requirements in less than 2 days, and Joomla was the only team that did it in less than 3. And that was just to construct a site with a pre-existing CMS, not build the entire CMS.

[+] jacquesm|16 years ago|reply
Hey Yannis,

Awesome idea.

I've had a look at the basics in drupal, here is a minimum I think to be able to be functional and get to the 50% mark:

A framework-and-module loader.

Template hooks.

Url parser and dispatcher.

Database abstraction layer allowing for at least postgres and mysql.

The following modules:

aggregator

block

blog

blogapi

book

cck

comment

i18n

locale

menu

node

path

path_redirect

profile

taxonomy

upload

user

If, after 1.5 days there is still time left over maybe some documentation ?

Please understand, I'm no great fan of drupal, having seen altogether too much of it, but to say out loud that you can duplicate this in a couple of days is really ballsy, and I for one would very much like to see this succeed or be put to rest. (I really doubt it can be done, even in a multiple of that time, but hey, maybe miracles do happen and maybe a true guru is able to do such a thing on such a timescale).

Edit: I dropped search, calendar and contact, search can be done outside of the 'core', calendar is optional and contact can be done with a simple 'node'.

[+] tptacek|16 years ago|reply
PHP wasn't "almost brand new" in 2000. It's practically as old as Apache. And not in the way that Ruby existed for a long time before anyone noticed it; PHP has been popular for almost that long, too. I remember having to support it in the 90's.
[+] minsight|16 years ago|reply
I spent some time with Drupal a while back and stubbed my toe on each of these points. My favourite pet peeve was the fact that Drupal was repeatedly upgraded in a manner that broke existing sites, and required users to do hairy manual SQL and theme changes. If you're marketing a CMS to a not-so-sophisticated audience (which is basically who CMSes are aimed at), then an essential part of the upgrade process is the creation of tools to perform the upgrade without having the entire site in pieces on the garage floor.
[+] mcantelon|16 years ago|reply
>A CMS requiring a slew of third-party mods before it can be usable is useless to someone who can code a custom Rails CMS in a day or two.

In other words, a system one doesn't know is useless to someone who knows an other system with a similar purpose. Right. Use the system you know.

While I agree with some of this critique, here are some points I take issue with.

>Databases are great for storing passwords, content, and countless other things. These things do not include “views”, i.e. templates. That’s right, templates. In the database. Drupal stores templates in the database.

Views are not templates. Views are more analogous to database queries. Drupal does, in fact, store templates in the filesystem.

>Drupal has a history of security vulnerabilities and is written in ugly spaghetti code

Ironically, the OP's blog post is hosted in WordPress, a PHP project that, unlike Drupal, has had security response issues.

Drupal's security response is great. When's the last time an update-to-date Drupal site was hacked? The code isn't object oriented, but is clean and a coding standing is upheld.

>Gripe #4: Drupal’s None Too Friendly

Drupal's community is one of the friendliest, non-elitist out there. Really. The Drupal project has a higher percentage of women involved than any other open source project of a comparable size.

>There’s been quite a backlash over Drupal’s new trademark policy, which is rather contrary to the spirit of open-source software.

The backlash has been by folks who don't realize that protecting trademark is standard practice for large open source projects. Look at the license of MySQL, for example.

>Drupal's search sucks

What CMS, out of the box, has a search that doesn't suck? Use Solr or Sphinx.

[+] jacquesm|16 years ago|reply
> When's the last time an update-to-date Drupal site was hacked?

When was the last time that people had an easy enough time of keeping their drupal sites up-to-date with the latest patches without breaking their existing site ?

This is a major and often overlooked problem, it really isn't rare for minor (often security related) upgrades to break the site. You then have two choices, dig in (which is what you should do) or roll back (which is what plenty of people do) and cross your fingers.

Sure, they only have themselves to blame. But still, the number of out-of-date drupal sites out there is very large.

If the upgrade process (and imo that's drupals achilles heel) would be smoother a lot of these headaches would go away.

[+] dasil003|16 years ago|reply
I've built a dozen sites and Drupal and I'm also a Rails contributor. I agree with the sentiment of the post insomuch as I never want to work with Drupal again, but that's a matter of personal taste.

The fact is that Drupal is a viable solution for a huge swath of problems that Rails would cost orders of magnitude more to solve. Namely, boilerplate functionality. Drupal gets extra points because of all CMSes it provides the most hooks and thought towards extendability by developers... nothing else even comes close.

That said, Drupal is not a good design for anything specific. It imposes a lot of overhead in an attempt to be all things to all people. The architecture is actually pretty amazing for what it does, but in my opinion it's the wrong level of abstraction to really be useful to be people who are obsessive about usability, design, performance, or maintainability. That probably describes most people on HN in some regard, but it's far from the majority of people who "want a website".

In the wider business community there are far more people out in the world who have $5000, think its a lot of money, and want a full-featured blog + forum + e-commerce + brochureware site that they can update themselves. Enter Drupal.

[+] xinsight|16 years ago|reply
Couple of other problems with Drupal that haven't been mentioned:

* massive numbers of database queries to build a page (i think 30+ for a relatively boring stock homepage). (Yes, there are cacheing modules - but they only work for anon users. If you are logged in as an admin it feels sluggish.)

* You need to put PHP code in the DB (!) for example, if you only want a search box on some pages. (This is wrong for many reasons, but my fave is that if you make a syntax error, or your whole site will break!)

[+] aasarava|16 years ago|reply
Actually, you can exclude blocks, like the search box, by URL pretty easily in the Drupal admin panel. Wildcards are excepted too. No need to use PHP unless you have some very complicated rules on when to show certain blocks to certain users.

And even then, if you make a syntax error in any code in any CMS -- whether it's stored in the DB or not -- your site's gonna break in some way.

[+] mjgoins|16 years ago|reply
I think drupal is cleverly and elegantly designed, given two assumptions:

1. We can only use the LAMP stack. (perhaps with other operating sytems instead of GNU/Linux, but you get the idea).

2. We can't use php's object and class system, we have to create our own using arrays.

Given those, you'd be hard pressed to build a better CMS.

The problem is that I don't see any reason to start with those two assumptions, particularly given advances in web development in the past 5 years.

[+] mcantelon|16 years ago|reply
>1. We can only use the LAMP stack. (perhaps with other operating sytems instead of GNU/Linux, but you get the idea).

You can use nginx (and lighty as well, I believe). You can use Postgres (and Drupal 7's ORM abstracts the data model, opening up the possibility of nosql). The only thing you're really stuck with is PHP.

[+] cturner|16 years ago|reply

    In fact, my Drupal clients are so confused by the
    interface that they still send me content and ask me
    to input it for them.
This is standard. Regardless of how cool your CMS is, if you're a small software company and have clients on a CMS it is a small matter of time before they will get to the point that they time-and-materials CMS updates back to you.
[+] keltex|16 years ago|reply
So what you're saying is that eventually that clients will get so fed-up with using the CMS that they'll start paying you to make the updates? IMO this is a very bad plan that can easily backfire. You might soon find those clients time-and-materials all their work to a company other than yours.

The whole points of a CMS (for my clients) is to make it easy for them to make changes to their site without involving me. If the CMS is broken (and I've never used Drupal so I have no opinion of it), then it's time to use a different one.

[+] rbanffy|16 years ago|reply
These discussions around CMSs are totally alien for me. I have been using Plone for all sorts of sites and, while there is no learning curve at all (it's a completely vertical climb) it does a lot out of the box. I almost never considered using anything else.

And, as my wife discovered the hard way a couple weeks ago, and unlike SharePoint (a monstrosity that is often sold as a CMS), it has a very comprehensive undo facility (one I have used countless times).

[+] dlnovell|16 years ago|reply
I in general like drupal decently but highly agree with the learning curve complaint. My biggest complaint which was left out of the article is the abysmal documentation. I'm sure I could find every thing I needed to know in the site, but the search functionality SUCKS and is incredibly frustrating. This contributes to the steep learning curve and was almost enough to get me to give up on Drupal.
[+] tigerthink|16 years ago|reply
Try searching on google for site:drupal.org your problem here
[+] antidaily|16 years ago|reply
For sites less than, say, 30 pages - I recommend Wordpress over Drupal. It's easier to use, configure, and works just fine for a small business site. Even with multiple levels of navigation, WP gets the job done.
[+] pavs|16 years ago|reply
Why less than 30 "pages"?

I know sites that literally run 100s (if not 1000s) of pages with tens of millions of page views worth of traffic per month with no issues.

IMO wordpress triumphs Drupal is both User-friendliness and performance. The only way drupal might be better than wordpress is on security - and that too not by much.

With wordpress it took me couple of hours to understand 90% of the system, when I gave drupal a shot earlier this year I was still scratching my head after 5 days trying to figure out my way, and I thought I was a fast learner.

Drupal may not "suck" but it got some serious usability problem for as long as I can remember.

[+] SwellJoe|16 years ago|reply
Drupal sucks in the same way that Democracy is the worst form of government.
[+] unalone|16 years ago|reply
It sucks in the way "US democracy" sucks. The idea is good, but there're a lot of flaws in the system that could be fixed if the system wasn't so dead-set on maintaining status quo.
[+] ams6110|16 years ago|reply
For me the point where drupal starts to suck is when the core + modules won't do the job. As soon as you start getting into CCK, Views, etc. you're skating on the edge of real development, without any of the tools that make that productive. Writing PHP code in a textarea is not my idea of a good time. And if you have more than one "developer" working on it, fugehtaboutit. With so much stored in the database, synchronizing changes among various developers is nigh on impossible.
[+] shizcakes|16 years ago|reply
Is Joomla a viable alternative here?
[+] mahmud|16 years ago|reply
That is a question better asked elsewhere, not HN. CMSses in general, and PHP ones in particular, are mundane topics that shouldn't be brought up in HN unless they advance the state of the 'art' of content management in some manner.
[+] arnorhs|16 years ago|reply
I've got extensive experience with both Joomla and Wordpress and there are things I don't like about either of these - still haven't found anything better in recent years.

Anybody know of some easy to use alternatives that have - so far - managed to stay under the radar?

[+] pyman|16 years ago|reply
The author of that post, Mariya Lysenkova, runs Verdage, a consultancy whose offerings include the CMS system Webist. Of course she's going to say Drupal CMS sucks. It's free and Open Source! Open Source developers are a threat to her business.
[+] mahmud|16 years ago|reply
Slippery slope, HN. 25 points for a rant about a CMS.
[+] tsally|16 years ago|reply
I've noticed it's pretty much been the standard the past week or so. 5 minute 'apt-get' tutorials have been ranging between 10-20 as well.