Hacker News new | ask | show | jobs
by ghiotion 6169 days ago
It seems like Drupal always gets dumped on for having a crappy codebase (see xinsight's comments as an example). Admittedly, I've not spent a lot of time in the Drupal codebase, but I've used Drupal extensively on a number of projects. I've looked at a lot of other CMS's (e.g. Joomla, Plone, IBM's WCM). Drupal kicks the crap out of the other alternatives. Plone is so strange, it doesn't even seem like Python.

The point that I think a lot of folks miss about Drupal (and CMS's in general) is that they are REALLY hard to write. If you're a RoR or Django developer, sit down some weekend and try to reproduce the Drupal core functionality. Get back to me in 6 months when you're ready to test.

I'm a Django developer by trade, but when I come across a client that needs a CMS, I'm not going to reinvent the wheel. Drupal is fantastic and very sophisticated. You can do amazing things with CCK and views.

2 comments

I agree completely. I have worked a fair amount with Drupal, and anyone who says the codebase is crappy is just plain narrowminded. The power and flexibility of the codebase is incredible for the high level of abstraction it's working at.

Granted, almost any of the architecture choices can be questioned or even ridiculed, but that's inevitable when you are trying to be all things to all people. It's all too easy for someone random programmer to come in and pick on one thing and decide the code is crap, but yet the same programmer's ideal solution would only work for maybe 5% of Drupal's userbase.

Also, FWIW, I'm not a Drupal fanboy. I can't stand Drupal and will never work with it again. I think building a career on Drupal will severely limit your skillset, and I think time estimation and client relationship management is made much more difficult for a web developer due to the byzantine constraints it imposes. All that said, Drupal does what it does brilliantly and in much sharper form than any of the other PHP CMSs.

Your comment is great. Can you expand on your 3rd paragraph? Why will you never work with it again and what byzantine constraints did you find? I'm wondering if there's some aspect of Drupal that I'm missing and if I'm not doing myself (and my clients) a long term disservice when I recommend Drupal. Have you found other, non-PHP CMS's better?
It's actually quite simple, I'm not interested in working on low-budget sites that need a ton of functionality for a very low price tag. There's a huge market for these types of sites, and Drupal and other CMSes are often the only remotely feasible option for these clients.

The thing is that I am an end-to-end web developer with 15 years experience with the full stack from back end, DB technology, server side languages, Javascript, HTML, CSS, Usability, etc. I have a very precise idea of what I want, and how to build it. With something like Drupal, you're only using 2-15% of the architecture for any given project, but yet the rest of it imposes assumptions and constraints which end up being performance and conceptual overhead. You can get a lot of mileage out of it, but you're constantly thinking in terms of the Drupal framework. This manifests in terms of lots of little compromises. I much prefer to build the app up from a basic set of web building blocks such as is provided by frameworks like Rails or Django. This typically costs more, but enables a much more polished product in terms of design, performance, and extensibility.

Srsly? I built a CMS for a client that needed photo management, video management and 1-1 mapping of the pages on the site to admin pages that represent the editable fields plain to see in about 30 hours using Django, django-photologue and Grappelli.

Just what about Drupal is so good for CMS that isn't also trivial in RoR or Django?

That's a CMS, so long as you limit your definition of "content" to photos and video.

Also, I find it poor form to expose the Django admin interface to your users in place of developing your own templates and view logic. Seems like a "srsly" bad idea.

It's fine if you trust your users.

What kind of site did you build where django took too long compared to drupal? Have you come across the Pinax Project?