Drupal Sucks

Edit: First followup posted.

Are you choosing a Content Management System for your next site? Allow me to throw in my two cents against Drupal. In theory, Drupal is a CMS that lets you control your site out of the box. In practice, it’s a nightmare to configure and maintain.

I recognize that Drupal might work for small sites: install the software, upload your custom theme, and start adding content. But if you’re planning a serious site, with custom features and potential for high traffic, Droople, as I’ve christened it, might not be your best bet.

Apologists may protest that module X or hack Y might fix my gripes with Drupal. I think this is irrelevant. 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.)

Without further ado, here is a breakdown of why Drupal is bad for the various parties involved, together with Why It’s Bad (WIB) notes for the less tech-savvy.

Gripe #1: Drupal Stores Just About Everything in the Database

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.

WIB: Best practices dictate using a version control tool like Subversion or Git which, among other things, lets two developers “download” the same code so they can work on it simultaneously. Unfortunately for Drupal developers, database settings are not typically stored in version control. This means that two developers have no easy way of coordinating their work. Further, it means you’ll have a heck of a time replicating your settings across multiple servers if you have a high-traffic site that requires load balancing, or a staging server where you want to preview changes before they go live.

Another thing Drupal stores in the database? Logs. In the database. Drupal stores logs in the database.

WIB: Logs record visits to your website, together with other useful details like errors. When you get lots of traffic, logs tend to get huge – we’re talking gigs. Logs are important for debugging, but, unless you’re a high-security outfit, they do not need to be permanently stored. If you back up your database regularly – and you should – you’ll be transferring all that unnecessary data every time you run a backup. Further, you might want to grant a sysadmin or programmer access to your logs to help diagnose a problem. You don’t want that person digging around in your database for this information: one bad search query and your data is gone.


Gripe #2: Drupal is Freaking Hard to Use and Has a High Learning Curve

In the good old days, building a website meant coding a page in HTML and uploading it to a server. If you wanted to update the page, you edited the HTML, and re-uploaded the file. Then people who didn’t know HTML started clamoring for a way to edit their own sites. Along came Content Management Systems, presumably to let an admin log in, edit, save, and call it a day.

Enter Drupal. This CMS, my friends, is so bloated that it takes days, if not weeks, for the layperson to learn their way around it. 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.

WIB: The whole point of a CMS is enabling a layperson to update a website. I think the average person can learn basic HTML and FTP within weeks. So if a CMS takes weeks to learn, and you still need a techie to help you find your way around it, the CMS is not doing its job of simplifying the website update process.

Why is Drupal so hard to use? It’s a combination of bad usability and  confusing navigation. An example of Drupal’s bad usability is requiring a user to confirm changes twice before they’re saved—often with the Save button located below the jump, i.e. out of view. As for confusing navigation:  creating a blog post is under “Create Content” but editing a blog post is under “Manage Content” and sidebar content is under “Site Building / Blocks”. What?

Gripe #3: Drupal’s Design is Piss-Poor

Drupal has a history of security vulnerabilities and is written in ugly spaghetti code (guys, have you heard of classes? Objects? Inheritance? Oh, nevermind).

It also has poor maintainability. In other words, upgrading to a newer Drupal version breaks templates and other code you may have written for an older version. Fixing this, of course, costs time and money. Other frameworks also deprecate older APIs, but in my experience, the changes between versions of other frameworks are not so drastic, and there is often a helpful process built in to migrate your code.


Gripe #4: Drupal’s None Too Friendly

There’s been quite a backlash over Drupal’s new trademark policy, which is rather contrary to the spirit of open-source software. Why protect your trademark so fiercely, Drupal? Your product is open, and great, so why the need to protect it against sites like DrupalSucks.com? Oh, right…

Conclusion: Drupal Sucks

If you are on a low budget and do not plan on hiring a developer, give Drupal a whirl (I guess). However, if you find yourself needing an oxymoronic “Drupal programmer” to do extensive configuration, consider hiring a Ruby on Rails developer instead. Chances are, you can get a custom CMS at the same price and with half the frustration.

Edit: Oh, and Drupal’s search also sucks. Thanks YCombinator.

Edit #2: I was unclear re. the templates in the database. I wasn’t referring to .tpl files, but to Drupal Views.

Edit #3: Oh, and for the templates you do store in the filesystem, the naming conventions for overriding a particular item are horrendous. For example, block-block-5.tpl.php contains the auto-generated id in the filename. So if the node/block has a different id in a different environment (dev vs. production) you’re out of luck, and the template won’t work.

Edit #4: Thanks for the amazing feedback everyone, both positive and negative. There have definitely been a lot of helpful suggestions. I’ll look into them all and write a followup with the results!

This entry was posted in Technology. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

