I think there are a few competent programmers who wouldn't mind working on some Drupal-powered sites like Ubuntu, Nasa, Warner Brothers, the Onion, Playboy Germany, Fast Company, Grateful Dead, Harvard's Science and Engineering Dept, Electronic Frontier Foundation, Amnesty International, Popular Science, Universal Music etc etc http://socialcmsbuzz.com/45-drupal-sites-which-you-may-not-h...
Sure, these sites look nice -- a major achievement when Drupal has HTML sprinkled throughout the source -- but is there anything interesting from a coding, interface or interactivity perspective? These sites could be static HTML. (And probably are since you need a cache in from of Drupal for any amount of traffic).
The only Drupal site I've seen which actually did something interesting was a site from the last canadian election:
edited to add: note the spikes in joomla and wordpress, with subsequent dips. it seems kind of ballsy to say that drupal is definitely not going through or going to go through the same thing.
One thing to consider as well is most Drupal/Wordpress/Joomla installs don't actually require "coding", but rather downloading the correct modules and setting up permissions / htaccess correctly. Not really challenging enough to keep many compsci students engaged...
It all depends on the job type naturally - assuming you're working for a web-dev shop, most work will likely be new site launches v.s. new feature development. If you're working client side, then correct its likely module enhancement.
I think you'd be surprised how easily you can put Drupal on a resume without putting PHP.
I know a few web design firms where the "Drupal programmers" really are just the ones who just know enough about Drupal to get the things working the way the graphic designers want them. They just install the right modules and know how to configure things and where to change files to get things to display properly. They really don't know much about PHP at all.
Drupal is much more developer oriented than Wordpress and Joomla. The module system is robust and impressive (if not overwrought). An expert Drupal developer can do amazing amazing things, but I would never want to spend the time to develop such a narrow skillset.
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.
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.
Drupal is a great concept, but the actual implementation leaves a lot to be desired.
A few things stand out in my opinion:
- no good upgrade path across major versions (automated!)
- modules tend to disappear between versions, stop being maintained or get redone without any regard for backwards compatibility.
(this thread http://drupal.org/node/327225 was quite an eye opener for me)
- the database model - I don't know of a better way to say this - sucks. Using 5.x it makes a table per cck field, which makes drupal sites much heavier on the machine than they should be.
If they fix those three issues it will be a world of a difference.
We host about 3,000 drupal sites, and the potential to increase that 100 fold is there but the above issues are holding that back.
I'd love to upgrade from D5 to D6, but I can't because I had to install a dozen modules and make a few changes to the core code to fix the litany of UI problems in D5 so it could be used by consumers. These modules aren't all supported in D6. Short of dropping 3-5k to hire someone to come in and do it for you or devoting a solid month to mapping it out and carefully upgrading, I don't see how it's possible to ever upgrade a substantial (50+ modules) Drupal site.
That said, nothing else out there compares to Drupal + Views + CCK. I just wish it performed better.
24 comments
[ 3.0 ms ] story [ 68.1 ms ] threadOh, wait, I guess that explains the demand for Drupal coders.
The only Drupal site I've seen which actually did something interesting was a site from the last canadian election:
http://www.voteforenvironment.ca/
http://www.indeed.com/jobtrends?q=drupal,+joomla,+wordpress&...
edited to add: note the spikes in joomla and wordpress, with subsequent dips. it seems kind of ballsy to say that drupal is definitely not going through or going to go through the same thing.
http://www.indeed.com/jobtrends?q=drupal%2C+joomla%2C+wordpr...
If you say there are "plenty of drupal jobs" that is more of an absolute measure than, "huge increase in drupal jobs"
I know a few web design firms where the "Drupal programmers" really are just the ones who just know enough about Drupal to get the things working the way the graphic designers want them. They just install the right modules and know how to configure things and where to change files to get things to display properly. They really don't know much about PHP at all.
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.
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.
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.
Just what about Drupal is so good for CMS that isn't also trivial in RoR or Django?
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.
What kind of site did you build where django took too long compared to drupal? Have you come across the Pinax Project?
A few things stand out in my opinion:
- no good upgrade path across major versions (automated!)
- modules tend to disappear between versions, stop being maintained or get redone without any regard for backwards compatibility.
- the database model - I don't know of a better way to say this - sucks. Using 5.x it makes a table per cck field, which makes drupal sites much heavier on the machine than they should be.If they fix those three issues it will be a world of a difference.
We host about 3,000 drupal sites, and the potential to increase that 100 fold is there but the above issues are holding that back.
That said, nothing else out there compares to Drupal + Views + CCK. I just wish it performed better.
The funny thing is that I don't understand why they don't get it together more. A bit more direction and less of a 'let's code fest' would help a lot.
Bugs that I've fixed (sent in patches to the relevant maintainers) are still in the templates more than a year later.
It's really weird because they could go sky high.