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. Posted September 1, 2010 at 8:18 am | Permalink

    Great article and great discussion !
    Didn’t you hear about “phpMyAdmin” table list pagination ?
    Yes, last week I tried to find the “users” table of my client database, and suddenly it desappears.
    Looking above the database list, sudenly a combo saying: “page 1 of 2″..
    What Happened ??
    The number of tables of the site now is 300 ! 300 Tables ??
    Hoy many of you have working on a 300 table site ??
    Belive me that the funcionallity of that site do not require more that 23 tables doing it from scratch.

    This is the result of a full-configured drupal site, with CCK and VIEWS ABUSE, that makes over 150 different tables with no more that 2 fields each of them.
    How do you want to have a big site, with SQL querys making 35 JOINS ? (for single listing of nodes)

    1. I dont think that drupal sucks, but posibly drupal modules sucks ? not all of them,
    2. CCK && VIEWS sucks ?? posibly
    3. CCK / VIEWS dependent modules sucks ?? (depends of 2.)
    4. ( Drupal + CCK + VIEWS) ABUSE sucks?? Yes, it really sucks…

    So please do not be a CMS-abuser, if you dont want to think that ” CMS Sucks “

  2. Mel
    Posted September 16, 2010 at 12:42 pm | Permalink

    I just inherited my first Drupal site, after 11 years as a PhP/Coldfusion programmer. Sorry to piss off the whole “open-source is sooo cool, dude!” crowd, but this looks like it was built by developers intent on making sure they have a LOT of job security. 9,000+ pages of code to output a 200 page website really offends the old-school coder in me.

  3. Posted September 26, 2010 at 9:15 am | Permalink

    I spent one week learning Drupal and setting up modules. No problem there, things were fine. Then the module problems started in. Prepping jQueryUI, popping one jQuery module into another, was a filthy project that took all of 12 hours to hunt down a fix for. Forum support? It’s there sometimes but good luck Googling the right phrase. And Panels? Forget using the, ahem, ha ha, stable version… the developer’s version was the one recent one that wouldn’t eat up your panels Zeus style after you made them.

    We also had put a theme up and something made half of the admin bar drop down to the lower half of the page. I’ve never seen something so filthy codewise.

    And as for the double-save requirements, I’ve read that just clicking “Update and Save” is a recipe for disaster… to be safe you need to click “Update” and then “Save”.

    Give me WordPress any day… I could have built an exact copy of this $xxxx website in WP in about 6 hours. Instead, with three people pounding their heads against various walls, it’s taken us 4 weeks. And the site still looks effing laughable. If I have to deal with Drupal again it will only be in nightmares.

  4. Posted September 29, 2010 at 8:43 pm | Permalink

    Beautifully written. The uses of drupal vs a custom system are hilarious. Have we mentioned speed? Jesus christ what a piece of shit. Drupal is the bane of the web development community, I have no idea idea how or why so many developers are behind it but jesus, learn some fucking code and use a framework like Kohana to make non piece of shit applications that you can actually scale. Oh ya and an ORM? Drupal is the shitty coders of the world combining efforts creating a large scale piece of shit. How can you really have fucking 4,000 open bugs on a new build…jesus christ. Just stop, you are the ie6 of CMS’. Learn to fucking code, save time and have a relational database and oop codebase. You will not want to fucking shoot yourself if you do.

  5. SK
    Posted October 1, 2010 at 10:45 am | Permalink

    Drupal has a problem with scope: it is not particularly friendly towards designers nor towards developers. Things can be done many ways and it might be hard to find the proper way. Doing simple things (like customizing a form or debugging the code – refreshes are s o s l o w) is hard while doing hard things is…well, also hard :)

    Drupal acts like some extra layer between you and the current programming problem at hand. First you have to fight Drupal in order to be able to fight the problem. This is plainly annoying and you can feel how anger accumulates inside you. Implementing sites using Drupal makes you feel like you caught some new disease, drupalitis.

  6. Ha
    Posted October 7, 2010 at 11:53 am | Permalink

    Seutje’s comment made me LOL.

    And to all the other sore “Developers” here- if Drupal is so bad, why is it so widely used? Think about it.

    And if you think a ROR developer can write perfect applications and a perfect CMS, where is a good ROR cms to try out? Exactly…

    A lot of ranting without understanding, as usual in a random blog post.

  7. Posted October 16, 2010 at 7:54 pm | Permalink

    Well I wouldn’t expect any other thing from a new zealot in Ruby land. After all we don’t use a language with disgusting syntax, that tries to be like Perl while trying to re-implement 1/3 of Common Lisp and 1/8 of Smalltalk so that people that have no clue about programming can rant their ass off: ” Look Ma I know Ruby”. Not to mention the inefficiency of this wonderful language adding to it the plug & pray mess know as (off the) Rails.

    Isn’t it kinf of ironic that your blog is on Wordpress and not on Radiant?

    Get a life!

  8. Carlos Jenkins
    Posted October 18, 2010 at 2:59 pm | Permalink

    Jajaja you’re so wrong in so many ways that I simple will ignore this post jajaja I really tough if this was a joke jajaja

    Small sites? Security? Well, you’re wrong:

    http://www.whitehouse.gov/

    Objects? Come on, Drupal is previous to PHP5.

    I think everything comes bad since this declaration:

    “Drupal. In theory, Drupal is a CMS that lets you control your site out of the box.”

    …. he… well… no, sorry :P Drupal is sometimes called a framework rather a CMS.

    Anyway, good way to make yourself to loose credibility.

  9. CHW
    Posted October 27, 2010 at 7:28 am | Permalink

    Yes, I fully agree that Drupal does suck. I don’t know much about Rails, however I am a very experienced PHP developer, and I see no value in re-learning in Drupal how to do the same stuff I’ve done for years in PHP much faster. Plus I feel like I am constantly fighting against it to get things exactly right.

    Unfortunately, I am working on a project now where I must use Drupal, and I am going through quite a hassle. It’s taken me almost 3 days to do stuff that would’ve taken me a half day using custom code, which I think is much better than any CMS that I have used over the past 7 years. Both open-source and closed.

    Drupal is bloated, runs very slow, and requires too much effort just to do simple things, such as organize your menu heirarchy and organize your content.

    Why do View blocks add HTML and screw up my layout?
    Why do I have to learn all these new terms in order to do the same stuff I used to do before?
    Why do I have to install several modules just to get some basic functionality going?

    Then let’s not even get into handing this over to clients. I am realizing that I am going to have to build an all new CMS just for my clients to use, because the Content Management features are complex and cluttered.

    Though a custom built CMS does not have a huge support community, I have found the most success working with either my own or other developers’ straightforward, well-commented code. At least you can see logical relationships that make sense, and not several layers of abstraction, and a framework that will break if you mess up one thing.

    I’m with the author of this post. Drupal Sucks.

  10. Posted November 3, 2010 at 3:15 am | Permalink

    I see the author is using Wordpress for this blog :-)

    About Drupal: I think most things are already mentioned. For me the great thing about Drupal is the possibilty to make multisites-installations together with a great hosting-solution ‘Aegir’. Upgrading and migrating / backup etc. are a breeze.
    The possibility’s are endless, that’s why Drupal is also a CMS to make money with. I can sell my clients a website that is flexible and scalable.

    Also a big plus: Features (re-usable configurations) and installation-profiles (See Open Atrium).

    I did build in Joomla and made an avarage 1500 euro per website. Now I build with Drupal and make about 5000 euro per website. So for me Drupal doesn’t suck at all!
    But there are people that do not need are are not capable to manage the possibily’s that Drupal gives.

  11. Xamian
    Posted November 9, 2010 at 11:35 am | Permalink

    I could not agree more with the author’s comments. I’ve been building CMSs for over ten years and Drupal is the worst piece of shit I’ve ever encountered. The idea that “There’s a module for that!” is utterly ridiculous, every organization is different with their own crazy business rules and idiosyncrasies, which is why a custom CMS is always better than using any of these open source hippy garbage CMSs. To get Drupal to do anything worthwhile you’re going to have to write code, and the custom modules that some of the consultants we’ve hired is just as convoluted if not more than if we would have created a custom solution from scratch. Frameworks are stupid because they assume that they’re going to be around for any length of time. I can guarantee you that as you’re reading this there are two nordic douchebags coming up with the next “big thing”. Five years from now anyone using Drupal will be met with a snide “Your still using Drupal?” remark. Why? Because frameworks come and go. As it is there are over 25 different PHP framworks, what developer (with a life) wants to constantly be shifting from framework to framework. As long as there’s good documentation, a custom CMS will always be more extensible, more powerful, more user-friendly, and most importantly easier to maintain. Do yourself a favor and dump the Drupal!!!

  12. Posted November 10, 2010 at 10:05 am | Permalink

    I agree with Xamian!

    I have been involved with drupal for 2 projects and it really is not easy to grasp at first with all magic hooks and god knows what! If you are going to make a custom website then you should use a more flexible web development platform such as Groovy On Grails! It has many advantages such as having a strict structure in terms of where you find your model (domains) view and controllers, its also agile, reloads are fast is easily deployed and its build on top of spring technologies. If you are really profficient in it you will be able to create e.g. a twitter like app in around 40 minutes.. (there is a demo on that apparently by one of the guys developing the Grails platform). However if you are just setting up a normal website then use e.g. Joomla or Drupal if you know them, but if you need to code lots.. choose someting else! So the conclusion is: Use the right tool for the job!

  13. Verging on Suicidal
    Posted November 12, 2010 at 9:03 am | Permalink

    Has anyone had to take over the admin roll of a site that has been developed in Drupal? Recently I have had the distinct pleasure of doing just that. I was, however, lucky to be taking over for a Drupal “EXPERT” and not just some ass clown who did a half assed set up of the core and the necessary modules. so I’m off to a good start so far…right?….OK maybe not so much. I’m sure the Drupal interface may make sense if you created Drupal or if your are a drunk child with Down’s Syndrome but if you are one of the lucky few not to be afflicted with either disability you are F-U-K-D. If you find yourself in the situation where you get to maintain someone else’s Drupal site DON’T. What you should do instead, is this…
    Men:
    Open the heaviest door you can find. Then place your package (the whole lot… twig and berries) in the slot that opens by the hinges. Then slam it as hard as possible. Maybe see if you can get the punter from your local football team to come by and kick the door untill you cough up blood.
    Women:
    Probably best to smash a plate and use the jagged fragment to give yourself a hysterectomy.

    YES I’m comparing using Drupal to slamming you dangely bits in a door or giving yourself an at home hysterectomy. That’s been my experience and to be honest I’d go with either of my options over using this crap CMT. Read above, search the web (not the Drupal site…big suprise they tend to be all about shameless self promotion), give it a try. I’ve had nothing but bad experiences and will NOT be using it again….I’d sooner quit my job and start a career at Burger King..

  14. soreFingers
    Posted December 3, 2010 at 11:45 pm | Permalink

    If this is the “misery loves company” post I’m going to feel right at home! Check this out…

    I came up with some cool app ideas for the MMO gaming industry and decided to put together a team, develop a social networking site that would run these apps using Drupal 7. We spent SEVEN MONTHS developing this thing, myself working full-time (part of the time I was banging my head against the wall, many dents in my walls now) and one other guy working semi-full time on it. What a joke! Everyone is right – D6, D7, D any version is so bloated and so difficult to work with! Granted I’m just a frontend guy best with skinning stuff, but man, talk about about hard to work with!

    The end result: I dumped Drupal for Wordpress/Buddypress, which I was able to build alone, on my own, solo, by my lonesome… IN ONE WEEK and it wiped the floor with Drupal. Out of the box Wordpress scored a 48/52 site features while Drupal scored only a 16/52 and that was after spending all those fucking months, many of which I worked with no break. Now the sad part is the apps we built in Drupal have to be ported to Wordpress.

    My advice: if you are going to build a social networking site that you can actually live with and grow with, go with Buddypress! Drupal is bloated and slow and needs too much help to get up and walking, much less running, on its own.. I suppose “Drupal Developers” love it because its the ultimate Jenga and requires a lot of skill to develop for. Oh gee, let us bow to the codemonkeys. :( Not. The rest of us living in the real world trying to run a business would rather focus on using a website rather than hacking on one.

    Rant over. Drupal dead. Love live Wordpress.

  15. Kevin
    Posted December 4, 2010 at 5:22 pm | Permalink

    I used beginlearningdrupal.com
    It was great for building a site the fastest day etc, but I wish their advanced tutorials are ready. the person who teaches seems extremely knowlegeable but can explain stuff to a lay person like me

  16. Posted December 10, 2010 at 10:47 am | Permalink

    Yes, my friend DRUPAL SUCKS. Moreover it is the worst piece of shit I’ve ever stumbled across. Do those brain-damaged developers ever had a BIG SITE to maintain and develop? Drupal sucks to the end of two Big Bangs, not just the current one.

  17. Anonymous
    Posted December 18, 2010 at 4:00 pm | Permalink

    As someone who has run Drupal for quite some time, I tend to think Drupal is more configurable and easier than you are giving credit for, but I was surprised that you didn’t mention one of its biggest flaws. Every few years Drupal rewrites their code, and quits providing security updates for older versions, which wouldn’t be so bad on its own, except they redo the interface they expect everyone to follow, forcing module developers to rewrite their modules for the new interface. As a result, we see a lot of useful modules disappearing when they can no longer keep up, and webmasters running unpatched Drupal code because they’re dependent on these now deprecated modules.

  18. Julien M
    Posted December 26, 2010 at 8:48 am | Permalink

    I totally agree with you . I’am stuck in a Drupal project and Drupal is clearly a mess and the hook-do-whatever-you-want-everywhere-you-want system is a nightmare !
    There are a lot of good Php softwares and Frameworks (love Symfony) and Drupal with its mix of styles of coding (php4 old function style, php5 not so good object coding) is awfull. In fact Drupal is the kind of Php thing which leads people to think Php is unprofessional

    Drupal is not made for Professional Software solutions (without a lot of custom devs and days spent to have something really reliable)

  19. Amos American
    Posted December 27, 2010 at 1:26 pm | Permalink

    The problem is the usual problem with open source vs proprietary…the bar is set for the latter by highly skilled and highly paid software engineers.

    The bar for the former (aka Drupal) is set by clueless former Soviet bloc software engineers, whose code is even worse than their English, and whose chief motivation is to show something to mommy to elicit compliments and milk and cookies.

  20. Draca Thula
    Posted January 5, 2011 at 7:20 pm | Permalink

    Its apparent from most comments that the complainers aren’t very sharp. Steep learning curve? Please!

  21. Posted January 14, 2011 at 1:12 pm | Permalink

    I’ve tried it and dumped it the second day. (In fact, i’m still trying to get rid of Joomla! as just got struck by them again (with the almost completely different new version)). So, both Drupal and Joomla suck.

    The raison i’m still using my old J! 1.5 is those users who registered on it (taking care of them) a couple of months earlier, the SEF links, and its MVC.

    In my opinion, the best thing is, to make a small custom CMS core which you can expand or modify later and fit it for the task.

  22. Steve
    Posted January 22, 2011 at 6:25 am | Permalink

    OP, and the vast majority of commentors, are clearly the type who dabble in a Wordpress installation or some PHP hacking and call themselves web developers.

    Many of the comments follow this same formula –

    1) I had a big project to tackle.
    2) I tried to use Drupal to tackle this big project, without attempting to learn how Drupal works.
    3) Many hours and days later, my project was not working as I expected.

  23. David
    Posted February 9, 2011 at 6:36 pm | Permalink

    Oh how I wish I had read this blog post before trying out Drupal! I spent half a day trying to get ckeditor to work with wysiwgimageupload. There were all these dependencies that had to be enabled and then some hacks to make jquery_ui work and this was all just to allow myself to upload images in a content item. Oh sorry, they call it node. Whatever. In any case, I am hanging up the towel here. Maybe I will just limp back to cakephp and forget about this nightmare.

  24. Posted March 2, 2011 at 10:40 am | Permalink

    I’m just getting to grips with Drupal after using it on a couple of sites at my new job.

    And my first impressions ARE that it’s difficult to configure, and over kill for smaller sites – it takes nearly as much time to “lock down” the back end as it does to theme.

    But to answer your points directly:

    1. Drupal’s templates are stored by default in the database, but this is not mandatory. As I build a theme, I put all those files in the theme directory so they can be version controlled.

    2. Being in the middle of the learning curve, I can confirm it is steep. But a steep learning curve is not a bad thing if there are rewards at the end of it.

    But you can’t seriously be suggesting we let clients loose on static HTML files??? That surely is a recipe for disaster!

    3. Drupal 6, I believe, was built before PHP 5, so objects and inheritance won’t come into it. I do agree it would be nice to have these. I haven’t played with Drupal 7 yet, but hopefully it’s OO.

    The thing that I don’t like about Drupal (and these are first impressions) is that it is generally difficult, or a hassle, to write a site that has nice mark-up and CSS. Without overriding templates you get a swathe of DIVs and Spans with horrendous IDs and Classes, which make it really difficult to write a concise and easily maintainable CSS file. You also have to find hacky solutions to what should be simple problems, like including the latest jQuery file, or having a comment system where you can control the allowed depth of replies.

    I have to say that I much prefer Symphony CMS – it has a smaller user base, less extensions (modules to Drupal people), no built in user log-in system, but you have complete control over your HTML and CSS, and it is far easier and quicker to build and maintain blocks of code.

  25. David
    Posted March 2, 2011 at 2:53 pm | Permalink

    Can I please hire you to come explain these things to my “interactive” director? I can’t stand the mess that is droople yet i’m forced to use it by someone who drank the droople koolaid at some Dev. Conference.

  26. Drupal 8TR
    Posted March 11, 2011 at 12:34 am | Permalink

    Joining the thread here to claim it loud: DRUPAL SUCKS !!!
    Oh how GOOOOD does that feel !!!
    I’ve been developing with drupal for 2 years now – just because clients want Drupal websites (what can ya do ?). I am usually hired to build custom Drupal modules or do some “advanced theming” as they call it. Basically I get paid to get headaches.
    Want to build a module ? Bang your head 100 times and learn some stupid functions such as hook_noodle_api or kook_form_my_stupid_form_alter. Want to add a new property to your noodle object then see what’s in it on the other side of the form ? Good luck with that since your supa drupa object is now over 10 mB and dumping all its filthy nested content will cover the space of 350 pages (not kidding here).
    Want to create a nice UI with some fancy javascript for your site ? Doode, stab your d*** with a rusty screw driver (quoting ODB here, RIP). For that, you will simply have to create about a hundred template files with exotic names such as views-view–what-the-heck-is-all-that-crap-for.tpl.php. But that’s not all, with each one of these lovely template files, you will need a companion template–what-the-heck-is-all-that-crap-for-preprocess function to go along. With that gently setup and 4 hours later, you will finally get that “thumbnail” css class that you needed in your image tag for that cool jquery carousel to work.
    And I’m not talking here about how slow and hard to scale Drupal really is. A pain in your b*** my friends.
    It takes so much time and determination to learn and do things the “Drupal way” you end up asking yourself: “does drupal deserve so much of my time and consideration ?” Of course, you get the point, the answer is NO. Drupal is bloated, its code, API, templating system have no elegance at all. They are completely outdated, have you guys ever heard of MVC pattern ? Learn a true PHP framework like Kohana, CodeIgniter or CakePHP – do yourself a favor !!!
    Last week I swore I would never touch a Drupal project again, I feel much better ever since then.
    Peace

  27. Bryan
    Posted March 26, 2011 at 12:54 am | Permalink

    Drupal is the worse piece of junk I have ever seen. It is no wonder that .gov sites are about the ones stupid enough to use it. It’s hooks are just glorified hacks. It’s use of the global variables like $user is amateur. It’s coding style is for people that don’t even know how to code. Who ever wrote this was self-taught and lacked all common sense. This looks more like an experiment gone wrong than a platform.

    I made the mistake of taking over a Drupal site and learned it’s bass akwards design methodologies (pages, blocks, boxes, nodes, menus, themes, filters, etc.). The system is overly complicated and impossible to maintain. Only a fool would use this platform.

    Drupal is also horribly slow and over zealous with its divs and classes. It hammers on the database and overuses the call stack and memory use. I can’t even do a backtrace() in the code without it blowing up! It is no wonder you have to cache all the pages — because they take absolutely forever to generate! Try running Firebug on a Drupal site and see how horrendous the load times are.

    BTW – I’m am a highly experienced and very successful engineer/software developer/web architect/app developers/business owner with over 25 years of experience. So, when I say this is the worse piece of crap I’ve ever seen, please realize that I’ve seen a lot of crap in my life. And this takes the cake.

    Oh, and if you defend Drupal, then check yourself into the local “I am addicted to my platform” group and get some help. And learn how to write software… it is about 100 times easier than learning Drupal and about a thousand times more maintainable if you do it write. Design easy to use back ends instead of forcing your clients to use the horribly generic and cumbersome drupal cms.

  28. Posted April 7, 2011 at 9:03 am | Permalink

    I gotta say, that I originally started out hard coding – having built a ‘mini’ cms that would add items to a shopping cart, add users to a database etc. Then in order to make my life easier as a developer I opted for an open source CMS: Don’t re-invent the wheel right?
    I originally opted for Joomla! And I have to say that I have been more than happy with it: it is user friendly with strong community support – and with easy enough extensions to implement.
    However, for my latest development (I am re-engineering our firm’s site which was built from scratch with Fireworks and Dreamweaver, but without CMS infrastructure), I opted to try Drupal so that I could learn something new. I decided against Wordpress because it is regarded primarily as a blog tool (hence this blog has been built using Wordpress!).
    I have to say, that compared to Joomla! Drupal is MUCH more difficult to get up and running. My opinion is that there is no chance that a client of mine who might not be particularly IT competent would be able to figure out the Drupal admin dashboard. It would confuse the hell out of them. It confuses the hell out of me – and I am a developer (allegedly).
    I am going to stick with it until I have completed this project, but this blog has made me think again about using Drupal in future. I am glad that others find it frustrating/difficult and its not just me! I thought I was being stupid – but clearly not…
    An example of how difficult it makes what should be a simple issue to resolve: I want to add a video to my Drupal site. In order to do this, I need to know the width of the content area. Well – in Joomla! all I would have to do is login, go to the template manager, click on the template being used – and the paramters are immediately displayed.
    If I was building my own site obviously I would refer to the relevent css fil – no probs.
    With Drupal however, this is not an easy problem to resolve! I can’t see any reference to the site parameters: template width etc. It is such a pain! Clearly it will involve a lot of investigative work to find out this information. Something that should really take a minute or two to find out will take hours!
    I think that after this project I will get back to developing my own CMS, with Joomla! as my primary alternative open source option.
    I’m not sure if I would say that Drupal sucks, but it certainly isn’t the easy option. As the author of this thread points out: a CMS is supposed to make the development and maintenance of websites easier – NOT more difficult. Drupal, for me, fails miserably on this basic CMS requirement.

  29. Carlos García
    Posted April 20, 2011 at 9:32 am | Permalink

    Hey.. thanks for the article.

    But hey…. you will never find the ‘glorious Solution to all your needs’ as a developer… if in your mind is ‘use XXX to everything’ your wrong. Personally i like Drupal because if offers so many things out-the-box and has so many performance tweaks (solr and varnish) integrated that makes my life easier… IN SOME PROJECTS.. other use symfony or even .net or java or ruby, perl, blablablabla

    Yes Drupal has a learning curve that is a nightmare
    http://www.bedroompublishing.com/2011/01/25/open-source-cms-learning-curve/
    its simple. take or leave it.

    But its a worth the learn (for me). There are sites and great brands that use it. And personally, yes it takes me a couple of months to learn it, but now i can use it and customize to my needs and works very well.

    Just please check http://drupal.org/node/346217.. and decide.

  30. P
    Posted May 6, 2011 at 2:03 pm | Permalink

    Sorry, this post is just wrong.

    Drupal isn’t perfect but it has it’s great uses. If you can write custom code in RoR then good for you. Many people/organizations/companies can’t afford to hire someone to build, maintain and upgrade a custom site.

    In contrast, anyone can learn to build a relatively complex site in Drupal without any previous programming knowledge at all. At the same time, it’s suitable for very large sites (White House, London, Economist, etc.).

    Or, they might use Drupal for the same reason you are using WordPress (or why anyone uses WordPress).

  31. Victor Vacendak
    Posted May 9, 2011 at 12:23 pm | Permalink

    I want to believe in the power of Drupal. But it’s in such a state of shambles that is inexcusable for version 7 of anything. The documentation is a disaster.

    As someone used to the polished surface of Wordpress — which, even in Alpha, does not flood my screen with bizarrely unexplained permissions errors — I find it totally insane that to make something like Views work, I first have to install “Chaos Tools.” It does what the name suggests–it fills my system menu with chaos.

    This is inspiring me to do Django instead.

  32. they call me daddy
    Posted May 13, 2011 at 1:24 pm | Permalink

    This post is as amateur as the writer. Drupal development is for smart people, not for lazy ‘developers’ looking for the easy way. Write your RoR CMS in two days and submit it for a code audit to see what you can do. Seriously. I’ll come back day after tomorrow to see what you got…

  33. Victor Vacendak
    Posted May 19, 2011 at 12:45 pm | Permalink

    Drupal is kind of adorable. But besides the spaghetti code, the community board knowledge base is just so hostile and odd.

    The first time I Googled for an answer — my crime had been not knowing what to make of a bizarre error that flooded my screen after I installed a module — I found a thread on my subject. Unfortunately, the thread consisted of:

    Q: “Hey, guys, I got this error.”
    A: “Everyone else could figure it out, why not you?”

    Also, the apologetics for not using Object-Oriented Programming are nothing short of hilarious. Every now and then someone comes by to say, “hey, guys, why don’t we turn our plugins into objects, like in Wordpress?” and the hostile reaction is:

    1. If you think we need object-oriented programming, you just don’t understand the architecture of Drupal!
    2. Even though it’s not object-oriented, if you think about it, the way Drupal as whole works is OO
    3. But that doesn’t matter because OO would be bad
    4. Even if it wasn’t bad it was not available in PHP 4 so shut your mouth.

  34. Janus
    Posted May 28, 2011 at 12:36 pm | Permalink

    Haha, I feel sorry for all the poor souls blinded by Drupal hatred. It has saved me SO MUCH time of custom code, once you get the hang of CCK + Views. The thing is people want instant gratification, not invest a couple of days learning something new.

  35. Posted May 30, 2011 at 12:01 pm | Permalink

    I was reading the blog post and comments from top to bottom. In the bottom, I saw “Powered by WordPress. Built on the Thematic Theme Framework. ” and laughing out large!

    Well, this guy is using Wordpress, which is used to power thousands of blogs these days. I don’t blame on them. Many people have money to hire a developer to even create a “widget” showing past 10 comments which are posted today.
    Also, you could pay someone else to manage something small.

    Drupal is not a magic. It’s well-thought coding.
    DRUPAL ROCKS!

    First, you have to understand that if a CMS is fixing security issues, that’s good. Drupal does not charge you for security updates so why don’t this guy see the good side? Okay. Wordpress is now 3.X.X…. Typically these X.X versions don’t have major updates. So these X.X updates(minor updates) are just for either security fixes or bugs in core. The, why don’t you say WORDPRESS SUCKS ? Please be logical.
    Also, nobody publish active security issues in latest version. If someone noticed or experienced security issues, they can securely inform to security team, there is an active, dedicated team for that.

    Also, don’t think that Drupal is just a tarball which has all the functions out-of-the-box. You can’t build any good site without Views, CCK, Token and other few modules. How do you say is it okay to use core but not modules? If then, Drupal could create “magic-Drupal.tar.gz” package and include all 7789(to the date) modules in it, which costs 3 Gb of size, and you may need to update it daily. Funny ?
    Understand the practical situation. In your own blog, don’t you use Akismet or any third party module ….. I got the word – “third party!”. Then, you say Drupal is “First party” ?

    I’m not blaming anyone here, but these guys don’t understand basic theory.
    If you don’t kn0w HTML, CMS is NOT the solution. Find a good online site building site or something like site-reptile, etc. Do not use CMS without understanding what is it.

    Also, this blogger prioritize “piss” instead of Drupal. Also he/she don’t know what is a “View” at least. Views should be in the database because it’s coding. “View” just store a set of instructions to display certain things such “last 10 comments today”. Haven’t you used phpmyadmin’s views ?

    >>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.
    —– hahaha…. Does wordpress developers work on a code stored in a database ?
    Don’t make me laugh, please. Database is just for data.

    >>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.
    —– If database logging is the problem, yoiu could set a limit or disable “database logging” module.(Drupal also support syslog which logs events to server itself.

    You say you have to go to adminster > content management > content to edit an existing blog post. Are you blind ? Can’t you see “edit” link above the blog post ? To edit all posts, you have to go there. Do you suggest Drupal developers to put all links in one single menu level ?

    Is Drupal searfch sucks ? Simply go to drupal.org and search for something. you will get neat results in few mili seconds. please don’t be point-less.

    Thanks a lot for pissing. Please find a good place.

  36. Andrew Curran
    Posted June 6, 2011 at 5:44 pm | Permalink

    Interesting post I thought, up until I got to the bit about developing a site in Ruby on Baby-Training-Wheels. Rails, I meant to type rails.

    Then I rolled about laughing and stopped reading.

  37. Posted September 11, 2011 at 10:04 pm | Permalink

    Yes, Drupal is totally sucks because of these problem:

    1. Drupal versioning and support.
    2. Plugin and themes dependency
    3. Upgrade process.

12 Trackbacks

  1. By Drupal Apesta on October 4, 2009 at 5:18 pm

    [...] el blog Robozen me encuentro con una serie de 3 puntos por los que Drupal apesta como CMS o como sistema para blogs. ¿Es que todo en Drupal se almacena en la base de [...]

  2. By Engwar » Blog Archive » Compromises on October 4, 2009 at 8:14 pm

    [...] as a Tucker Max story is challenging There’s no better way to start a Monday morning with a hilarious rant about Drupal. Despite the mild headache, tis gonna be a good [...]

  3. [...] Drupal Sucks [...]

  4. [...] the posting and the comments here. Share and [...]

  5. By Drupal Sucks Followup: Drupal Alternatives on October 6, 2009 at 3:34 am

    [...] of all, thanks to everyone who read and commented on the original post. If nothing else, I got some (angry) tips for how to improve my Drupal experience when I do have to [...]

  6. By La foire aux liens | Monsieur Pedro on October 6, 2009 at 6:30 pm

    [...] Drupal Sucks: Un très bon article, en anglais, sur les défauts du CMS Drupal. Travaillant actuellement sur cette plateforme pour un projet, j’ai apprécier le libre ton et les précisions de cet article. [...]

  7. [...] Drupal Sucks ou “Drupal Sucks” Followup: Drupal Alternatives par Mariya [...]

  8. [...] worst thing about all the documentation over on Drupal.org is that it’s just not very accessible to non-developers. But first I want to address the [...]

  9. By Why I’m using WordPress – Openswitch on April 3, 2010 at 8:06 pm

    [...] Yet Drupal is much like a modern-day Achilles.  It has small weaknesses that, for the basic user, cause the whole CMS to fall.  By way of two examples, Drupal lack basic image uploading and manipulation as well as custom permalink structure (views is confusing as hell, I’m sorry).  In the end I found that Drupal is freaking hard to use and has a high learning curve (via). [...]

  10. [...] I want?Edited:can you please share your cons and pros from your experiences of these 2 cms.Edited:http://robozen.com/technology/drupal-sucks/jsut read all the comments here. hmmm, drupal kind of worried me :/ since I’m looking for a [...]

  11. [...] A good debate is located here, by the way: http://robozen.com/technology/drupal-sucks/ [...]

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>