187 Comments

  1. Bob Bulcaen
    Posted October 7, 2009 at 2:34 am | Permalink

    A nice discussion on Drupal. One has to stay critical. Hmm. I do have 7 important remarks:

    1. You claim that Drupal is an out-of-the-box CMS. It’s not. Drupal is a framework to build content management solutions. Drupal is like Lego Technics, not Playmobil.
    2. And that’s why Drupal is not suitable for small web projects. On the one hand you say Drupal is complex (that’s righ), but on the other hand you claim Drupal is for smaller websites. Drupal is hard and only suites the needs for more complex projects. And if you have experience with Drupal, only then you should also use it for smaller projects.
    3. You claim it’s better to build your own CMS. That’s right if you’re the only person on this planet. As a programmer you should be aware that others might continue to build on your web project. Therefore it is much easier to use any standard CMS, however complex it might be. There are plenty of Drupal developers. But you’re the only one who knows your own home-made CMS.
    4. Drupal stores logs in the database. And therefore the logs are easily accessible… Cron jobs will empty the logs anytime you want.
    5. Templates are not stored in the database. Views are. For huge content websites, views are like magic because you can publish your content on any given place. But views and templates are not the same thing.
    6. Drupal is not user friendly. This all depends on the developer. It’s very easy to create a perfect user friendly environment. We use it for 23 websites and almost 200 editors who regularly add content without any education. Inside editing, custom wysiwyg, user friendly admin menus. You can all make it yourself, easily.
    7. Drupal is spaghetti code and hard to upgrade. I think any developer believes another developers code is like spaghetti. Sure, the code can be more accessible. But on the other hand, there are over 3000 programmers working on Drupal. It’s hard to keep them all on the same track. And what is more important: proper code or loads of interesting and usefull modules.

    Conclusion: You do not have to love Drupal. You may even hate it. But saying ‘Drupal sucks’ is an easy quote to put a blogger in the spotlights. Sure, Drupal needs better user friendlyness, a good search engine and streamlined code.
    But if you know something about Drupal, then you’ll notice Drupal is a good framework to manage content. Drupal is excellent for multiple sites with high traffic. There are loads of modules and developers you can choose. Drupal is free and withstands many commercial products.

  2. NikLP
    Posted October 7, 2009 at 4:13 am | Permalink

    I’m so bored of people bashing Drupal I can’ t even be arsed to read this. Drupal is hard, but when you know it you earn good money and you can do almost anything, sometimes without writing any code. I’m lazy and I like money, and so are you, so stop being a dumbass.

  3. Posted October 7, 2009 at 8:14 am | Permalink

    The author is entitled to his opinion, but it is seriously misinformed. In haste he’s drawn up a huge variety of assumptions about Drupal and its operation that could easily be put to rest with a little bit of time with the system and it’s fantastic community of developers and other professionals working with it every day.

    I think it’s equal to argue that you can do anything useful with Rails without downloading additional code to assist, whether it’s more gems, code snippets, and other things. Try doing anything but the 10 minute blog tutorial without knowing anything about Rails and see how productive you are. At the end of that exercise, someone who hasn’t spent the time to learn the framework could very well argue that Rails sucks. But that would be an equally ill-formed opinion.

    My point is that these frameworks help with productivity because you invest the time to become familiar with them. Such a framework will always have shortcomings and bugaboos. The truth is tens of thousands of people are doing incredible things with Drupal every day, both as a framework and a CMS, and have found the ways around the things you list as limitations.

  4. Mannkind
    Posted October 7, 2009 at 12:43 pm | Permalink

    @Trevor,

    Your ideas are intriguing to me and I wish to subscribe to your newsletter.

    Seriously, you made a well-written, informed, rational comment. Thank you.

  5. Posted October 14, 2009 at 9:29 am | Permalink

    You should try Concrete5. Both user-friendly AND powerful.

  6. Posted October 15, 2009 at 1:30 pm | Permalink

    Bob Bulcaen is right, you narrow minded writer

  7. Posted October 26, 2009 at 9:30 pm | Permalink

    I agree Drupal is not a good choice for a large website project, it isn’t even a good choice for a small website project.

    I would recommend any developer to stop wasting time with Drupal, its terribly designed and not user friendly.

    Sure it’s possible to make a user friendly interface for anyone to manage content with Drupal, but in order to do that you have to spend way more time modifying the ridiculously long code in Drupal, rather than starting with a more simple CMS that gives you more flexibility.

  8. Posted October 28, 2009 at 9:31 am | Permalink

    That’s a pretty narrow view you’re putting forward here. Some of the points you present are not even valid (i. e. I never keep my configuration in code, I use features and drush).

    What’s missing here at least is to weigh Drupal’s disadvantages against its advantages and if you slide in an alternative (you mention rails) you have to spell out the plus/minus points there too.

    Even while I am using Drupal on an every day bases, I am the last one to defend it as the perfect hammer for every nail on the web. But this is cheap slander, I would expect smarter and more constructive insights from a blog that wears “Web innovation, entrepreneurship, usability” around its neck.

  9. Posted October 29, 2009 at 7:03 am | Permalink

    Yeah, that statement about themes is absolutely false. They are not stored in the template.

  10. Laura
    Posted October 29, 2009 at 7:25 am | Permalink

    Untruths:

    1 – Theme templates are not stored in the database. Views is a query builder, but even there views queries are cached, and you can export them into handling them other ways. Please show me a query builder with a GUI that does not save what you do in the database.

    2 – Logs don’t have to be stored in the database. This is a setting in core. Maybe you aren’t familiar enough with Drupal to know this?

    3 – You also probably don’t know about Features module and new efforts to make all configurations exportable to file which can be version controlled, deployed elsewhere, etc. It’s already working. If you’re going to include contributed modules like Views in your attack, you should include all of what contrib offers.

    4 – “The whole point of a CMS is enabling a layperson to update a website.” That’s one small subset, but it’s not what a CMS is about. You want simple, go with Wordpress. Drupal can take longer to learn because it is more complex — you can do more with it. You don’t put beginner pilots into F-16s either.

    5 – “An example of Drupal’s bad usability is requiring a user to confirm changes twice before they’re saved” – That’s simply not true. You can configure it that way, but nobody is forced to use that configuration.

    6 – “Drupal has a history of security vulnerabilities”. So does every other software application out there. That’s why there are updates. The difference is that Drupal is very public in releasing security updates. Most other systems are not.

    7 – “upgrading to a newer Drupal version breaks templates and other code you may have written for an older version.” This is true, and it’s by design. You may disagree, but that doesn’t make something “suck.” Why? http://drupal.org/node/65922 and http://buytaert.net/backward-compatibility

    8 – “There’s been quite a backlash over Drupal’s new trademark policy” – You link to another FUD site. Easy to spread FUD. But if you look at the details, the Drupal policy is actually in line with most open source projects. It’s actually more lenient than Wordpress. Oh, and here’s the actual trademark policy: http://drupal.com/trademark (And afaik Dries has no intention to go after that silly site.)

    9 – “Drupal search sucks.” You apparently haven’t heard of Solr search or Lucene.

    I also wonder how getting a one-off custom Rails site is going to be better than working with an open source system. One of the great benefits — the real point, really — of open source is to work with shared code. Shared modules, shared core. That way you benefit from what others have done. Do you get that from a custom Rails site?

    This post would mean something if you actually knew of which you spoke. Drupal isn’t perfect, but it doesn’t pretend to be, either. I’ve watched it improve immensely. That’s one of the benefits of embracing upgrade path over backwards compatibility. No need for Drupal to drag around code, thinking and practices from 2004. This is an extremely active community. Usability is improving. Take a look at Drupal 7.

  11. Posted October 30, 2009 at 2:37 am | Permalink

    I’m about to blow ur mind

    function node_views_default_views() {
    $view = new stdClass();
    $view->name = 'frontpage';
    $view->description = t('The basic front page view.');
    $view->page = true;
    $view->url = 'frontpage';
    $view->page_title = '';
    $view->page_type = 'teaser';
    $view->use_pager = true;
    $view->nodes_per_page = variable_get('default_nodes_main', 10);
    $view->block = false;
    $view->menu = false;
    $view->breadcrumb_no_home = true;
    $view->sort = array (
    array (
    'tablename' => 'node',
    'field' => 'sticky',
    'sortorder' => 'DESC',
    'options' => '',
    ),
    array (
    'tablename' => 'node',
    'field' => 'created',
    'sortorder' => 'DESC',
    'options' => '',
    ),
    );
    $view->argument = array (
    array (
    'type' => 'node_feed',
    'argdefault' => '2',
    'title' => '',
    'options' => '',
    'wildcard' => '',
    'wildcard_substitution' => '',
    ),
    );
    $view->field = array (
    );
    $view->filter = array (
    array (
    'tablename' => 'node',
    'field' => 'promote',
    'operator' => '=',
    'options' => '',
    'value' => '1',
    ),
    array (
    'tablename' => 'node',
    'field' => 'status',
    'operator' => '=',
    'options' => '',
    'value' => '1',
    ),
    );
    $views[$view->name] = $view;
    return $views;
    }

    omagawd, a view in code

    do you even try to google anything before starting a rant?

  12. Ben
    Posted November 14, 2009 at 3:47 am | Permalink

    @Laura

    I was given the job of taking content off a Ruby on Rails site and using Drupal for the new site.
    The old site was a piece of shit, because the developer didn’t know what database normalization is. I had to use a lot of regex to pick bits and pieces out of the database.

    Although many of the authors points are for the most part true, I don’t think writing custom code is that great either. For a start you have to do a lot more work, and maintain your code too.

    Drupal could get better by being OOP, saving settings in config files instead of the database, however I think the benefits of many polished modules outweigh the cons.

  13. Chris
    Posted December 1, 2009 at 6:42 pm | Permalink

    In fact, Drupal doesn’t suck, which is better than you could say for this author, who puts his byline to such brazenly misinformed piffle.

    The author obviously didn’t research the topic at all before writing this idiotic screed! e.g. Drupal “views” are certainly not “templates” by any stretch of the imagination, and in fact, Drupal templates are stored in the file system. I’ll stop there, and leave this idiot to check his facts.

  14. Chris
    Posted December 2, 2009 at 12:05 am | Permalink

    I challenge you to debate design patterns with some of the Drupal developers you so rudely disparage—you know, by saying things like “programmer” in quotes. That’s rude, and no amount of apology, correction, or edit #N can retract your ignorant, ignoble, stupid post.

  15. Dustin
    Posted December 4, 2009 at 9:59 pm | Permalink

    Thanks for your post, it has really opened up a great discussion. However, many of your criticisms of Drupal can be said of Ruby on Rails as well. It is very easy in Rails to have very inefficient queries if you don’t use memoization or if you use model relationships without thinking such as HABTM, etc.

    Drupal may not use PHP OOP constructs per se, but it demonstrates OOP concepts. The Node is one of the best examples as it uses the concept of Polymorphism to tailor the Node into things such as Polls, articles, forums, etc (A big advantage over Joomla in my opinion and allows for better ACL & makes things like Organic Groups so powerful). The use of hooks demonstrates Encapsulation, and allows for clean Module writing.

    I program in Rails, raw PHP, and within Drupal. The thing about coding your CMS or your own App from scratch is that you are your own support. Coding around a CMS such as Drupal, is that your problems are probably problems that have been solved or there is already an awesome module that handles the work for you. This drastically increases productivity, and when you have a client breathing down your neck, delivery time is crucial.

    The argument of “why not just code your own CMS” is weak. It reminds me of the people who say, “why not write your own framework” or even “why not just write your own programming language”. No need to reinvent the wheel, unless there is strong reason to do so. The creation of Rails is a great example of how DHH popularized how a web app should be written, with MVC, metaprogramming, and now RESTful architecture. Unless you are offering a new philosophy & new architecture that offers something of value, I wouldn’t waste my time. The Ruby language is awesome because it offered new philosophies and compiled some cool features from Perl, Lisp, etc. But coding something just to do what something else already does, doesn’t really support Object Oriented Programming philosophy anyways (reusable code, etc.)

    But believe me, Rails has a TON of horrible points too (and you complain about Drupal’s backwards compatibility??? Rails is notorious for not being backwards compatible with old code & gems. I’ve had so much code break because of a new Rails version). There are teams writing CMS’s in Ruby and I have yet to see anything on par with Drupal in terms of community and extensions, so I doubt writing something on my own in Rails, DJango, or CakePHP to do content management would be at all useful.

    Keep in mind Drupal is a CMS. So for doing Content Management, it is one of the best. Rails is a general web framework, so I would use that to code something like Digg, Twitter, or a Facebook App. Two totally different things in my opinion.

    If you want barebones effective Drupal. Drupal Core + Views + CCK. Very powerful stuff. Then throw on top custom PHP in Blocks or Pages and you can do some crazy stuff.

    Anyways, thanks for the discussion!

  16. Posted December 6, 2009 at 12:05 pm | Permalink

    If you need either drupal OR rails you’re an imbecile. If you can’t write the functionality of either from scratch you should be killed.

  17. Posted December 17, 2009 at 10:17 pm | Permalink

    I was just interviewed for Drupal position, the employer wanted me to show him some code, which I’ll happily agree too. Also this isn’t the first time I’ve toyed with Drupal, but after seeing CODE BLOCKs, I feel pretty horrid about Drupal. Managing code in a database is retarded.

    Also, if you look at some of their functions it gets more retarded, for example:


    4.6 – 5 -user_authenticate($name, $pass)
    6 - user_authenticate($form_values = array())
    7 -user_authenticate($name, $password)

    It gets pretty retarded between versions, somebody thought it would be a good idea to change the function parameters in 6 and 7, and change it back to the normal usage. This simple example screams bad development all over.

    I’ll stick with Ruby on Rails and not Drupal with seven cups of coffee.

  18. Roland
    Posted December 17, 2009 at 11:33 pm | Permalink

    6 – “Drupal has a history of security vulnerabilities”. So does every other software application out there. That’s why there are updates. The difference is that Drupal is very public in releasing security updates. Most other systems are not.

    This illustrates how far off-base many Drupal fans are. A large number of vulnerabilities IS NOT a measure of good security and Drupal DOES NOT do a better job of publishing or releasing updates than other OSS projects. But it is not all Drupal’s fault. PHP is a good part if the problem, not being OO, it doesn’t compile, is dynamically typed, and very easy to write sloppy code…

    While Drupal certainly isn’t the worst OSS out there the criticism mentioned in this blog post are all valid and they are all good points (unlike most of the rebuttals).

  19. pixelis
    Posted January 13, 2010 at 2:25 pm | Permalink

    - I think this article was written by a developper
    - All developpers I know, they hate other developpers’code
    - I think many developpers assume they know how rules the matrix
    - I know developpers are not skilled at making user friendly interfaces
    - I see more and more content managers people having experience with Drupal, they dont with your own home made cms
    - I agree Drupal is no more than a web content management system. Dont use it to build web apps. Frameworks are perfect for this.
    - I like Drupal because I can build evoluated website prototypes (not apps) without any help from a developper
    - Home made cms are usually lighter, more friendly, faster,… but ususally, they are not extendable, not well secured,… the support, maintenance, evolution depend on the exact team who build it…
    - It is very important to choose the right tool for the right project, depending on specs, evolutivity, security issues,…
    - I cannot believe a developper on his own can build the same kind of a tool that is maintained by thousands developpers community

    DRUPAL ROCKS !

  20. Graham
    Posted January 18, 2010 at 4:40 am | Permalink

    @dustin – “The thing about coding your CMS or your own App from scratch is that you are your own support. Coding around a CMS such as Drupal, is that your problems are probably problems that have been solved or there is already an awesome module that handles the work for you. This drastically increases productivity, and when you have a client breathing down your neck, delivery time is crucial.”

    The flaws being there are very few “awesome” modules in Drupal, even realtively popular ones have bugs open for weeks or months, they are generally bloated because they try to please everyone and the popular frameworks all have many plugins, modules, libraries, etc that also solve a problem for you.

  21. S
    Posted January 23, 2010 at 3:36 pm | Permalink

    Drupal does suck, but to suggest Ruby on Rails as a solution is just trading one kind of brokenness for another. Ruby’s performance on the interpreter level sucks, then add the bloated rails framework on top of that and it’s a disaster waiting to happen. If you’re site is more than just a hobby or a proof of concept, stay away from Rails as well as Droople.

    Wordpress is the best alternative to drupal. It has it’s own internal problems with spaghetti code, but at least there’s much less code to deal with and it’s a bit easier to understand the internals, mainly because there is less code. Besides, wordpress looks nice, works great, and is easy to learn right out of the box. It’s also a piece of cake to convert it from a blogging app to a straightforward CMS.

    If you’re going to end up even looking at the code (and you will have to by necessity if you use Droople or Rails), you may as well just save yourself some time and just change a few lines of wordpress code and just get on with your life.

    http://www.graphicdesignblog.co.uk/wordpress-as-a-cms-content-management-system/

    http://www.noupe.com/wordpress/powerful-cms-using-wordpress.html

  22. Casey
    Posted January 27, 2010 at 2:02 pm | Permalink

    Drupal is by far the worst CMS I have ever used. Stay far, far away from Drupal if actually want to work on your site instead of fighting with Drupal constantly. Terrible CMS.

  23. Posted January 30, 2010 at 10:20 pm | Permalink

    I’ve read most of the comments here and while I tried to wrap my head around Drupal, I figured that the trouble of learning it is not worth it. Especially if you want to build a community site. A forum based system seems much easier and more standardized that users are more likely to adapt to it than a complicated CMS.

    However, the biggest reason I think people get frustrated with Drupal is NOT that it’s hard to learn or anything of that kind. In fact, I think it’s EASY to do certain things with Drupal quickly. The hard part is building a site you want exactly the way you want and that seems to require a lot of customization within the framework. The unified administration interface of Drupal makes that a lot harder.

    To me, getting a unique community website is about putting several components together and making them seem part of the whole deal: blogs, articles, reviews, news updates, forums, albums, galleries etc. Thing is most CMSes try to unify all these aspects into one solution. Most of them end up being complex and bloated and Drupal seems to be no exception to that rule. As a result, it makes it harder to build something out of a CMS that actually looks UNIQUE and DIFFERENT. Of all the time I spent tweaking around with Drupal, I never felt that I could make it fit into my needs with lesser effort. It seems I was fighting the software to make it work the way I want it. In the end, I figured that the added effort was not worth it.

    As an analogy, I’d say Drupal is a wild beast that requires a lot of taming and controlling before you can get it to dance to your tunes. Whether it’s worth it or not depends on your own requirements and patience.

  24. Posted February 9, 2010 at 12:34 am | Permalink

    Negative posts like this result in a slew of responses that only end up making Drupal look stellar. If you want a blog like this: Wordpress. If you want a multi-user site with unlimited growth and scalability potential: Drupal. However, as with any framework, it requires Developers who know how to use it properly. Yes, I’ve seen some horrible Drupal sites and fixed some of them myself.

  25. Posted February 17, 2010 at 6:44 pm | Permalink

    I have had a very negative experience with Drupal as well. I could go on an on with the details, but don’t have time. I’ll just leave it at that these two things stuck out like a sore thumb:

    1) Drupal is not suitable if you want to create anything that hasn’t been created before. In other words, it’s not useful if you are creating something of value. Drupal fanboys reply to criticisms that it’s too complicated by insisting that it’s too powerful and flexible for the person who says so. Unfortunately, Drupal fails here even more than it fails in simplicity. The tiniest change can require tapping into core and that means having to repeat yourself when an upgrade comes.

    Unless vanilla Drupal, plus CORE modules are sufficient for you, best make something from scratch. It will be easier in the long run, even if you factor in the time required to make your code secure (which isn’t as hard as people insist it is). I’ve had a few really good Drupal programmers concede this point to me. I’ve been told it’s my fault for “having too many customizations.” Nothing of value is going to be off the shelf and if off the shelf is sufficient for you, then something easier to use like Joomla or Wordpress or Concrete 5 would be a better choice.

    2) The community. People who’s livelihood rests on wielding this one hammer (Drupal) against all the screws, pieces of pressboard and antique china the internet has to offer. They insist that everything is possible in Drupal. It’s their mantra, but all that really means is anything is possible in PHP (not really, but I’d let that less preposterous claim slide). There’s great hostility to creativity, wanting to do things in a way that is user-friendly or attractive or using non-standard ajax or javascript. I met quite a few Drupal coders I liked, don’t get me wrong, but asking if anyone has had experience doing something in Drupal on the forums always resulted in “why would you want to do that?” Drupal makes sense only to Drupal developers and are hostile to all criticism, even if it’s valid and constructive. (I’ve seen quite a few non-derogatory posts get deleted that should’ve have been).

    Rails is better. MIT license. Or roll out your own PHP CMS using Zend. Or use Django. Or join the Concrete5 community and help them improve their damn good CMS. Or if it’s simple enough, use Wordpress (fun to make plugins for). You can’t make your own web apps in Drupal (I think many Drupal programmers would admit that, but countless Drupal users insist you can and will waste your money trying to make it for you and failing miserably).

  26. Steve
    Posted February 18, 2010 at 11:01 am | Permalink

    Just reminding everyone that Drupal is a terrible piece of european garbage and everyone should stay far, far away (unless you live in your moms basement and like to mess with a horribly broken CMS all day).

  27. Stu
    Posted February 18, 2010 at 4:06 pm | Permalink

    You can fuck off, Steve, because I like Euro-trash and I like living in my mom’s basement.

  28. streetparade
    Posted February 28, 2010 at 12:03 pm | Permalink

    Hmm.. the author who wrote this article was a Women. So that explains many things in my opinion, not that womens arent technicaly enough but, comparing a framework with a cms is realy brainless.
    In my Opinion Drupal is designed for High trafic sites. Its easy to learn and there are a lot of modules or themes around. The best thing is everything is free, you dont have to hire a developer to hack it for you. Just install it and use it.

  29. Gueno
    Posted March 18, 2010 at 3:42 am | Permalink

    ahahahaha !!!

    I love the way the author is killing drupal using fake arguments as the 10 first comments explain it very well !!!!

    Seriously, stop being so negative and losing time by writting such a post, instead use this time by trying to learn more about drupal or just try to find better

  30. Eric
    Posted March 29, 2010 at 12:11 pm | Permalink

    We tried to use Drupal over the course of a year to build relatively simple sites, thinking it would save us time/money and enable us to tap into the army of Drupal developers out there. Turns out that some pretty simple frontside features required black art to implement, requiring our in-house Drupal guru to have to continually intervene because the skill level of the ‘army’ just doesn’t seem to be that high. The admin was an embarassment to try to explain to clients.

    The guy above who says “Drupal is hard, but when you know it you earn good money” pretty much explains why it was a mistake to pursue. Interestingly, we’ve lost a number of bids to Drupal shops due to its ‘buzz’. But I think these folks are in for a big surprise some day.

  31. Posted April 2, 2010 at 7:57 am | Permalink

    How about the fact that almost every Drupal site I’ve seen looks like a 3rd grader designed it.

  32. Pherdnut
    Posted April 5, 2010 at 12:59 pm | Permalink

    It just strikes me as an awful lot of effort to avoid actually learning how to write code properly. If you’re willing to learn an app that complex and convoluted, you’re probably more capable of handling writing apps with code from “scratch” with libraries that give you a lot more flexibility than RoR or Drupal than you realize. Try it. You might like it.

    BTW, PHP has had OOP-capability since at least version 5, I believe.

    My personal gripe with Drupal:

    Like a lot of Java solutions, in some cases RoR, and even .NET, it attracts people who are drawn to the siren call of ‘easy.’ Not surprisingly, people who want everything easy tend to suck to work with, their communities are full of misinformation and bad advice, and the apps they ultimately build aren’t very inspiring to say the least.

    People are doing awesome stuff in PHP and Python. They aren’t doing awesome stuff with Drupal without real devs (yes, REAL) to back them up. The knowledge, the talent, and the drive to improve on their craft simply aren’t there, typically.

    “I’m lazy and I like money, and so are you, so stop being a dumbass.”

    ‘Nuff said, as far as I’m concerned. The assumption that everybody’s priorities are the same as his speaks volumes. I’m sure we’ll be seeing Drupal devs like him at Google and Mozilla real soon.

    For the record: I have no problem with people who like Drupal because it allows them to crap out boilerplate websites in record time. It’s a great way to make a buck off of small to medium businesses who like you, are content with mediocrity. Just don’t pretend you’re in the same league. You’re not even close.

    Also, I do appreciate the attention the Drupal community and I assume the framework itself tends to put into creating sites that validate. It makes it a hell of a lot easier to fix busted front ends on Drupal sites than on Joomla sites.

  33. Posted April 24, 2010 at 5:08 am | Permalink

    Drupal is not for amateurs and half-timers, most of your complains just show that you haven’t even read the documentation

  34. Eric
    Posted May 4, 2010 at 2:55 pm | Permalink

    I agree with most everything of the original post. My clients absolutely detest the UI — they find it unmanageable. Most modules are of low quality; you have to try a dozen modules to find a decent one. The architecture is quite poor and the database is very hard to navigate. I sincerely think that writing the site from scratch using a proper framework (Django, for example) would have saved me weeks (that’s a lot of money). It would also have been a much more flexible platform to keep building on.

  35. Posted May 4, 2010 at 7:08 pm | Permalink

    I am not on either side:

    Drupal doesn’t suck or rules. It is just a matter of choice.

    Look here. Drupal 7 is coming later this year and the alpha version RULES! But I won’t judge from the alpha (after all, it is super unstable!)

    On the other hand, as always, Drupal changed the API for every release. I really hate it when you have to wait (or even help sometimes) modules to catch up with the new release very time it goes out. It just sucks.

    I really think the Drupal community obsess with trademarks, so that’s a con.

  36. steve
    Posted May 5, 2010 at 1:38 am | Permalink

    The author has some valid points. I assume most druple supporters don’t know much html which is sad because it can be learned in 3 weeks like he said. Yes more work and maintaining code is a pain, but at least you’ll know what the stuff between the means.

  37. Booker
    Posted May 12, 2010 at 7:24 pm | Permalink

    I mainly code in Zend Framework and Django while still supporting many legacy code bases and after 4 years of setting up and customizing Drupal as a side job the only folks I’ve come across who have had negative opinions about Drupal are those who couldn’t handle it or just didn’t have the discipline to finish a project based on someone else’s work. Coding from scratch is a poor business decision if solutions already exist. No matter what coding practices are hot today it will be laughed at in the future..

  38. someguy
    Posted May 16, 2010 at 5:39 pm | Permalink

    The disadvantages and failures of Drupal largely overshadows it’s claimed advantages. Sure it has ton of modules and less need to reinvent the wheel, but what happens when the wheel is of shoddy build quality ? it requires, more maintenance, your productivity and value generation is hindered significantly because of the fact that Drupal is procedural, where things change, and things break that has other dependancies. Sure some of you said nodes adhre to OO principles but the fact that cost of change is unpredictable, and likely higher than any other CMS platforms is worrying sign.

    Cost of change as low as possible, with Drupal, cost of change continuously increases, until you can’t deal with it. The MORE you do the MORE debt (future debugging time) you create…. When versions change, it will most likely break your code.

    Drupal just sucks big time but some people feel masochistic enough to inflict themselves with Drupal faggotry.

  39. Posted May 21, 2010 at 8:11 am | Permalink

    Bloated content management systems like Joomla or Drupal are terrible for the end-user experience and not very developer friendly. Concrete5 is a new powerful CMS that is easy for developers and even easier for end-users. It works on a in-context editing model so you make changes as you’re browsing your site. No more portal clones! Try a demo of Concrete5 here: http://bit.ly/concrete5cms

  40. ugh
    Posted May 26, 2010 at 11:02 pm | Permalink

    Drupal is pretty, pretty, pretty horrible. Coming from a background of actual application development, I was terribly impressed by Drupal’s inefficiencies and complexities. If you love Drupal, it’s likely due to one or more of the following:

    A) You’re over 50 years old.
    B) You’ve been developing websites with Drupal that work just fine, thanks, for years. Learn something new? Please.
    C) You’ve read about design patterns, and it all sounds like a bunch of postmodern gobbledygook.
    D) You’re a masochist, the kind that’s gets off on frustration.
    E) You charge by the hour (and a hefty rate, at that), so what difference does it make if you could get a site up in a quarter of the time with a more modern open source CMS framework?
    F) You work for Drupal, and are required by contract to love Drupal.
    G) You think MVC stands for Massive Venomous Cock, and that (rightly) scares you.
    H) You were trained at a vocational school in the late nineties.
    I) You’re a young web developer who has somehow managed to avoid all information regarding modern web development.

  41. Tim
    Posted May 29, 2010 at 12:12 pm | Permalink

    Webb hit the nail on the head:
    Drupal is not suitable if you want to create anything that hasn’t been created before.
    This can easily be said about all CMS products. They all have ‘gotchas’.
    Furthermore, has anyone noticed the sheer volume of CMS applications on the market? The reason for this is that they are TRIVIAL to create. That’s right.
    We were looking at CMS’s for almost 2-3 weeks worth of research, then came to the conclusion that NONE of them would fit our needs. 12 weeks later (3 guys, 2 senior), we were finished. We wasted almost 1/4 of our time just messing with other people’s crappy products (like drupal), decided no way, and hand spun our own. Its insanely fast, and will scale far beyond these black boxes of spaghetti.
    Bottom line, if you need to do something unique, or of any value (if your creating 5 page websites for clients, its probably a great tool), build your own.
    Oh, and to the commenter who says that only YOU know your code well enough to maintain a one off CMS, that’s complete bologna. We have a series of 5-6 (proprietary) videos that explain how we use our ORM in the lifecycle, CRUD datamarts and generate our warehouse, and how to CRUD pages; it takes about 1 day to get a new programmer up to speed (assuming they are worth their salary).

  42. Posted June 10, 2010 at 8:42 am | Permalink

    Agree 100%, IMHO Silverstripe is the best cms (the admin is a lil slow) but the template system and ease of use is amazing, I can teach someone to use it with in an hour or 2….

  43. Posted June 18, 2010 at 9:42 pm | Permalink

    Absolutely agree with this post…
    I wasted lot of my time built sites using drupal… and I got nothing rather than hard to maintenance, upgrade and future modification.

    You have to do much, for the ordinary result.. :(

  44. BobH
    Posted July 9, 2010 at 1:01 am | Permalink

    After long experience setting up and supporting user forums, I agree that Drupal is horrible. Don’t bother with it on a new project.

    People spend years developing expertise in HTM, PHP, object-oriented design and other technology. Drupal devalues all this by having its own, nearly indeciperable form-building system, an obscure function system of “hooks” and non-standard terminology. Developing with Drupal is a miserable experience that makes an experienced developer think about other careers.

  45. BobH
    Posted July 9, 2010 at 1:02 am | Permalink

    After long experience setting up and supporting user forums, I agree that Drupal is horrible. Don’t bother with it on a new project.

    People spend years developing expertise in HTML, PHP, object-oriented design and other technology. Drupal devalues all this by having its own, nearly indeciperable form-building system, an obscure function system of “hooks” and non-standard terminology. Developing with Drupal is a miserable experience that makes an experienced developer think about other careers.

  46. BobH
    Posted July 9, 2010 at 1:03 am | Permalink

    After long experience setting up and supporting user forums, I agree that Drupal is horrible. Don’t bother with it on a new project.

    People spend years developing expertise in HTML, PHP, object-oriented design and other technology. Drupal devalues all this by having its own nearly indecipherable form-building system, an obscure function system of “hooks” and non-standard terminology. Developing with Drupal is a miserable experience that makes an experienced developer think about other careers.

  47. manu
    Posted August 14, 2010 at 9:48 pm | Permalink

    It seems to me that the author just based it s “critics” on the basic core install of drupal, so just missing the whole point here.. This guy would be from EE wouldn t surprise me much

  48. anschauung
    Posted August 24, 2010 at 5:47 pm | Permalink

    Meanwhile, back in the real world:

    Most organizations are doing things that have been done before, like ecommerce, discussion boards, groups, various flavors of content management, event registrations, etc. Most of these same organizations have budgets, and people who mind those budgets.

    Contrary to Mr. Webb’s assertion, this isn’t a bad thing: most organizations aren’t internet startups, but nonetheless have critical and sophisticated website requirements that need to be met reliably.

    Drupal is really ideal for these cases, where the requirements are complex but the all basic attributes have been done before. With Drupal, a junior staffer can throw up a complete, extremely complex and functional website in a few days without any customized coding at all.

    This means my team’s coding skills can be completely focused on the unique and thoroughly new parts of the job, rather than reinventing yet another wheel.

  49. Shaw
    Posted August 26, 2010 at 10:23 am | Permalink

    Just found this. Thank you for the calm, rational article. I agree; Drupal made me hate developing websites. Ugly, terribly designed rubbish.

    Then I found Symphony which uses XSLT to turn XML into HTML. It took me less than half the time to learn XSLT than it did to even begin to wrangle the drooling beast that is ‘Views’.

  50. BongoMongo
    Posted August 26, 2010 at 10:38 am | Permalink

    I’ve been working at a design firm, 8 hours a day, for the past 6 months doing nothing but PHP and Drupal. I never touched a pre-made CMS before in my life, and coming in to the job I only had intermediate PHP skills (which I still do). I would say I had a good 4-6 weeks before I learned all the crucial nuances of Drupal, and then after that (and forever?) I keep learning new stuff every week. Now I feel like I could do that first month project in 50% of the time, and I’m salivating for Drupal 7 to come out for a lot of annoyances to be ’solved’. For anyone complaining about speed (for anonymous users to a Drupal site), try to explore the caching features. It was like night-and-day when turning it on. Logged in users will always see dynamic pages, obviously. Also I’ve ported and moved and renamed all kinds of Drupal installs… there’s never any issues internal to Drupal as long as you do everything RELATIVE. Usually you only worry about server configuration & permissions. Yes there’s stuff that Drupal can’t do out-of-the-box or a 3rd-party module may not-exist for what you want to achieve… so what do you do? Code the feature you want with PHP !? You would do that anyways. It’s not that difficult to integrate your custom PHP into Drupal either.

12 Trackbacks

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>