Drupal Sucks

Edit (October 26, 2012): This post is out of date. Please read and comment on my latest post Does Drupal Still Suck?


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!

303 thoughts on “Drupal Sucks

  1. I’ve started with Drupal for a small web site for a local sports organization. Aside from clients not being able to manage content, the biggest problem was it’s way of upgrading. That is download the newset version, put the site in maintenance mode, backup the database, upload SOME files, upgrade. And you need to upgrade all the time to patch the new vulnerabilities discovered. After 4 upgrades, I’ve switched them to WordPress which is MUCH simpler for the clients to maintain and has a nice one-click-upgrade that has always worked without a problem.

  2. On first read, this is quite hilarious.
    On second read, you better go through Drupal and through your post when you’re sober.

  3. i’m just happy that you did not see that even php code gets stored in the DB.
    what the heck i don’t care! every system sucks balls at some point, from some view, even ruby. it’s just like religions, the best is only your own.

    • Ah, yes. Forgot about that. Indeed, you can store PHP code in the database. :-) And Rails does have plenty of its own limitations, of course!

  4. Just to counter a few points, it also logs to a file if you want it to. Out of the box. Just a configuration.

    But you’re right. How the hell would you know that, because the white elephant in the room in the Drupal community is usability. It all makes sense to us, because we use it everyday.

    To counter the upgrade problems, check out Acquia. They release their own Drupal version which is upgraded through Subversion. just a quick “svn up” and a visit to example.com/update.php and you’re done. That mixed with Drush (a command-line script to install / enable / update / anything else with drupal) you can update a site in under a minute.

    • Re. the logging: yeah. You can configure it to log to a file on dev, as long as you don’t forget to replicate that configuration manually when you release your site to production! Therein lies the rub…

      Thanks for the other tips though. I’ll def. look into it if I have the misfortune of having to use Drupal again.

  5. Hey Mariya, you’re the top post on Hacker News :)

    Things like Drupal are what give php a worse name than it deserves. A “framework” to let people shoot themselves in the foot. A little knowledge is a dangerous thing, right?

  6. hey… was hoping you guys could offer some advice. I’m interning @ a startup that’s in development mode, as a biz dev guy I’d really like to have a better understanding of the development process. We ask for things to be done to the UI or the functionality of the site, but have no idea what’s involved in our request. I don’t plan on becoming a devleoper or design person, but still would like a basic understanding, just as some developers have a basic understanding of the sales engagement process. Would you suggest, I get a basic understanding of HTML, then move to a more advanced language ? Or perhaps there is a book you can suggest that outlines the various elements of website design, from UI to Databases to back-end infrastructure…. thanks for any advice you can lend.

    • Hey John! I think the best advice I can give is for you to try setting up a basic site, on a topic you’re interested in. That will teach you the basics of HTML, CSS, FTP/servers and maybe databases. I’m sure the techs at work (and on the interwebs) will be more than happy to answer your questions as you go along. Kudos on trying to understand “the other side”.

  7. The author dismissed Drupal because it does not handle issues ‘out of the box,’ and then list complaints that apply to “serious sites, with custom features.” The thing is, the serious sites don’t need to handle issues out of the box, they can be customized with modules. By very virtue of being serious they should have administrators available to find or write new modules and to deal with the admittedly annoying yet solvable issues regarding overuse of the database and staging server / deployment issues. For example, the issue of logging in the databases (which is very convenient for low bandwidth sites, by the way) can be fixed for high bandwidth site in minutes with the installation of the logtofile module.

    Drupal is all about add on modules by design. If you want a one size fits all blog that takes 5 minutes to set up, get word press. If you want to write custom applications quickly and don’t mind being limited to their conventions and limited code universe, use ruby on rails. But if you want to build a web application that strings together many problems that have already been solved by the multitude of Drupal module writers, with the ability to customize the source or add new modules when needed, Drupal is a great platform.

  8. As a contributor to the core Drupal project and the maintainer of the large number of modules, I’m far from unbiased. And I definitely understand Mariya’s frustration on a couple of these points. However, a couple of the issues mentioned demonstrate a relatively shallow understanding of the system. For example:

    “Views are stored in the database.” That’s correct — unless you click the ‘export’ button and put the definition of the View into a PHP .inc file. That mechanism allows newcomers to use a UI-driven builder to construct their data listings, then ‘lock them in’ as source-controlled code once they’re defined. It’s not perfect, but it’s certainly the worst example to pick on if you don’t like things stored in the database.

    The search system that Mariya slagged on is also pluggable — for small sites, it works well but can be replaced by a Solr server just by installing the Solr software and dropping in the ApacheSolr module for Drupal. Obviously, the system that makes that stuff easy to rip out and replace transparently implies a degree of abstraction overhead. That’s a compromise that every system makes; for some sites, Drupal’s pros and cons won’t work well. For others, they’ll be a great fit.

    And finally, the ‘template naming’ complaint that Mariya mentions, regarding auto-generated IDs, is a bit deceptive. HTML templates in Drupal control the markup for a given type of element — block.tpl.php for sidebar widgets, for example. The output for specific instance of one of those elements can also be overridden by using a template with a more specific name. For example, block-view-recent.tpl.php for a ‘recent items’ block generated by the Views module. One module that ships with Drupal allows users to whip up hand-rolled blocks containing static HTML, to populate sidebars and feature areas quickly. The blocks output by that module use numeric identifiers rather than human-readable ones, and that should certainly be fixed, but the limitation is specific to hand-rolled blocks from that module, not inherent to the templating system.

    Drupal’s learning curve is a frequent topic of complaints: especially for those coming from simpler systems like WordPress, or ‘just-the-foundation’ frameworks like Rails, it can be confusing and full of inexplicable legacy decisions. It would be nice, though, if the criticisms of it could stick to problems that *actually exist* — it’s easier to fix that kind. ;-)

  9. ^ .inc files? Seriously? This isn’t 2004.

    Also, Solr SUCKS. Please, PLEASE use Sphinx if you need a full-text search engine.

  10. >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.)

    Instead of adding a voice to the problem, please spend 2 days custom building a Rails CMS and release it as an open source sane alternative.

    Apologists are annoying. People that possess the power to create change, yet do nothing but whinge, deserve a special place in Hell. (Hint, hint. Put up or Shut up.)

    • Instead of adding a voice to the problem, please spend 2 days custom building a Rails CMS and release it as an open source sane alternative.

      Uh, no. I never said you can build a Drupal equivalent in two days. I said you can build a custom web app in two days.

  11. I agree with your conclusions, and may I recommend Joomla as an alternative. Unlike Drupal, it actually is easy to use. I’ve used it extensively, both before and after trying out Drupal, and I have to say the difference is like night and day.

    • OMG! Don’t get me started on Joomla. I found its structure to be so strictly enforced, I was continuously frustrated in my attempts to get it to do what I wanted in order for the site to satisfy the client’s needs. I vote a huge thumbs-down for Joomla.

      I’ve been a Drupaler for quite some time now (been using Drupal 7 for a while), but I’m increasingly frustrated with its complexity. Sure that complexity equates to flexibility, extensibility, etc. – but at what cost? I need to get the product out the door in a reasonable time in order to keep my clients happy. For now, I’m looking into Yii. Anyone have any experience (and opinions) with that?

    • Funny, my current contract is taking a network of about 150 Joomla sites and converting them all to a Drupal 7 framework. The sites that are completed already are over 400% faster than the Joomla versions, and the custom edit forms I provided completely removed the very common problem of editors putting the wrong data into Joomla fields and bricking sites.

      I’m sure it has much more to do with a crappy Joomla developer vs. an experienced Drupal developer though. I can easily see the roles being reversed, and the same issues cropping up.

    • Hah! I couldn’t help but be a little amused at the two-day timeline. Of course, that is the goal, to be able to do that using experience from setting up a prior, but when does the reality ever match up?

      Good, fast, cheap; pick two.

  12. Also, Solr SUCKS. Please, PLEASE use Sphinx if you need a full-text search engine.

    If you don’t like Solr, fine. Someone implemented a drop-in Sphinx replacement for the default indexer, too. That’s my point — those pieces of functionality are swappable, and the default out-of-box implementation is geared towards the lowest common denominator, to avoid alienating the folks who run a small site from shared hosting rather than their Awesome Server Cluster.

    Complaining that Drupal’s built-in search indexer sucks is like complaining that django’s built-in http server sucks.

    .inc files? Seriously? This isn’t 2004.

    If you really, really want to put your code in a .fluffy-bunnies file, PHP won’t stop you. Come on, seriously. There are legitimate, factual criticisms of Drupal’s architecture that can be made without resorting to this kind of silliness.

  13. Wow, where to start? I guess I’m a drupal apologist… I’ve been using it for 4 years, so I think I qualify. That said, let’s dispell the fud:

    1.) “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.”

    As you clarified, you actually mean drupal views, which are a FAR cry from “templates”… (For those who are wondering “views” is basically a query builder, so we’re storing the configuration for these queries.) However, it’s worth noting that the suggested use case on “views” is to export them as code into a module of their own for all the reasons you mentioned. The author of the module has done a lot of great work to make that as simple and straight-forward as possible.

    2.) “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.”

    If that’s the case, then you’ve obviously failed to grok quite a few of the things that Drupal does to make your clients life easier. We train clients on drupal in about 2 hours, and usually have little in the way of re-training afterwards. The $tabs variable in your templates (I mean specifically page.tpl.php and the like) is your friend. Navigate to the page you want to change, hit edit… change as necessary, hit save. Wow that was hard ;-)

    Admittedly, creating content can be a bit more in depth, especially “pages” that need to be inserted into the menu system. That one use case aside, “goto create content, and add the new type of content you need” is straight forward enough for most customers. If you’ve done your job, it should be as simple as that.

    “An example of Drupal’s bad usability is requiring a user to confirm changes twice before they’re saved”

    I have no clue what you’re talking about… and I use drupal every day. Comments sort of do this, but you can turn it off… other then that the only things that do this are way high end admin things like “Views” that allows you to configure and test before saving.

    “editing a blog post is under “Manage Content” and sidebar content is under “Site Building / Blocks”. What?”

    As I mentioned you can just visit the blog you want to edit, and if you’d utilize the zen theme to build your custom templates on top of, you’d find wonderful little “edit block” roll overs on each individual block. (Yes learning curve for sure, but the community is not blind).

    3.) “Drupal has a history of security vulnerabilities and is written in ugly spaghetti code”

    Spoken like a true closed-source proponent. Entice people with a “custom” system that’s specific to their needs, is only maintainable by the person who wrote it, and OH BTW unless that person decides to give you the code, you’re screwed… I deal with this every day, and it’s a horrible way to take advantage of clients. That said, “history of security vulnerabilities” translates in reality to “Drupal actually reports when there’s a problem, unlike most close source alternatives, so you can trust that they’ll tell you when you need to upgrade, instead of leaving your butt hanging out there w/o telling you there’s a problem.” Bottom line, every software has security issues, the question at hand is how those responsible handle them. Pick your poison, I’d rather know there’s a problem than stick my head in the sand.

    4.) “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.”

    We should be more specific with this… namely upgrading to a new major version release can potentially (actually almost certainly) break existing themes and modules within your system… Which really isn’t that surprising when you consider that that new version has been under development for somewhere between 12-24 months, and is constantly being improved. Minor version releases (6.13 – 6.14) are very simple to upgrade, as are most modules. This is also why the drupal community supports back versions for QUITE a while after new releases.

    5.) Trademark stuff… yeah, a little OT for the software topic, but whatever…

    6.) “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.”

    We already know my opinion on close source solutions… needless to say, the words “custom CMS” always make me shudder. You better trust that dev completely… and I mean trust that he knows security, caching, scaling, search engines, etc, and also have a rock solid contract in place that guarantees anything he codes is your property not his… and most devs aren’t into that for very good reasons so… good luck.

    7.) “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.”

    Admittedly, there are a couple WTFs on the naming schemes… blocks especially. But the supposition that a block would have a different numeric convention on dev/production is akin to supposing that your node ids are going to change… this is just fear-mongering for those who don’t actually know the system, and is a real testament to either your ignorance of the system, or your dislike for it… take your pick.

  14. Dismissing includes as antiquated is laughable at best.

    Drupal’s real issues, for me, amount to the comments listed here about migration from development to live. I’ve gone to great lengths to solve many of those issues with elaborate hacks, but it still doesn’t feel worth it. Ultimately, development of modules is handled wonderfully (especially when you can just drush the new stuff in to production) but lacks elegance and isn’t easier than alt-tabbing around to drop in changes via FTP. In fact, it takes more clicks/commands. Muscle memory has it happening very quickly, now-a-days, but I wish it felt more like responsible development and less like I’m digging up my entire garden to plant a new bulb.

    • Honestly, I don’t think there is one. For something super-simple: WordPress. For something pretty simple: Drupal. For anything remotely interesting: start from scratch.

    • Why, Drupal of course! Even comes with a free online manual, free support, free developer community, free security updates, free user events, free code. Working on the free beer.

  15. I must admit that I recognised a lot of the problems you descrbed for my work
    with drupal, especially those around deployment/staging and DB bloat.

    I still think there are lots of great things about the droopy ecosystem, not least
    the development communuity around it, but there are some issues you always
    run into that stop it being my CMS of choice.

  16. Well, I’ve been using Drupal for years, and probably will use something else for my next project, but not for any of the reasons sited above.

    The fact that caching only works for anonymous users, and that Drupal has a hard time scaling without caching, is what’s likely to drive me away. Correct me if I’m wrong, though.

    The other thing is that I’d rather be writing my extensions in Ruby than PHP.

    But in Drupal’s defense, it is absolutely trivial to write new modules for. The architecture is great (again, for a PHP-based project), which is saying a lot from someone who tends to be critical of API architecture. In fact, the comment above about Joomla made me laugh. I started out on Joomla, and after working with it for weeks, decided that it was terrible and jumped to Drupal, which is much, much better designed.

    My users (when they are site editors) have an “Edit” link on the top of every page, as was mentioned above, so I have to say that the complaints about it being hard for end users means that you configured the site badly. Sorry. Not Drupal’s fault. Other complaints have been addressed as well–I’m sorry that you’ve been having a hard time dealing with it, but it just doesn’t suck.

    Not to say that your projects might not have been better done on Rails. Each project certainly has a toolset that matches its needs the best. But I feel that your slamming of Drupal just means that you ended up using it for a task it wasn’t appropriate for–or didn’t understand the best ways to configure it.

  17. Hey, your ideas are pretty common and there’s quite a bit to not like about Drupal. But it seems like you haven’t done much research, so I’ll post some points.

    Views in the database: this was true for a while, but now Views are exportable, and it’s extremely easy to do so with Features, a Drupal module which will also export “Pretty much everything” else that Drupal customarily stores in the database, and it is moving to support export of everything. Note that this is different than systems that only store these portions in code, because Drupal provides web interfaces to configure, and then export functionality to play nice with VCSes and provide a speed boost.

    Object-orientation: Drupal is moving towards this slowly (with ctools object plugins), but the reasons for the current design are well-explained here, mostly centering around performance and the fact that the system is often object-oriented, but doesn’t use PHP’s constructs.

    Talking about Drupal 6 security, you should link to Secunia on Drupal 6, not Drupal 4.x. That probably isn’t deliberate, but it’s misleading. All security advisories have been of moderate influence, and all have been fixed with vendor patches. Reference WordPress 2.x with lots of unpatched vulns, and let’s not forget that custom code often exposes much more of a risk than core code.

  18. >A CMS requiring a slew of third-party mods before it can be usable is useless to someone who can code a custom Rails CMS in a day or two.

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

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

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

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

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

    Ironically, you’re writing this in WordPress, a PHP projec that, unlike Drupal, really *does* have security issues.

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

    >Gripe #4: Drupal’s None Too Friendly

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

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

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

  19. Oh gosh! I have never read such childish post on a software. Before blogging about anything it is worth spending an hour to check the facts yourself. Had you spent few minutes going through drupal manual(s) you would have realized how stupid is this blog post.
    Information given in this blog post is at best “incomplete”.

    #FAIL

  20. Your arguments are strong, but VIES is way to query database for speciefic type of content, so you do not need to write custom queries (if you do not know this), but if you think – developing custom CMS is great, and even on RoR – jump through the window. After the end of support, when companies changes supporter or want build new look (template), with Drupal (preety well documented) it is easy, but if you’ll try to figure out “what is this button do” in custom CMS – price ups ups grows grows several times… RoR is cool, – use CakePHP, CodeIgniter – never find problems with platform. And if you want realy great CMS/CMF – Drupal 4u!

  21. 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!

  22. If you are a person that loves to write beautiful code and wants to create an efficent information system based on a “framework” you may be happy with Django.

    No idea why there’re so many postings about Ruby on Rails. If you have seen Django once you may will never return to Ruby on Rails.

    If you are using something like a blog (WordPress) as a CMS that’s ok, but it will result in limitations -> Hacking. Indeed there’re some good plugins available for WP. Best thing with WordPress is the great documentation.

    Other options ( Open Source PHP CMS) may be: CMS made simple, Typo Light, Concrete 5, Jaws etc. Just have a look at the demo pages.

    • I’ve actually wanted to learn Django for ages. Should look into it soon. I used RoR as an example framework, not necessarily as the best one.

  23. as a person who started programming, drupal taught me much of a certain way to do things, it was great when looking at its source code then compared to not being able to learn from it…

    I never was able to install everything correctly, and always ended up hacking the menu structure to accept my variables.

  24. Having used Drupal for about 1.5 years now, I fully agree, although for slightly different reasons. Drupal sucks in a number of ways.

    Problem is, there is no open-source CMS that doesn’t suck. I tried silverstripe and it also sucks, albeit differently.

  25. Drupal far from sucks. I used Joomla for over a year and wish I would have started with it in stead of Joomla.

    The way you wrote the post seems like you literally installed it, gave it 10 hours and said screw it. Yes, there is a learning curve but well worth it!

    Drupal is so amazing once you get the hang of it. It is NOT even close to bloated, I have no clue what you are talking about.

    • I think WordPress is a hunk of poo for anything other than what it was intended to be – a blogging engine. My blog is a hobby and not a production-grade project.

  26. Seconding (thirding?) the django recommendation for those who want something that’s pure framework. I build a lot of stuff personally and for clients in Drupal, but I also tinker with Django, and it’s a pleasure.

  27. A good review, if a little negative. I think you have missed some basic points, although I see from your edits that you now realise that Views is not templating. Templating is done in the file system via tpl files. As for the logs, that is optional. Many of us just use Google Analytics instead.

    You also fail to mention the Cache system which greatly increases speed.

    Drupal is a great CMS, it is easy to use and can create content out of the box for a multitude of sites (see http://nickbits.co.uk/blog/2009/09/book-review-drupal-6-site-blueprints ). You may have to install additional modules, but it is so much easier than coding from scratch.

    Sure you could code your own from scratch, but why? Drupal is faster, easier, safer, more secure. Like any tool, Rails, WordPress, etc. you just have to take the time to read the documentation and learn the basics.

    Nick

  28. Amen,

    I have worked extensively with Drupal, and the main problems with it are described quite well in this article. There is no ability for reliable change management in Drupal, and it’s only somewhat pleasant making version 1 of a site with Drupal.

    If you’ve EVER had to make version 2 of a site, or if you’ve EVER had to inherit a previously developed Drupal site, then you know it’s truly a nightmare to wrap your head around.

    Some elements are files (tpl), some are database settings, others are conditional blocks, others are javascript, etc.

    No one can deny that Drupal is a powerful and flexible platform. They’ve accomplished this. However, in this day of age, people want to be able to make changes quickly, and you just can’t do that with Drupal.

    Nice article.

  29. I agree with you that Drupal sucks. But then, so does a lot of other stuff I regularly use in daily life. What do you recommend in its place and under what circumstances?

  30. I agree, Drupal is a total Ass pain to use and to develop for!

    There are not many PHP based CMS’ that aren’t to be perfectly frank. Most are either bloated, unusable or just an absolute nightmare to develop for.

    The only one I have found (and now use regularly) is called Silverstripe. It if fully OOP, runs on an MVC framework and has been built for generally pain free development. Its the only reason I haven’t switched over to Django :).

    Mo

  31. I’ve always said that Drupal is less a CMS and more a framework that uses the PHP language. If you want to develop in drupal, you can forget 90% of PHP functions you’ve learned, because drupal has reinvented them.

  32. lol

    code for a few days…

    Please do and give away your awesomest-ever CMS for everyone to use. I got here from reddit and i can clearly see this whoever wrote this hasnt done anything other than a ‘lil html.

  33. let’s remember that this whole… internet web design/development thing is still a baby, and nothing we do now is going to be the same as how we will do it in 5 years.

    bashing what many would argue as the most versatile CMS around without givin any alternatives and why they are better is just a negative post.

    it’s my opinion that drupal is moving everything in the right direction and has a community behind to see that it continues into the future. while we don’t know if it will even be around in 5 years as things change, dismissing it as something that should just die is silly.

  34. I disagree with most of this, i’ve build a number of large sites with Drupal and find it excellent. There is a steep learning curve, but then again once you get your head round it you’ll find Drupal can do just about anything.

    Views and Panels etc are stored in the database for a very good reason – they allow you to make very complex and useful theming devices on the fly and easily edit them. Drupal does allow you to hardcode this kind of thing – go ahead and make yourself a module or complex template. These modules are there so you don’t have to do that, and you’d never have the flexibility that these kind of modules offer.

    As for security vulnerabilities I get an instant update whenever a flaw in a module or core has been found and fixed, with the huge number of developers working on Drupal this happens fast. Are you going to be around constantly fixing any new methods of attacking your CMS that you’ve built yourself. Hackers will always find new ways to attack sites

    Take a look at the sites that have chosen to use Drupal, there’s loads of really huge ones out there, I think thats a good enough advert:
    http://buytaert.net/tag/drupal-sites

  35. Pingback: Drupal Apesta

  36. I never took to Drupal from the start because I didn’t like it. As a PHP developer, I want accessibility, both in the code and for my clients. I’ve tried different CMS solutions and my favorite so far has been Concrete5.

  37. Drupal does have some unpleasant aspects. The lack of a decent templating system is one of them (and I definately stay away from views).

    But, Drupal rocks in some regards. Out of the box, it has a sophisticated user and permissions system. And it’s taxonomy module (built in) is pretty sweet. It’s a hell of a lot better than any folksonomy implementations I’ve seen in the Rails. And it is there out of the box. (It does take some programming effort to make good use of it).

    It does have a learning curve as well. The form handling and hooks framework can be frustrating to the unfamiliar. It wasn’t until my fourth Drupal site that I really felt like I found the zen of it.

    So, yeah there are undesireable aspects. Maybe you want to try Radiant, which is a Rails CMS, and is much simpler. It too has it’s really annoying aspects…

  38. What a poorly-researched post…

    As someone who develops Drupal-powered sites and applications (yes, applications) on a daily basis, let me tell you the following:

    Gripe #1: Drupal Stores Just About Everything in the Database
    You complain about views (templates) and logs being stored in the database. Templates are file-based, try checking your theme’s folder and you might be surprised at what you find. There are certain modules (ex. Panels) which DO store templates in the database, but these modules are by NO MEANS a requirement for any site.

    Only internal Drupal logs are stored in the database, and this can be easily disabled if necessary. The logs are stored in the database because they are then presented in a nice, user-friendly format for the administrator, who more often than not is not technical enough to be going through log files on the server.

    Gripe #2: Drupal is Freaking Hard to Use and Has a High Learning Curve
    Yes, Drupal has a high learning curve, but once you actually understand how it works you will be amazed at what you can do in a short amount of time. Drupal is not hard to use if developed properly. None of my clients have any issues using the Drupal-powered websites I’ve setup.

    Gripe #3: Drupal’s Design is Piss-Poor
    What a joke. Clearly you’ve done zero research into the subject and have simply assumed that since the CMS is not object oriented, it must suck.

    Gripe #4: Drupal’s None Too Friendly
    Please…

    Have a look at this list of Drupal-powered websites: http://buytaert.net/tag/drupal-sites

    Would all those big names really be using Drupal if it sucked as much as you say it does?

  39. So if I read this correctly, your conclusion is to code something from scratch in Rails. You should review Drupal after you’ve learned how to use it. You mention it has a high learning curve, but the average person would disagree.

  40. Drupal sucks? Not so much — if it does then why are there 250,000 websites running Drupal and why would organizations like Sony, Disney, Nokia, Google, Microsoft (yes Microsoft), and thousands of other organizations use it? If you haven’t spent the time to learn Drupal then yes there is a steep learning curve. But to day Drupal sucks is like saying brain surgery sucks after reading a comic book on the topic.

  41. Checkout concrete5 for a php-based cms. Our shop moved to C5 earlier this year, and it has been pretty painless. As a programmer, I’m not too crazy about any cms in general. However, c5 meets the needs of the layperson who doesn’t want to learn too much in order to edit their site.

  42. Lets see, you disparage drupal but offer Rails as an alternative? Ive managed to learn drupal in a few weeks where i could stand up a site to do exactly what wanted it to do. Granted, there are a few stumbling blocks with drupal but it beats architecting a site from scratch. But I digress, here are some counterpoints if you may:
    1. Drupal Stores Just About Everything in the Database – drupal does store an enormous amount of data in the database but who ever said that was bad thing? If the data is stored and indexed correctly that shouldnt be a problem.
    2. See above. Im a .net programmer by trade. I managed to pick up drupal with a little help from a friend that has implemented it before. If you put some effort into learning how to utilize it, the payback is enormous.
    3. Its called “Open Source”, spaghetti code is inherent in a project where anyone can contribute. However, most production modules that are in use have very good source control policies.
    4. I cant argue with this one. Im not sure this is in drupal’s best interest :)
    5. Your conclusion is a tad vague as it just repeats the premise. I can say that the default search functionality provided by drupal is definitely lacking, there are modules available (easily configurable) that allow for semantic search options
    ( http://drupalmodules.com/module/apache-solr-search-integration ).

    My conclusion : Drupal, like other frameworks, has flaws. The decision to use druapl, or any other framework, is always based on the ease of implementation for your specific project.
    I understand that drupal is not the solution for everyone, however, i find that a balanced opinion is always more informational that a reactionary rant (such as “Drupal Sucks”).

  43. Pingback: Engwar » Blog Archive » Compromises

  44. I picked up Drupal fairly well, but honestly it is a learning curve, installing it is a pain, and it breaks easily. I work for a uni and they’re slowly turning all the departments to Drupal sites. I’d rather use Dreamweaver and Aptana.

  45. “Privet Mariya,
    What would be a good and easy out-of-the-box CMS then?
    All the best,”

    The custom rails that she can code in 1 day. rofl.

  46. i have had some bad experience with drupal before and now use wordpress as a cms, the point that you made about making clients getaround drupal for updating their sites is a crucial one as i had these problems before, with wordpress i seldom face such problems.
    I recommend using wordpress instead of drual
    and you are right “Drupal Sucks!”

  47. Either use Drupal with all it’s problems or create your own management system with all it’s own problems. Well, at least the custom system would be YOUR problems and you could live with that. It’s kind of like how I make your life miserable if I stink but you can put up with your own odor if you stink.

    Any code you use is simply a tool which works well for certain purposes and not well for others. Perfection doesn’t need to be a goal.

    For most sites I build, a PHP based CMS is good enough and our clients usually don’t want to give us the time or money to create something from scratch. Sure, you can replicate features quickly in a framework but nothing is as quick as using something which already exists.

    Also, if a client wants to pick up a different/cheaper developer down the road for development / maintenance then at least a CMS such as Drupal serves as sort of a standard for a large pool of developers.

    For my own application, I wouldn’t use a packaged CMS.

  48. I may not be agree with your post to any extent as since its inception, over 2.5 million downloads have been done and has won the Overall Open Source CMS Award in 2008. It also offers you lot of other functions from the start itself, we are open source developers and are very much satisfied with the Clients’s response for Drupal installation in their system.

  49. I use RoR and (if I need to use PHP for some reason) Kohana. At least my templates and log are stored in files.

  50. “3. Its called “Open Source”, spaghetti code is inherent in a project where anyone can contribute.”

    If you embrace spaghetti code like that, your are destined for a life of misery.

  51. Some good points here… and you’ve missed quite a few too ;)

    If I had to set up a small site for a customer I’d stay far away from Drupal… Imagine the hours of support going into explaining the administration panel. WordPress makes it a lot easier. Not better, easier.

    Drupal 7 is said to improve it all… I’m looking forward to what it has to offer!

    Anyway, the market asks for Drupal developers so that’s what makes me work with it. I always wonder how they got the idea of “we HAVE to use Drupal”.

  52. I agree.
    Drupal is suck.
    I have spend much time (around 2 week) to figure out
    using Drupal with geo, gmap, view module.

    I can say the admin section of Drupal is very bad, and the design for layout management also bad.

  53. Pingback: 29 most trending topics in webdesign, tech and seo. Illustrator tutorials! « Adrian Zyzik’s Weblog

  54. nice ! Somebody finally said it…. I got so frustrated with Droople, that I simply customized a Django based CMS. WordPress is better than Drupal, even if they say you cannot accomplish much with wordpress, its so easy to extend and write/insert your own PHP code to do little tough things. And those little tough things are a pain in the ass when it comes to droople.
    Infact, people tend to use a CMS as if its a swiss-knife for portals, in reality, any serious product will need a lot of customization and control, which i believe is NOT possible in Drupal, as much as it is in say WordPress (simple sweet yet extensible). Don’t even get me started on the code flow and architecture … what a mess !

  55. How dare you say such things about my Dad??

    But seriously, the only valid gripe here is the one about the Drupal learning curve. It is hard to learn, but once you get over that (and believe me, spending some money on a book will easily address this) Drupal has to be one of the best CMSs out there. And I say that coming from a wordpress/joomla/mambo background.

  56. Oh yeah, i remember an online shop done in drupal using popular modules and a little custom code. For showing a page with 9 product thumbs it was running 200 db queries in cached mode and +50 more with empty cache :).
    Cool eh?

  57. 1. Drupal is no “out-of-the-box” CMS? Where did you get this from?
    2. Drupal is more a framework than a CMS
    3. Drupal is not ment for small sites, it is more a community builder, and communities are not “small sites”.
    4. If you are not able to understand the purpose of Drupal, I don’t think you would be able to write a similar peace of software !

    Yes, Drupal ist hard to learn. So, if YOU don’t get it, just leave it, and stop spreading this bullshit!

  58. If you’re looking for a Drupal replacement, try MODx. I’ve been using it for about 2 years and I think it’s the best CMS for developers and my clients. If you know PHP, you can code your own plugins and snippets w/o having to learn a complex templating language or API – it’s all very open. The management user interface is also very easy and my clients love it.

    James

  59. I totally agree.

    After working with Django, Rails and some good PHP frameworks, Drupal seemed like an absolute mess to me. I was fortunate enough to hack through the jungle, making a square peg fit into its round holes.

  60. Pingback: Does Drupal Suck? One Developer/Blogger Says Yes, Yes It Does | damTRENDS

  61. This article is with a hint of truth loads of crap. Before bashing something, first look at ‘why’ it was done and if bad surpasses good as there’s no perfect solutions .. and in CMS it’s more than true.

    For all people saying WP is better or RoR is better … it’s my belief that this is also bullshit. The CMS must be based on the task you are suppose to do. For example if it’s something like building a personal simple blog, Drupal is definitely not your best choice and I agree whole heartedly that WP is better for something like that as WP was built with that purpose.

    On the other hand if you are building a high traffic, complex taxonomy, large content types application with millions of pages .. then Drupal would be best. I think you have got the very basic point wrong saying “Drupal might work for small sites”. It actually works better for larger and complex sites which compliments the longer learning curve. But as with any all-purpose CMS, Drupal contains stuff that you don’t need and it’s your task to optimise it and get it to work as you need – http://nadeausoftware.com/articles/2007/03/essential_steps_speed_drupal_web_site .

    #1) Drupal just stores everything in Databases ? phew, you should really try working with something like ExpressionEngine and see the real taste of “storing everything” in databases. Drupal has a great theming system with a hierarchy that stores in filesystem and blocks that can support both ways. It’s true that storing views in DB is a PITA sometimes but on the other hand it’s useful if you want to create views or blocks on the fly it’s useful. But anyway, views are not the standard way of theming Drupal and just a short cut for some tasks.

    #2) As mentioned earlier, it’s true Drupal has a relatively long learning curve and with the power of the system, it can be justified IMO.

    The way content is managed in Drupal is said to be user unfriendly but designing UX is always with sacrifices. The reason for current link structure is because that “Create content” link should receive more priority and in complex Drupal sites there can be many content types and stuff so they are grouped under “Mange Content” section. Of course, this may not be perfect but when you used to the current system, it becomes a trap of itself and hard to change the design again.

    #3) IMO and as a Drupal developer for about 4 years, I think Drupal core is more guardedly managed than any other CMS and even contributed modules are managed fairly good. It’s obviously hard to do this perfectly but vulnerabilities and security issues are much less than other CMS like WP. Also there are continuous security checks by Druapl security team and good security guidelines that make it easier for module developers to develop more secure code.

    #4) I think if you read some reviews of DrupalSucks.com they should be suffice.

    This is with my experience of building many Drupal based sites including most recently http://hotelotravel.com which is a fairly complex site and I can say Drupal works for almost any thing if you know how to do it.

  62. Agree about Drupal. I’ve been using Drupal for 3 years for 4 hobby websites. I spend more time on configuration than content. It is flexible but hard. You need to know PHP and MySQL pretty well to customize it to make it work.

  63. To each their own. I, myself, believe Drupal is bloated. In my experience developing plenty of sites for clients in the past 10 years, I’ve discovered that about 90% of clients do not need something as complex as Drupal. Most clients will update some text or upload a picture here or there. Building out a site in Drupal to make this feature available is overkill. This is why I believe the perfect CMS is one that is built to the client’s needs. A custom CMS framework is probably the way to go. This make development more efficient while giving the client the smallest possible learning curve. If Drupal doesn’t work for you, don’t use it. Find something that does work and makes both you are your clients more efficient. It takes a developer years to pull together the right mix of tools for their particular coding style. Do I think Drupal sucks? It does for me, but may be great for others.

  64. At NovusCMS we use Umbraco for most projects; Drupal for a few. I work specifically in client care/customer support and training. The typical end user of an Umbraco site can be trained in the basics within 2-3 hours. This hypothetical end user could have no previous web CMS experience. Once trained, they seldom require additional hand holding.

    Drupal end users seem to constantly need hand holding. The options and flexibility of Drupal prove overwhelming. I am able to teach a simple task faster, but there tends to be more tasks with more steps and often rarely used functions that are lost for lack of use.

    After eight years in the business and hundreds of customers under my belt, I can say without question that Umbraco is easier to train. Furthermore that training tends to stick. Considering that I used Drupal for 4 years before even learning about Umbraco, the reverse would be true if the issue were with my skills.

    One last comment to the contrary…Drupal – 2nd Year in a Row, Best OS CMS. Cheers.

  65. Pingback: Drupal sucks: http://robozen.com/technol… | Cafyn

  66. Why do so many big sites, with huge research budgets, use Drupal? I guess they’re just not as smart as you. Very poorly researched post.

  67. I couldn’t agree more with,as a Front-end developer I must say it does mess up all front end code, break validation and does not make easy to update front end code and it’s really hard for two or more Front end developer to work on the same file/folder at the same time.

  68. I had first started my website http://linuxandfriends.com on drupal because I found drupal to be very powerful. But I have very little practice coding in php and so after a few months I decided to switch over to wordpress for the following reasons -

    1. WordPress has an automatic upgrade feature where you just click on a button and all the latest security fixes are applied.
    2. For running a blog, drupal is over kill. WordPress suits much better.
    3. WordPress has far more themes than drupal.
    4. After some time, managing drupal (doing administration duties) became more of a hassle and took far more of my time.
    5. As the parent article has stated, even I found drupal navigation a bit confusing and needed several clicks to view what I wanted.
    6. Drupal doesn’t ship with a WYSIWYG editor like wordpress and many other cmses. In all honesty I was able to enable gui editing in drupal but I had to jump through hoops to enable it.
    7. Drupal requires access to cron job for site search to function. Yes for the less fortunate webmasters who do not have access to cron, there is an external project called ‘poor mans cron’. But it hardly is a solution.

    Does drupal really suck ?
    Not really. Despite the problems I faced, drupal is a good CMS which I have seen a lot of high profile, high traffic sites use. Drupal’s SEO benefits are top notch. And it is an all in one solution. For example, to do the following -

    1. run a forum
    2. Author a book
    3. Have extensive taxonomy (much better than categories).
    4. Better SEO benefits out of the box
    5. Seamlessly Integrate a gallery of photos

    and more, Drupal is an ideal choice. Just be prepared to put some efforts in knowing your cms. Or even better, hire someone to do the designing and configuring job for you.

    Drupal is over kill for a ordinary blogger who just wants to run a blog. For that WordPress and the likes rule.

  69. Pingback: Drupal Sucks Followup: Drupal Alternatives

  70. Thanks for this post. When we were evaluating Open Source CMS (Drupal, Mambo, Typo3 among them) in 2003, we finally decided to put all our efforts into eZ Publish (http://ez.no). Even eZ Publish is not easy to learn, but especially in complex projects, it has never let us down. We also developed our own Social Media and high availability framework (Volano) on top, and kept it compatible to every version since 3.4.

  71. Re: Edit #2, you’re still wrong. Here’s why:

    Views saves data in the database (so does Panels) for development and testing. The correct way to use Views (and Panels) is to Export the resulting code (big fat EXPORT button provided in the UI) and place it in a hook called hook_views_default_views(), which is an array keyed by view name containing the code for your various views. There are no views in the database if you have even a clue about what you’re doing and you’re producing custom sites for clients.

    The same mechanism applies in almost every area where Drupal uses the db. For example, blocks. Sure, you *can* save blocks in the database, but if you’re a developer and you don’t move your blocks out to hook_block() in a module then shame on you! It’s not Drupal’s fault you suck at Drupal development and can’t be bothered to learn.

    And besides, Views is contrib and you set out the premise you were ignoring contrib. So Views shouldn’t even come up in your write-up because it’s not core…?

  72. yes and no….

    you’re first gripe bout source control is irrlevant, because drupal is not designed with multiple programmers working on one themem at the same time.

    If you have programmers than you would have them building a custom cms, not “hacking” at drupal.

    people would understand drupal more if they tried NOT to understand the “core”, i.e. how drupal works, just make themes and modules and go from there….

    but in the end….your post is like saying:
    “Why station-wagons suck at nascar racing”

    yes, station-wagons suck at nascar racing, but they good for some people at somethings…

    but then again i don’t like station-wagons, so guess i’m right there with you

  73. Drupal is freaking hard to use? That’s good to know. I’ve used other CMS, and a few are damn hard to use. But at least they’re not freaking hard. But it could be worse, it could be ludicrously hard to use. According to the usability chart I’ve come with thanks to your post:

    -So hard
    -Super hard
    -Damn hard
    -Radically hard
    -Freaking hard
    -Stupidly hard
    -Ridiculously hard
    -Ludicrously hard

    Very enlightening post, we need more of you!

  74. Pingback: La foire aux liens | Monsieur Pedro

  75. Hey Mariya!

    Loved your post, you know how to polarize and get lot’s of comments. How about some other post like: “Magento sucks”, “WordPress sucks”, “Typo3 sucks”, …

    My 2 cents: I think a developer should be able to program a website in any CMS – if not he/she wouldn’t be a good developer. But at the end of the day the customer or user should be happy – you can achieve this by good coding und explaining regardless of the CMS.

    Keep on writing – I like it!
    Ulf

  76. 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.

  77. Pingback: Drupal, ça sent pas bon par Mariya Lysenkova | bertrandkeller

  78. 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.

  79. 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.

  80. @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.

  81. Pingback: Getting Started with Drupal: The Non-Retarded Version « Rick Martin

  82. 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.

  83. 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.

  84. 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.

  85. 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?

  86. @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.

  87. 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.

  88. 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.

  89. 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!

  90. 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.

  91. 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).

  92. - 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 !

  93. @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.

  94. 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

  95. 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.

  96. 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.

  97. 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.

  98. 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).

  99. 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).

  100. 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.

    • Lets see. For a start, the Drupal community includes many women, and you’ve just insulted all of them. Secondly, you claim comparing a CMS with a framework is not fair, ignoring the fact that Drupal claims to be a framework (which, IMHO, it is not). Lastly you claim that Drupal is designed for high-traffic sites when again, it is not. Drupal needed quite a few tweaks to get it to run efficiently on high-traffic sites, which is why Pressflow was born.

      I’ve used Drupal for sites since version 4 and it works well for quite a number of scenarios. However, I have a rule of thumb that once a site requires extensive CCK, its time to consider a proper framework, such as Kohana, Symfony, or Zend. Similarly, if it looks as if I will spend too much time suppressing out-of-the-box Drupal functionality to get Drupal to do what the client requires, then starting from scratch in an OOP framework is probably the best option.

      While I disagree with much of what the author of this piece has written, and while I believe that in parts he is just plain wrong, they are his opinions and I’m reluctant to react to them in the way some Drupal fanboys have done.

      Having said that, I’ve had more than my fair share of Drupal troubles, in particular upgrading a media-heavy site from Drupal 6 to 7. To this day, the Drupal 7 media module is not as capable as what it replaced. It is, however, an order of magnitude more complex. Yes, yes, I could have stayed on 6 and waited. However, I didn’t want to be scrambling to upgrade when 8 comes out and 6 is no longer supported, so I opted for the torturous upgrade and the resulting site that has less functionality than it had before.

      Yes, I know I could get involved and help on the media module, but in the absence of any developer documentation, documenting, for instance, what is involved in creating a new media provider, I simply can’t be bothered.

  101. 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

  102. 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.

  103. Pingback: Why I’m using WordPress – Openswitch

  104. 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.

  105. 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.

  106. 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.

  107. 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.

  108. 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..

  109. 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.

  110. 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

  111. 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.

  112. 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).

  113. 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….

  114. 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.. :(

  115. 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.

  116. 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.

  117. 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.

  118. 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

  119. 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.

  120. 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’.

  121. 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.

  122. 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 “

  123. 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.

  124. 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.

  125. 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.

  126. 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.

  127. 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.

  128. 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!

  129. 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.

  130. 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.

  131. 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.

  132. 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!!!

  133. 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!

  134. 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..

  135. 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.

  136. 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

  137. 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.

  138. 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.

  139. Pingback: Drupal vs ExpressionEngine for any kind of project from simple commercial site to complex ecommerce portals. - Question Lounge

  140. 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)

  141. 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.

  142. 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.

  143. 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.

  144. 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.

  145. Pingback: Blog Platforms: Cons and Pros. With your hosts Kabir (pros) and Evan (cons). « USC APOC CMGT 534

  146. 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.

  147. 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.

  148. 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

  149. 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.

  150. 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.

  151. 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.

  152. 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).

  153. 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.

  154. 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…

  155. 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.

  156. 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.

  157. 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.

  158. 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.

  159. hahaha i vote for Ayesh.. He’s right! DRUPAL ROCKS! This post should be updated or produced new one since i’ve seen it was published and created in year 2009 were i believe before, drupal is not yet that powerful at first although now, DRUPAL 7 was released, seems like everything works fine and my clients are happy with the result.

  160. Well I’ll keep it brief as it’s an old post with lots of comments.

    I have been creating websites in Joomla for 2-3 years now, nothing huge or special, just simple sites. I am not a programmer but I can get by making changes here and there where necessary.

    I decided to expand my CMS skills and learn Drupal.

    I spent 5 minutes installing it, ten minutes looking around and now I’ve deleted it.

    I was confused from the start, maybe I’m too used to Joomla, but when I installed WordPress
    last week I got stuff up and running straight away, it took 10 minutes to understand how to do
    stuff.

    It’s not only the Drupal interface I found confusing but their website as well. Finding modules
    and what they are used for is a nightmare.

    Maybe I’ll re-visit it sometime, I’ve bookmarked somesites and videos to watch but to be honest
    I don’t have the time for that at the moment. Joomla & WordPress were much friendlier.

  161. I have just finished with my WordPress traumatization and I will simply say this .

    Instead of pointing out the this or that why not just go to a website that allows people to vote on their favorite cms ? Drupal blew all the others away and I do mean all the others .
    PHP is the only language that actually truly seperates their procedural programming documentation from object oriented , which is what makes php such a great language even though it might not have every bell and whistle .

    If you think Drupal is a bad way to go then just do this .

    Download the latest version of Drupal , and take a look at the css layouts .
    Then do the same in WordPress with a custom theme .

    Have fun !

  162. totally agree with:

    “David
    Posted March 2, 2011 at 2:53 pm” – this is true of so many people new to Drupal.

    In regards to this article:

    Gripe 2: How simple must a site be that you would allow users to edit HTML and FTP? What about version control? What about users screwing up structure? What about db driven sites? Man that is such an over simplification.

    Gripe 3: I dont think you really understand the design of Drupal. Your stating that Drupal’s design is piss poor because it doesnt contain classes, object, inheritance. Are you aware that Drupal up until certain versions was backwards compatible with older version of PHP which fully support OOP? There is an actual design methodology behind the framework and just because it doesnt fit with your limited understanding of OOP you call it piss poor? Have a read of this http://drupal.org/node/547518 but from your article I doubt you would understand it.

  163. I stopped using Drupal except on my sites already made and switched back to what I used to do: mix and match. Currently:

    - Flourish http://www.flourishlib.com/ Excellent library, including a great ORM
    - Moor (Google it, it’s on github) Excellent routing library
    - HTML Purifier (I used this in Drupal before too)

    With these and adding in your database (by the way with Flourish choose between MySQL, MSSQL, PgSQL, DB2, Oracle), this should be all you need to build a great website that can’t use something more simple like WordPress.

    Drupal is kind of like, if you could get your version of perfection down finally, then that’s what it is. For example, tiny things like having dashes instead of _ for form element id’s and classes. Or, using _ on every function. Having no dependence on object-oriented code. 2 spaces, no tabs. The list goes on and on.

    Also, I hated when people refused to do things correctly. i.e. STOP MAKING MODULES THAT DEPEND ON CUSTOM CCK FIELDS EXISTING THAT MUST BE USER-CREATED!!! AND SAME FOR VIEWS!!!

  164. @Drupal 8TR – very funny and very true.

    Drupal does suck, anyone that hasn’t built a website in a MVC framework doesn’t understand that HTML and CSS are awesome…when separated and easy to edit.

    They also don’t understand that working with 3rd party API’s becomes easier creating new possibilities for website applications.

    They probably also don’t know that Drupal duplicates content when you use Pathauto and that the old “node-1,node-2,etc” links are still available to Google…UH OH DRUPLICATE CONTENT!

    Yes…I said Druplicate.

    You have to use TWO “modules” to suppress the duplicate content behavior.

  165. I find drupal at least better than wordpress which is nothing more than a plugin ocean. Drupal helps to manage users and gives administrator right to do anything giving users different power according to wish. If you say drupal is for small websites then, first dig the drupal. Any person who knows ever the little about drupal wouldn’t have said that. It is obvious that drupal is little hard to understand when, when you understand the basic phenomenon how drupal works it will be a piece of cake for everyone. Building a content using one theme in wordpress won’t make your site a king. Learn drupal then, write content. Just don’t write to increase your website traffic if, you write blog containing irrevelant content no one will come later and certainly, i won’t too.

  166. For all the drupal fanboys… some organizations can’t afford to hire someone who can code? And yet they seem to be able to put money into setting up, configuring, and running a drupal instance? I’m experienced with drupal, and I can tell you, the costs to get started and working on drupal, and to maintain it, are roughly equal to the costs of custom coding. And it is very likely depending on the site you are building to need custom code even if you USE something like drupal. Views and panels are powerful, but also easily break in interesting ways that can take smart people weeks to fix. Drupal has very high hidden costs that the drupal faithful seems to be blind to. I can’t count the number of times I have looked up a solution to a problem, only to find that there was once a bug listed for that issue but the drupal developers have closed the bug as fixed. Sometimes they just randomly close open bugs without reason. And when you start getting out of core and into custom modules, which are a requirement for any drupal site, you find that many of them are somewhat incompatible. It’s like trying to run a website on top of the firefox extension system. The costs that drupal impose are unpredictable, and hidden. It looks nice on the outside, but its rotten on the inside.

  167. Wow …. this is a silly article that is inconsistent with reality. People who are incapable of using powerful programs do not like Drupal. The rest of us …. well … we are capable and know better.

    Try taking a few more college courses and don’t worry …. you will get the hang of it!

  168. Let me throw my 2 cents in…

    You are comparing apples and oranges. Drupal is a Content Management System. Rails is a Framework. Drupal, despite its pretense to the contrary, is not a Framework. Drupal and Rails only occasionally have something in common – Drupal when used with CCK can be as slow as hell and Rails *is* as slow as hell.

    While I also find Drupal’s way of doing things to be frustrating, since I come from an OO perspective, I certainly wouldn’t regard it as any less worthy than a framework that thinks it knows better than I do how my database should be structured and how database fields should be named.

    In the Rails world and also in the Drupal with CCK world, the database appears to be a second-class citizen, rather than the repository of vitally important data.

  169. I’ve been a .php developer for 6 years, and I agree entirely with the article. I’ve been forced to use Drupal at my new day job. My gripes are below:

    1) Nobody knows nothing in the Drupal “Community”. Nothing. Nobody has an answer for anything, except, “this should work.” I have posts in 6 threads and I’ve not received 1 answer, including posts that offer cash for tutoring or to help guide me by GoToMeeting.

    2) I bought the 900+ page book “The Definitive Guide to Drupal 7. I read through it twice. I tried to install one of the “go to” modules for groups. I dropped in the module folder into the appropriate location, pressed save, and my entire site crashed. Just bombed right out. Tell this to a member of the “Community”, and you get crickets or a “did you install it right?”.

    3) Just getting to a related css/js file is a nightmare. Why is there not an editor for any related file on the particular pages that you are on? The .css file are compressed and there is no reliable documentation for how to find your .css file. I have to get a Captcha box to show and in any other method of code or Framework, this would take 5 seconds or less. I’ve tried 30 different solutions over the span of 3 days and NOTHING works and once again, nobody from the “Community” knows anything. Some screens allow you to see the .php/.js behind the scenes, and others do not. There is no viable explanation for why this happens.

    4) Tell a Drupal fan that each page should have a related .js, .css, .php file that should be easily accessible and they look at you like your drunk. How does the folder structure work. Modules involve Views? Blocks can be moved, but “module XXXX” has to be enabled. For God sake, I just want to move an input box around.

    Honestly, there are days where I will just click around the admin overlay for hours hoping to hit some screen that may help, because the “Community” has given me nothing. The Books have given me nothing. You know it’s bad when you put cash out on the forums for help and nobody responds. I get that there is a learning curve, but this is out of control. About a year ago, I was new to MVC design. While I read up a bit on it, the concept was uniform across any website that employs it: Each file has a design layer, an engine layer, and everytime a page loads, there are accompanying .js files, .css files, and they names they take on relate directly to the page that is active. Even a first grader could understand that logic, even if you never programmed in it.

    With Drupal, there is no sort of any semblance, roadmap, or coherent direction on what relates to what and why?

  170. The ignoramus who thinks Views are “templates” needs to be made into the little b*tch that he is.

    Do you even know what a template is, dumbass?

    Views is a way of generating incredibly complex queries.

    There are many kick-ass Drupal sites out there so clearly Drupal doesn’t suck. Just because you were too dumb to get your Drupal app working doesn’t mean Drupal sucks. It means you do.

    Have a nice day, morons. We’re leaving you 1999 object-oriented buffoons in the dust.

  171. I love reading grown men arguing like little girls over who uses the best CMS or programming language!

    Unlike most here, I very much enjoy using it and find the forum to be a wealth of useful information. I know that Ruby is very fashionable right now, and it could well be a very useful tool. But can we cease the “my dad’s bigger than your dad” BS?!

  172. In my final semester of college we had a project management course – we had to develop a website for a client chosen by our professor. The client didn’t know anything about HTML and didn’t care to learn it. Our professor suggested we use “Drupal”….this was back in 2008 – when people were still naive about it.

    My team of eager college students took a few looks at Drupal and decided it wasn’t worth our time (and sans-Drupal, we managed to meet the client’s deadline!)

    Now I am in another Drupal project – where it seems like the developers put all possible open-source CMS solutions into a hat and asked someone to pick a name. The DEVELOPERS don’t even know what they are doing. I swear this project is doomed right from the start…

  173. Wow, so some people like Drupal and some people don’t. And one of the people that doesn’t like it has a blog, and prefers to code in a different way.

    I guess we’ve all learned something really valuable then. This doesn’t seem like a waste of time *at all*

  174. I completely agree with you 100%. I build all my projects using C#.NET and PHP and I just had to take over a website built in Drupal. This is probably the worst CMS I have ever laid my eyes upon. It’s been 2 days and I’m still staring at the screen. I have no reason to waste my time learning this piece of crap other than to maintain this one website. I’m thinking to throw it back at the guy we outsourced this site to (I wasn’t working here when they outsourced a “Developer” to build this site). I don’t know, looking at this thing makes me angry.

  175. Its ok, if you have no clue about Drupal and prefer to use something else.
    BUT you shouldnt spread so many wrong facts.
    Drupal is awesome even it isn’t perfect. You know what? Nothing is perfect!

    Most is already said in the comments above. Just want to add one thing, Drupal did always focus on using the best practise of web programming and latest technology. Yes, the downside is compatilitiy. You are using WordPress. Did you ever took a look on the Sourcecode, THAT ONE IS A REAL MESS!! WordPress sill use the old MySQL API from PHP4 and does a lot more ugly things.

    Did you ever hear about drush? I guess not? Its a pleasure to upgrade sites with drush and it does backup of old modules in case somthing won’t work.

    Oh, and Drupla DOES use objects whenever its useful. But OOP isnt always so cool because it produce a lot of overhead, thats a fact too! Its not the answer for everything.

    I still wait for your promised followup ;)

  176. Simple example why drupal sucks:
    Try to build a Content Type tree, where you have Content Types that belong to specific groups.
    The entire structure of Tree-style data is virtually none-existing, you have to emulate it with a view, which makes you want to slay whoever thought of this node-taxonomy system (not to mention how much extra work your server will have to do)

  177. Agreed! You’d be better off telling your clients to learn html and css. Drupal defeats the purpose of having a system that is easier to build and easier for clients to update. It’s impossible to learn. Things don’t work half the time. And , clients need to go to school to learn how to update their content. Switch to Concrete5.org, superior in every way.

  178. Interesting set of points here, and possibly accurate at the time of publication.

    However, while some of your gripes may still be true, I don’t think they are entirely accurate. Drupal does not store it’s templates in a database (unless your term for template refers to something other than a theme template, which are PHP files in the codebase — the only reference to them in the database is just a reference to the filename), and it’s very common for dev teams (including the Drupal community itself) to use SVN or GIT to version the codebase. You are right, though, that a true 3-tier (local>stage>prod) environment doesn’t work well for Drupal because of the database — however, this is generally true for ALL runtime database systems that include end-user information (comments, login/user data, etc), so it’s not something particularly wrong with Drupal, except that Drupal does a very poor job of separating tables/content generated by end-users and content/changes made by developers (WordPress and Joomla! both, at my last evaluation, suffer from this fault as well)

    The logs it store in the database are ultra-basic Drupal-related stuff, it’s NOT the web server logs, which are still on the server as usual.

    Drupal has a learning curve, yes, so you can’t be a PHP noob to use it — if you are, then it will seem incredibly hard to understand…….. Then again, if you’re a PHP noob, most (all) open source CMS tools will be hard (best use a wizard-driven installer from Microsoft and pay for an MSP monkeyboy to work it for you…)

    Don’t think the trademark issue is particularly connected to whether the software works, so I won’t address your personal issue to the developers — that’s your business…

    The design of Drupal 5 and 6 sucked. Drupal 7 is *MUCH* better, and I’m guessing when Drupal 8 comes out, it will be improved even further. That said, even with Drupal 6, you could pretty much make sites do anything you wanted design-wise, and now with Drupal 7, you can pretty easily make fully HTML5 compliant sites, which means the design only sucks as bad as the designer that themed it (that means you, if you can’t make a Drupal site look good…)

    Anyway, all that said. I went with ExpressionEngine. (I like Drupal a lot, but I’m not an apologist. It isn’t perfect and didn’t fully suite the needs of the company I work for, so I didn’t use it. But I also hate to see it bashed needlessly especially when not all the criticism are exactly accurate…)

  179. Seems to me that there is something completly wrong in this article :
    drupal sucks but compared to what ?
    That makes no sense comparing a cms with a framework or custom code. You have to compare drupal with joomla or wordpress or modx or typo3.

    “it can be usable is useless to someone who can code a custom Rails CMS in a day or two.”

    I can’t believe you are serious. No, you CAN’T code in two days all the features of offered drupal or modx or joomla or any CMS.

  180. lol @ ayesh, who said “drupal is well-though coding.” no, it’s not. as has been pointed out, look at the f**king code that stores the menu in the database. The database STRUCTURE determines the menu layout and it is limited in depth by a HARDCODED limit to the number of COLUMNS you can create for use as a menu level. That is some of the worst design I have ever seen in 10+ years. The people who *like* drupal have no idea what they’re doing. People say “drupal saved me so much time!!” yeah that’s called a WORKAROUND in the industry – it’s faster than recoding mistaken design from scratch when you’re on a deadline. And every competent IT professional knows what happens if you put bandaids on for too long.

    Here’s a very basic example of why Drupal was designed by people who either a) are totally incompetent or b) want to make sure only they can maintain their product. It stores HTML content in the database, complete with things like class names auto generated by one particular version of drupal. these are things like block-block-content-page-node. in case you failed OO 101, what should be stored in a database is content, which does NOT include MARKUP. Markup should be generated by the APPLICATION, based on INFORMATION gathered from the DATA in the DATABASE, so the implementation of the content is up to the CLIENT SOFTWARE. Drupal uses mashed together method names that are whole sentences instead of using an OO approach. This is a VERY poor practice. Objects should provide context for calls invoked on them, instead of using a cluttered namespace approach where the user has to memorize a specific convention for how oversized variable names are created and pass in an object every time. in addition to being error prone this creates much more overhead on a machine level, because you end up with things like gigantic symbol tables that have to be searched over and over again for the same three calls, and your current stack frame will have a shitload of extra variables instead of pushing a new stack frame with less overhead for use with a different execution context like, say, an object.

    So tell me again how people that don’t like Drupal aren’t devs? The people that WROTE drupal aren’t devs. I know tons of other CMSs employ similar bad practices but none of them scratch the surface of the thousands of miles of spaghetti code that is Drupal. All other OSS software that I have seen has much higher quality than drupal.

    I could go on but I have to work on a Drupal site, because the IT department got infiltrated with amateurs that think all of the existing sites that work fine need to get broken and require three times as much maintenance.

  181. Very good, well written article… but, You’re high!

    Gripe #2 is true… it’s hard to learn at first, for who, a Dev? BooF’nHoo. You’re getting paid right. You’ll have to train your client how to use any CMS.

    Your argument against hiring a Drupal Dev vs a RoR Dev is just flawed. The layperson couldn’t care less about the language, version control, and where the configuration is stored. They want to know what they can get for how much and when. That’s where bloated feature rich CMS come in my friend.

    And what happens when your custom RoR CMS you paid for doesn’t quite meet your needs any more… go back to the RoR Dev cause you – as a layperson – don’t know RoR and everything is in (version controlled) code?

    VS. Asking your Drupal Dev to search the 6,000+ drupal contributed modules, install, configure, add content and some CSS if needed and done… heaven forbid asking them to write some PHP to build a custom module.

  182. Great Point! 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!

  183. I’ve been developing PHP sites for 15-years. I don’t use a “framework” or “CMS”, except for my own coding standards that I have developed over the years–mainly from learning what does and doesn’t work. One day, I decided to give Drupal a try because I heard so many people talking about it and how awesome it is, but I was disappointed in my experience. I then tried ROR and was equally disappointed. Framework/CMS after framework/CMS I was consistently disappointed with having to conform to coding methods that I have already found didn’t work and/or were not scalable.

    All of this said, I am not sure if Drupal is entirely to blame; I think that we tend to settle on what is comfortable to us and we reject those things that fall outside of the realms of what we’re used to, or what we know to be “right”.

    I will never use a framework other than the object oriented, version controlled, input scrubbing, completely modular and independent, system that I have developed, if I can help it. I will use WordPress for my blog sites, but that’s because it serves one purpose and it serves that purpose well.

    So, yes, Drupal sucks, but so does Ruby On Rails, Joomla!, Codeigniter and ever other framework out there that I haven’t created, and know front-to-back, myself.

  184. A morning with Drupal:
    1. errors
    2. more errors
    3. bugs
    4. slow, slow, slow
    5. reinstall
    6. crash
    7. reinstall and so forth….

    Done — with Drupal where the key word is Droop!

  185. Drupal is more for large scale enterprise sites, I could do a SQL injection on wordpress no problem, where as Drupal is constantly updated for security updates and the functionality is so much better than WordPress which after all is a glorified blog. I wouldn’t dare build a large scale site using WordPress, not only does it have many security risks its slow and build time would take far longer. Maybe think about what bollocks your talking and tell the US government that WordPress is better, oh wait their on Drupal!

  186. I work at a non-profit that has about five or six websites currently running in Drupal. Recently, I was asked to learn Drupal, to start administering and contributing to those sites. While I am excited about learning web development, I’m starting to get less excited the more time I spend with Drupal.

    So far it’s been one frustration after the other. Something as simple as installing a new theme or module (even those supposedly written for that specific Drupal version) is usually enough to break the damn thing…

    In fact, just this afternoon I installed Drupal 7.12 “stable” (LMAO) on a new site, downloaded a theme from the drupal.org site, enabled it, and… well first I got a whole list of error messages, ended up having to close the site completely, and when I brought it back up, I clicked on the Appearances to go back to the original theme, “Server Error”. Can’t even change back to the theme that did work, because I can’t load the settings page!!! Ugh :(

  187. 99% of the comments on this post wreak of “I don’t know how to use it so it sucks” mantra. Why do you think Windows power users are so pissed off when they have to use a Mac? They say it’s “not user friendly” or “horribly designed”. An Apple product that’s not user friendly? Come on. It all boils down to what you know and what you’re used to using.

    Going forward, I see a shift from programmers who know one or two languages/frameworks to many. They are called polyglots and there will be many job opportunities for these sort of people. The tech industry is constantly changing/reinventing itself. Don’t get stuck in the rut of “this is what I know” and now I’m going to do that until I retire. Show some passion for your profession and learn new things. While they may be hard in the beginning, once you know how to use a new tool/technique/framework, your life becomes easier because its one more tool on your belt you have to work with.

  188. If you think Drupal sucks, you’re doing it wrong.

    I say to my clients quite the opposite, if you want a quick and dirty site with not much custom functionality, go with WordPress, if you want a CMS customised to the nth degree, go with Drupal.

    Drupal is a coders CMS and that’s why we love it. Its modular, it doesn’t have a stupid ‘the Loop’. WordPress and rails are for non-coders who couldn’t be arsed to learn to code properly.

  189. I am a Drupal Developer. I agree Drupal is unfriendly to profanes but could you suggest a more friendly open source alternative? Is Ruby the friendly and easy way to go? Joomla is a whole mess and a sleep breaker. Complex tasks require in-deep study and preparations. So is with Drupal. Learn it before you get start doing works for your clients. Your article proves you don’t understand it.

    I agree with you the lack of maintaining a DB via svn, are other solutions different?

    “Drupal stores logging in the database.”
    There are several ways to stores the in files if you need so.

    “Drupal stores everything in the database.”
    Yes, if you hardcode and paste php scripts in the content (using php input filter) it is true, but this is not the way to go. Read the best practice and you’ll understand. Evereything should be done through custom modules. The way you can fetch views (high level) and mysql queries (low level) in your module really rocks. Drupal is for complex tasks working at a highlevel rather than scratching your keyboard designing skyscrapers from bare sand.

    “Confusing UI”
    Drupal is a compelx machine it is normal to have tons of admin forms. Create an alternative account for your customers with only a 2 links: Add and Edit Content. Dumb Easy!

    No software in the world is bugless this is the way we have so many alternative solutions.
    I would expect a more thoroughly review but all your objections lack profesionalism.

    My opinion is you have had a superficial encounter with Drupal.

  190. The real argument you’re so wrong is the fact you’re not using a ruby powered blog but a wordpress instead. lol :)

  191. Since this was written in 2009 I take it you haven’t tried Drupal7. It is MUCH better than Drupal6.
    Drupal is very serious about security. With WordPress just keep up to date and keep your permissions in order you will probably be fine. You are up to date with your WordPress install right?

  192. Wow– good piece and holy so much feedback!
    I use Drupal as my default CMS. I have no sense of the learning curve because I have been following the software since 2005, but to put myself in the shoes of a novice user, I could see this being really hard.
    I think Drupal suffers from being accurate but wrong in a number of cases. When I see the layers inside of layers (tpl naming, the div classes in the output, where modules elements are stored in an install, etc..), it’s clear and organized– but so organized that you need to digest a lot of infrastructure and organization to fathom what’s what.
    It needs business readiness factored in. The site, Drupalmodules.com does evaluate several additional factors. A module needs to be documented. If it’s not stable, that needs to be known. Bugs will automatically get closed if there is no action in two weeks in the thread. That’s not uncommon, but it means a host of unresolved problems get buried after discovery; but those bugs remain.
    Unlike WordPress, Drupal has a really rocky upgrade and downgrade path. What you can do from the WordPress dashboard with comparative abandon; is impossible in Drupal.

  193. Completely disagree with this ignorant article.

    Drupal is not the best tool for every website by any stretch, and no, it doesn’t follow traditional OOP paradigms, but it is in effect an MVC framework.

    An experienced Drupal developer can ramp up 80-90% of the functionality for a site (where drupal is appropriate to use) in a matter of days using mature, stable and flexible modules, allowing the development team to focus on the important features that are custom to that site, instead of re-thinking how to deal with things like ACL and form validation.

    Drupal is an excellent choice for a site which requires heavy content management or community interaction, it is not a good choice for developing web applications that aren’t based around those two concepts, as it is not designed for that.

    Have a look at whitehouse.gov http://www.grammy.com ing.us economist.com etc etc and do your research as to why governments, news agencies, financial institutions, and major entertainment companies rely on Drupal as a trusted platform before you claim that something “sucks”.

  194. I had four days to set up an international conference website- from the server up. I had never used Drupal before, and for various reasons it was the one I had to use, but I had none of the issues that you raising. I am not saying that Drupal is perfect, but I did come to love the whole eco system, especially Drush. Why: an example: With a single command line, I can ask Drush to check for all updates for security, for every module that is on the site, and update them. I could ask Drush to set up a whole site for me, based on a previous template now.

    In terms of theming- basically make a page(s) in HTML and then copy in the PHP print statements into the appropriate places, replacing your HTML- really simple and quick and powerful- I guess there are some tricks involved, but I found plenty of resources to help me on the way over the three days I had after I got the servers set up. (I do understand that this is not an ideal timeframe, but many CEOs do not understand this)

    I think some of the stuff that is said here could be applied to any CMS, or framework, if approached the wrong way. I am glad you have found something that works for you.

  195. Drupal is great because of its community, not because of the software. It is fun to use too *once* you overcome the learning curve(s). A proprietary CMS is hard for anyone else to update, I see customers getting ripped off all the time. As more and more groups join the Internet, the market for OSS is only going to grow.

  196. @Steve: and you’re clearly a Drupal fanboy. There are plenty of real developers who still think Drupal takes entirely too long to implement the most basic functionality.

  197. You make some good points, but I disagree with the assertion that the code base is all bad. Joomla and some aspects of WordPress or much worse, and traditionally you get a much higher standard of programmers in the Drupal community than the aforementioned platforms. Python and Ruby devs tend to be some of the best I come across in job interviews, so I could agree with your points on Ruby.

    I think it’s all about using the right tool for the job, and in many cases, Drupal is a good fit.

  198. Personally, I think Drupal words better for more advanced web developers, whereas other CMS’s are for less technical people. Therefore, Drupal is not really the best if you want a site to work ‘out of the box’.

  199. All of these points are wrong. Every system has a learning curve and it’s own negatives…even Ruby on Rails. It just so happens that those other negatives you have here are predominantly invalid. Views is not Drupal core, and it is stored in the database but they are also exportable. And the Drupal logs can be disabled or limited to X count of records so as to not bloat the database.

  200. This is an old post, but still relevant… because Drupal still sucks.

    There are a few reasons why Drupal is so widely used. One reason is that web designers can hack together a site very quickly without caring about long term maintenance. Web designers say, “look at all these third party modules I can use that save me from having to do any icky coding,” *squeal!!!!!!!*.

    The reality of the situation is that reliance on third party modules is a huge maintenance problem. If you are performing a major version upgrade, say from Drupal 5 to 6, and a module maintainer has not created a Drupal 6 version of the module, you have to rework your site to not rely on that module (or become the maintainer of the module!). If you have one or two sites, then this is a problem, but not a huge one. If you have 50 sites, some of which use 20-40 third party modules because your web designer went INSANE, then you are screwed. There are other maintenance issues as well: 1) continuous integration, and thus staging, is nearly impossible, 2) minor core version upgrades will, and often do, render sites completely non-functional, 3) the database schema is not relational and uses MyISAM by default, making data integrity suspect at best – sidebar: if you are using Drupal for e-comm you must be smoking crack. The list goes on, but you get the point.

    Speaking of smoking crack… another reason why Drupal is so widely used is because it is like crack for managers. Managers see that a web designer can hack together a Frankenstein’s monster of a site in a couple of weeks and dollar signs appear in their eyes. It isn’t until the next major version release that they realize that they need to hire a team of highly specialized people for 18 months to upgrade their 50+ sites because the web designer doesn’t know how to upgrade them and hasn’t bothered to patch a single site in the previous 2 years. All that time and money that was saved up-front is then grossly out-weighed by gargantuan maintenance costs.

  201. >…before it can be usable is useless to someone who can code a custom Rails CMS in a day >or …two

    Come on, I might agree on the fact that drupal sucks, but come on a cms in a day or two.
    So why are you using WordPress?
    I also notice a severe lack of cms written in Rails and a plethora of blog written in php lead by some ruby genius telling the same shit over and over.
    Stop telling bullshit and code….

  202. For me worst thing in Drupal is module bloat. You activate modules that do this and that and finally you realize that each web request triggers 200 queries in the database!!!! For single article!! Of course you could always use boost module, but then I need to explain to people in news magazine that their articles will not show up when they publish it but after cron run.

  203. I don’t think Views does what you think it does. It’s not he V in MVC. It’s more like a UI for building queries. No template is stored in the db.

  204. There are some good points against drupal, specially “gripe#1″ but the rest is simple moaning. With all the comments too.

    What I see so far, all the people that agree that drupal sucks are all the “old” people, old school, moaning and complaining because they know how to do things much faster with the way they were used to do things.

    Wrong profession, constant learning, life must suck for you.

    To read that the custom CMS is always better than using any of these open source hippy garbage CMSs is really… interesting? Affirmation simply wrong. So how can a person be so positive about that? This person is making lots of company lose money by using not open source stuff, I would say it is the worst worker ever, you really want to stay away from people like that. I really wonder the disasters and the trouble you might have been causing.

    The other thing I read are comments against modularization. Really? again, really? I wonder what goes through your mind when you say that having a bunch of modules is bad. It is like saying: having a good policy and procedure of doing things is bad”. It will take so much time to number all the adventatges of modularity

    For all those people, please, stay away from IT, you are causing trouble, you are doing things wrong, and you don’t understand the basics of software engineering. (I guess it’s then that the business hires a real professional and he can’t believe all the mess that has been done).

    About my case:

    I never used a CMs I started with drupal, and you can have a good website in 1 hour. Most people don’t need more than that. And most business don’t need more than that. The problem is that lots of them don’t realize that….

    If it requires a LOT of customization, then drupal is NOT the solution, but that is another problem.

    I could agree that drupal sucks, but most of the comments are from people who clearly don’t have any idea of what they are talking about or they are stuck in 1990.
    I would say the learning curve is not hard at all. For example, symfony is pretty much complicated, in drupal you don’t even have to code, and if you have to code a lot, that’s a clear symptom that drupal is not a good solution for the problem.

    I would say it suck for that, the customization is pretty difficult, and you have to be very “drupally” to assure that upgrades and other stuff won’t brake everything. But in general is a time saver!

  205. I pretty much agree with all the people ranting against Drupal. It’s kind of refreshing to hear it. People who use Drupal seem to be sworn to secrecy about its incredible deficiencies.

    Drupal is animated by a dream of codeless web development. So you can actually get a fair bit done just by pointing and clicking. Filling out some forms.

    The problem is the 20-50% you can’t get done with Drupal. Sure, theoretically everything is customizable , but by the time you have figured out how to do it, you could have learned Django or Rails. Having learned Django or Rails, you’d be empowered to build something exactly the way you want it and which doesn’t seem like a black box every time you want to change something.

    Then there’s the speed, which is becoming the dealbreaker for me. I am currently working on a project using one of the popular APIs. This project requires the parsing of a large XML file which feeds content into Drupal. Using Drupal’s alleged best practices, this dump takes more than 11 hours. Java coders are getting it done in 10 MINUTES.

    Then there are the bugs. Shit gets added into core no less – not just crappy modules – that is complete enough to say, show parameters in an IDE dropdown, but not complete enough to do anything with those parameters. I spent two hours fighting with such a bug tonight.

    Then, finally, there’s the community, with it’s cult-like devotion to The Drupal Way. Woe be to him who asks how he might get something accomplished by working directly with the database, rather than one of the wonderfully sluggish APIs or Drupal’s hook system. That’s not the Drupal way!!! It might actually be fast. Efficient. Enjoyable. We can’t possibly have that.

    So, for instance, good luck finding any information on how to create a node – the basic unit of Drupal content – by directly updating the gazillion tables where a single node’s content is stored. There’s no documentation on it and if any community members know how to do it, they’re keeping it to themselves.

    Anyway, I’ve been working all day with it and I’m fried. This post hit the nail on the head.

  206. Yes, Drupal definitely sucks.
    The last 3 days I’m trying to setup an easy site for a customer.
    It totally fucks up. Things like getting a text on the front page without “Read more” button takes you 3 hours. Also there is no out-of-the-box functionality to hide the submenu links but show full path in breadcrumb. (menu depth)
    It’s a pain and I am a very experienced PHP programmer. I normally use Zend Framework.

  207. I think most people who love Drupal do not typically work with anything else. They have all their eggs in one basket, so when you say the eggs smell rotten, they tend to get upset. As a developer I want to be exposed to a wide variety of systems so I can cherry pick the best parts of it all. Being stuck on any one thing simply leads to a closed mind.

  208. Oh my god …

    please stay on wordpress or something else which is called a CMS. Drupal got structure, Drupal got everything a good website need and drupal could already be upgraded.
    To all those which work with wordpress oder t3. You know nothing about Drupal.

    It is right that it tooks a little bit time to understand architecture and make useful webpages. But after that the progress to change things on pages is much easier than in any other CMS. I know what i`m talking about. I`ve worked also with joomla, wordpress, modx, t3, websitebaker and other small CMS. And when i say i worked, then i didn`t tried. I`ve realized a lot of wepages in diffrent CMS Systems. So give drupal a chance if you really would like to call your self a web developer. To all others do your thing and don`t write useless Posts like this one …

  209. Pingback: Does Drupal Still Suck? | Robozen

  210. Le sigh…. this couldn’t be farther from the truth, and I could spend the time picking apart your entire post but I won’t. I’ll admit, Drupal is very difficult in the beginning, and I can see why a beginner Drupal developer may be lead to the conclusion that it totally sucks, but anyone who sticks with it and really learns the ins and outs will understand and appreciate the platform. Just like learning anything new, Drupal takes time to really master.
    Years and years ago I used to think it was better to custom program everything I did, and now I see why people don’t really do that anymore. I started on WordPress and thought Drupal was a terrible CMS. Don’t get me wrong, WordPress is a great and still holds a place in my heart, but Drupal is sooooo much more capable, which unfortunately also means that it’s that much more complex.

    • I don’t think everything should be built from scratch – that would be silly indeed. I’m saying there are platforms that let you pull in contrib code on an as-needed basis, and manage it in a better way.

    • Dude that’s point make thing as simple as you can and not create a chinise puzzle. WordPress ok but it’s 100% better then Drupal beside WP is not true CMS it’s blog publishing platform.
      There is another shitty application I hate Magento.

  211. Drupal is a Formula 1 car… not a pedal car (which is indeed easier to drive, but very limited also).

    Drupal brings almost all you need for a website, from a simple presentation site to a large and complex one.
    You’ll always have a custom part to develop, but even for this Drupal brings a lot of help (Entity API, hooks, etc) and if you’re experienced with it, you’ll be a lot faster than a from scratch developer, or a spaghetti-Wordpress developer…
    Perhaps, Drupal is not so an integrator friendly CMS to set up a site (things change however and D8 will be more user friendly) and if you’re an web agency, you’ll need to have more skills than just design skills (poor agencies only have commercial and design skills, completly outdated in 2012 where web problematics are a lot wider than just colors…). But Drupal is a very END-USER friendly CMS… My agency develop websites for customers who don’t even know what a CMS is… and they can manage sites themselves when we deliver the system. Even for complexes websites.
    That’s the power of Drupal : modular, nicely coded, high skills developers (see the famous poll for that), a framework covering many fields from precise to abstract concepts.

    So, if you can’t drive a F1 car, don’t say the car is bad, maybe ask yourself if it is not the driver who needs driving lessons…

    TahitiClic
    PS : I apologize for my poor english, France here

  212. Agree Drupal is crap application period.
    I’m developer myself I wrote some custom CMS and used Joomla, WP, MovableType some others.
    I tell you there is nothing that makes any sense in Drupal from idiotic theming logic to extremely unfriendly UI to the crappy written code.
    Don’t even get me started on MySQL data.
    RUN away from DRUPAL as fast as you can.

    • Crappy written code… Have you ever looked at Joomla or WP coding ??? LOL…

      It is a fact (http://www.webologysolutions.com/ebusiness-blog/joomla-vs-drupal-survey.html) that Drupal developer are highly skilled on programming than, for instance Joomla (and I don’t talk about the WP messy spaghetti coding).
      Drupal uses SimpleTest, Design Patterns, Security reviews, etc.

      Again, Drupal is not a poor web agency or programmer tool, it is a professionnal tool.
      You can construct a house with professionnal tools, and then people can evolve greatly in the house, or you can construct a house with poor tools and design (architecturally speaking) if you don’t have skills to do better, and then people will suffer using the house…

      Please, give us some details on your point of view, it will be very interesting I guess.

  213. I’ve used Drupal since 5, (5 years?). Can do anything for any business need. Maintenance is maintenance. Who in the world like to clean floors? At least we know when the first grain of dirt hits it. Smart and easy theming, great functionality modules. I’ve companies that have been with Drupal for 5+ years. They don’t know or care about the technology, it is just easy for them to manage their own site.

    During this same 5 years + an additional 5 years previous, I used many closed source CMS systems to include MS Sharepoint/WSS (which soaked up MS CMS, which MS purchased the company that created that CMS). When I had the opportunity to work with Drupal full time I took it.

    There is no best CMS for everyone. There is no CMS that will fill the cup out of the box.

  214. I have a compute science degree and have been developing software for 15 years in Java/DB2, HTML/CSS/Javascript/JQuery, .NET/MSSql and have and manage sites in .NetNuke, WordPress, Joomla and Drupal. From a purely programming point of view, where things are organized in streamline fashions, variables are declared in some sort of organized fashion, functionality is limited to certain places so it is easily maintained , how things references another, and leveraging the best parts of performance of servers, DRUPAL indeed is HORRIBLE/SUCKS and makes absolutely no logical sense. As an educated programmer, its hard to even wrap my head around how the ideas and features and organization of Drupal were even conceived. Drugs must have been involved. It shows at best, an elementary understanding of programming that goes all the way around the barn, down a 3 mile driveway and into town to the market to do some window shopping to just go in the front door. Its truly ridiculous how badly organized basic things are in Drupal and then there is code decipher required to understand how they reference each other. It is not meant for team development or large websites. Drupal and Joomla makers/freeware developers and champions all deserve to be expelled from being able to call themselves programmers.

    If you are considering utilizing Drupal for your web presence, realize, your picking a nightmare of spaghetti code, you will eventually hate your developer, because they can’t get stuff done quickly, easily, cheaply or intuitively, when the entire point of using a CMS was to make things easier and cheaper. Drupal gets an F when it comes to CMSs.

    It is true, ALL CMSs fall short. However, for 90% of folks on the internet who want a basic business website with a LOT of great free or cheap plugins, http://www.wordpress.org is the best option. Since they make actual revenue as an organization, they have paid resources to maintain their codebase and think things through as a team, and it is evident. Open source means that some dude wacked out on Mountain Dew, mostly likely stoned in his underwear in his basement conceived the system that you are basing your businesses ability to do business on. Be scared, be VERY scared. Drupal smells of crusty Doing the Dew bong resin underwear.

    All of you open source communist out there bought into management scheme to get free work out of you and if you bought into it, its working and the half ass nature of the codebase of the PHP internet world shows it. Wake up, knowledge is power, stop giving your power away so others can benefit from it. I personally think all of you freeware champions are chumps. This is America, we are capitalist act like it and stop giving the impression that technologist are somehow supposed to magically make money appear by giving our skills away.

    If your a business person that knows not much about Drupal, stay away from it. Its a BAD Idea.

  215. Keep writing against drupal, meanwhile in U.S the the govt. is moving their sites to Drupal. Yeah, twitter developers site is also running on Drupal. BBC Radio, Forbes Russia, Examiner, Economist are also using Drupal. Reuters is already experimenting a beta on Drupal. e-Bay is running classifieds on Drupal. Paypal, Al-Jazeera and Java developers community are using Drupal. ING Vysa, Symantec Connect is also using drupal. Yahoo is using Drupal for a variety of sites. May you need to learn it again, give it one more try. Btw I forgot to mention millions of NBC Olympics news updates per second was served from Drupal.

    Drupal is for performance, scalability and security. And yeah, guys who are serious and learns to do it good.

  216. Surprising how no one has mentioned that ctools export ui promotes just about the worst practice when it comes to storing things in the database – serialization. Views, Panels, etc you name it are serialized. Which makes it just about impossible to debug or do anything meaningful with outside of the Drupal admin GUI.

    Additionally, Drupal is written from the stand point of acting on one entity at a time. For a small site this doesn’t really matter. However, try deleting 4000 entities such as; nodes and see just what happens. Perhaps the core is alright with this but when you have x amount of modules that might augment that process implementing a hook that is called for every one very bad things seem to happen.

  217. This is a lousy post. Does not display critical thinking or thoroughness in analysis. Drupal is used by Economist, White House and many other important web sites. It IS hard to learn. But it’s a solid framework that is mature and well-thought out. The challenge is, it’s not for people with weak stomachs, weak coding skills, and weak cognitive skills. This post and from the comments of those who agree with it, seems to imply all of the above of the author(s). Stick to WordPress!

  218. Anyone supporting drupal on this thread is clearly an employee of Aqcuia. The company that makes this abomination of a CMS. There whole business model is that they have created a CMS so impossible to use by the regular everyday user that they need to call for support. Pathetic CMS, better off with wordpress. The whole point of a CMS, the average person should be able to update their own site, not rake through reams of bs and bloated garbage. The sooner drupal is on the scrapheap the better.

  219. Stop being lazy bastards and learn to adapt and embrace. Otherwise come up with something better and we’ll use that, but till then, the only thing that sucks is YOU!!

  220. I have worked on both wordpress and drupal sites.

    WordPress may look good with just a base install and pretty straightforward, but many plugins and themes easily break a wordpress install. Moving or making a copy of an existing wp site (like moving a site from dev to production), may turn a hard debug task of searching db and code to change settings and paths everywhere. I specially hate how wordpress handle menu links, as they usually are stored in db with full domain path (so site domain change may involve fixing link by link).

    I believe wordpress is more art designer and final user friendly, but nothing more than a blog system that many programmers adapt to a general CMS by hacking things around.

    I have also worked on Joomla, but not extensively. The experience I had with this system tells me that it sucks. How can a joomla extension is allowed to modify a core db table structure as it wishes? With just a few extensions, core has been changed too much that a new extension may find db structure completely different from what it is expected, breaking the site. Update core… and now all your existing extensions are broken. What a mess.

    Drupal has many problems as well, but I’ve seen it growing at big steps. There are many contrib modules and you have to be careful on which one to choose. Yes, you may find badly written and orphan modules, but most likely you will find a good one for the same task you want it for. The claims about drupal not using php objects, classes, inheritance are now false, as the core of content types in drupal – named entities – are now built using objects, classes, and inheritance.

    In general, I believe drupal to be very powerful and solid CMS, but hard to learn. 1 month full time on drupal may not be enough to actually call yourself drupal programmer, but there is enough good contrib material for a starter to build a fairly good site while seasoned ones have solid tools to build complex and highly customized ones, and things are getting better and better.

  221. quite a few of these roadblocks can be removed by the careful development of a base theme with which you are most familiar (WordPress developers ‘worth their salt’ do this as well), in which liberal application of your own hook_preprocess and hook_process functions add elements to theme_hook_suggestions ( http://drupal.org/node/1089656 ) — this goes a long way to making more of an MVC framework and .tpl file names that are more human-friendly… no CMS does what You want out of the box: you didn’t write it!

  222. addendum… and this is precisely why i prefer Drupal over WordPress – everything can be overridden. you can use what’s given or get it down to bare metal and build it back up again. every .tpl file can be copied from core system/ or modules/ files and modified in your theme. every object can be queried directly. and you can ‘piggyback’ just about any event with your own callback function. to simply say ‘drupal sucks’ does a decade of development and contributions by Many (again, it wasn’t written for You, it was written for Many, with diverse needs) a huge disservice.

  223. @Kris, You are right. Drupal is better than other CMS. It not only provide the non-technical user to manage the content of the site but also provide the functionality to developer to manage and override the thing easily.

    If we want to override the login form, then we do not need to modify the user module. We can create our own module to override the login form.

    Thanks

  224. Thank you for this article. I was considering Drupal for a client site but will stick with Umbraco. I have 12 client sites that are built in Umbraco. It’s perfect for developers because you have full control over design and functionality of the site. Configuring the content layer is easy to do and is very flexible. Umbraco has been easy to install and upgrades has not been an issue. .Net is fast and secure. The best indicator is that the editors for these client sites also like Umbraco and find it easy to learn and intuitive.

    After reading this post and comments I think it would not be in the best interest of my client to use Drupal. It sounds like a very painful and expensive way to go. So, ok, that’s cool the the Whitehouse.gov site is running on Drupal. How many developers did it take? How long did it take? What did it cost? Hmmmm….
    http://www.slate.com/articles/news_and_politics/politics/2009/10/message_error.html

    • Have you read the comments on this (missing grammar, written by a Drupal/web-development ignorant) article you shared? This is a joke article, don’t believe everything that you read… its the Internet you know, not such a good way to make your decision by reading inconsistent stuff around, anyway.

      check out my last comment on this page for some Drupal insight.

      thanks

  225. How about the fact that for every custom field you create, Drupal creates 2 whole tables and does joins on all of them whenever calling user_load or node_load? I realize that for it to be custom, something like this is necessary, but COME ON, really?!

  226. Why Hate Drupal? (people envy what they cannot achieve i guess)

    Learn how Drupal works first and then blog about it,
    Everything can be transferred to code in Drupal if you do it the right way,
    Don’t provide false information to poor people trying to learn.
    Have you developed anything (a module) with Drupal and tried to understand why millions of developers use it for happy development?
    Do you know what is a drupal hook or a theme function, how you use em and how you can make your own?
    Do you know about drush, make files, profiles and what they can do for you?

    i guess not.

    Drupal is a lot more than a CMS, it is a PHP framework used by more and more large organizations around the world, allowing them to make a 100% custom extendable site with all the power of the Drupal CMS behind it.
    Yes, Drupal has a mid-long learning curve, this is the only point in your text that i agree, but nothing in this life is for free …learning is better than copying.

    Conclusion : use WordPress or …something to built your poor, non consistent, non future proof, non secure, no feature-ready site and built it in minutes!! its free! (yes i’ve developed a lot of WordPress sites…)

    + you will be the only one who can find where you did that last code change…
    Drupal ROCKS, learn before you hate.

  227. I dont agree with you on this, as I believe Drupal is the best content management software available, moreover I had been using it from past a decade.

    Moreover, Drupal is not declining as Magento did. More and more people are using it and migrating from other cms to Drupal.

  228. Very true, just as you said: a nightmare to set up, and when an easy (with other CMSs) task as making a menu and making categories show dynamically generated with links to the articles bases, becomes a salad of settings and procedures to end up not showing anything, you know shit has hit the fan.

    Joomla may be insecure and overused, there might not be a great offer of free templates, but is nothing like Drupal, you can have the basic functionality of the site up and running in about eight hours of work, whereas Drupal, I’ve been trying to make it work for one week with miserable results…

    Just deleted the site I was making for the last week and will never touch Drupal again…

  229. Hi all :)

    Well it is clear there is a great debate raging two firm sides and a bunch of undecided voters. As a software engineer who is learning Drupal for fun i can say that both side have a lot of valid and not so valid arguments.

    Drupal fans might hate this comment but not having a go at them.
    As a software engineer I don’t really see the use for it.(not saying it is bad or good).

    History shows that blanket solutions are often inefficient( but not necessarily shit or as evil as some people make Drupal out to be), take the AI winter for example. I believe that for small personal things drupal will be ok.

    Having said that i think that too many graphic designers and forum heads rely on these solutions and argue things they don’t understand. The internet is getting flooded with poor code but more importantly no concept of real design, code reusability, code management and OO.

    Just because it is done via scripts(php etc) doesn’t mean it is not software development. Maybe people should understand basic principles before choosing a solution that may or may not be suitable for their project.

    Just as a note,i am anti open source trademarking in SOME aspects. That is selling a brand, which is fine if the developers do not have to use a ton of 3rd party or contributed modules. In the spirit of open source should i put the logo of the dudes and dudettes who hacked together all the different modules i used?)
    I think it would be fair. but i am sure clients of commercial developers who use Drupal as their backbone would not be happy to have 5 different logos on their site for OPEN SOURCE SOFTWARE, not much of a commercial edge when your competitor can know the exact system you are running.

    There is a reason software engineers, with experience in knowledge management, taxonomy, business information systems, database management and traditional web design(css, html, php, Ajax, mySQL, etc), charge top dollar. Reliability, expandability, education, and NO EXCUSES for poor performance.

    In conclusion this site and debate is a bit of a joke to a legit software engineer. I believe that a custom CMS coupled with business information system and database design (Which for a software engineer 2 days is easy, make that an 8 hour shift if you have a properly organised code library and understand the concept of reusability and oo design) NOTE:AFTER THE PLANNING STAGE OF THE PLC . The fastest part of any software project is writing the code. 90% of the project is planning, testing and maintenance.

    below is just a joke dont hate….no wait please hate:)
    nerds love chicks, chicks are the majority of drupal community. So you know how your girl rocks up in a terrible outfit and you’re all like “wow honey you look great”… Welcome to drupal :)

    Just playing don’t hate the player hate the game.:):)

  230. Hey would you mind letting me know which web host you’re working with?
    I’ve loaded your blog in 3 different internet browsers and I must say this blog
    loads a lot faster then most. Can you recommend a good internet hosting
    provider at a reasonable price? Thank you, I appreciate it!

Leave a Reply

Your email address will not be published. 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>