I have been developing for Drupal for 5 years, with a portfolio of many large scale projects. I am also the author of some popular Drupal modules.
With all that said, in my experience, Drupal offers zero TCO or ETA advantage over Django or Symfony on any medium to large project. A lot of the great things you may hear about Drupal are coming from either (a) Non-developers or (b) People who have staked their careers on Drupal.
A few reasons why Drupal cannot be taken seriously include...
Would you be willing to elaborate a little on your concerns, please?
Some colleagues and I are about to start a major overhaul of a moderately large site (a few dozen pages, a few thousand users, a few hundred visitors per day). It seems like the first choice is basically between "standard framework with some plug-in custom features" (CMSes like Drupal) and "custom architecture with some standard plug-in features" (using things like Django and some common libraries).
I am a LAMP developer who was kind of thrown into doing Drupal development. Maybe I can offer some insight.
If you don't have *Drupal* developers, forget it. Drupal's famous learning curve will prevent your guys from working for a while (its been frustrating for me). Documentation isn't great. There are a few books, but...it's *very* complex.
Drupal is more than a mere MVC. It does some cool things, like Inversion of Control (via its hooks) and it does some things I feel a pretty lamebrained (it's so modular you lose performance, sort of like what happens when you over-normalize database tables. Or the way it handles error messaging, forms, and stuff that could be a LOT simpler) Personally, I think in software design simplicity should almost always win out over complexity. Drupal isn't simple. Many will say that's a result of it's flexibility. It is flexible, but that's a cop out. Plus, in spite of it's flexibility...you'll still hit limitations of some kind. Guaranteed. Why? Cause the Drupal developers aren't a bunch of omniscient galactic entities. Yes, they cannot possibly foresee every use case. Drupal is often painted as the panacea for all of your website needs. Shocking as it may seem, it's not quite that.
If you have a blog or some kind of news site that will allow you or others to publish stories and comment on the stories, go for it. If you need something else, you'll be busy cajoling Drupal into cooperating. If you have a LOT of data and you requires users to manage data in bulk fashion (or some other data-heavy operation), forget it.
If you don't fit neatly into that box, here's how you find out if Drupal is for you: install it. Find modules that do roughly what you want. Make them do what you want without doing any coding, and be prepared to make concessions on functionality. If you have the features you need, load your data. If this doesn't kill Drupal (or the modules, to be precise) then bang on it for a while. Any features you cannot make work via the admin panels you should probably forget about unless you want to 1) write your own modules, or 2) make code changes which will probably render your site unable to be easily patched. After all that, replicate the site you set up on another server. If after all of that, it still works, then it might be a good solution. That sounds like a lot, but one sharp person can probably get a good feel for it in a month or two.
If you like all that, then make a decent theme for yourself. All of the existing ones I have seen (and I have looked at the most touted ones) have had serious usability and accessibility issues, as well as a very generic and unimaginative looking design.
Have fun. After I leave this job, let's just say I won't be putting Drupal on my resume. If one day I decide to set up a blog, though, I'd give Drupal a go. But I hope to never have to deal with it again at work. It's way too amateur in too many places, it's convoluted, it's frustrating, and for all it buys you out of the box, there are a lot of limitations to deal with. The more you customize, the denser of a web you weave and it can get really really bloated and complex really fast.
Oh, and totally with you on the user page here on/.
Thanks for sharing your experience and insights. It sounds like both your background before Drupal and your general views of development are pretty similar to most of our guys.
We've reached the first test you described so far: we've got a test install, and established that much of what we need can be done with the core plus a few modules built around CCK and Views for the custom data. Some of it is indeed not as simple as with just writing a bit of database code, to be sure, but so far it's been close enoug
I think Drupal can be taken seriously, but I'm just a casual user. I'm learning how it works in my spare time by setting up a web site and seeing what works and what doesn't. One resource I've found that has made it easier to separate the wheat from the chaff (as far as modules go) is the book Using Drupal [usingdrupal.com], reviewed here [slashdot.org]
Maybe Drupal is an amateur CMS and all I'll get out of it is a beautiful blog, wiki or image gallery, but it seems to have a lot of potential. There are modules for e-commerce, file handlin
"Life is a garment we continuously alter, but which never seems to fit."
-- David McCord
Drupal cannot currently be taken seriously (Score:5, Informative)
I have been developing for Drupal for 5 years, with a portfolio of many large scale projects. I am also the author of some popular Drupal modules.
With all that said, in my experience, Drupal offers zero TCO or ETA advantage over Django or Symfony on any medium to large project. A lot of the great things you may hear about Drupal are coming from either (a) Non-developers or (b) People who have staked their careers on Drupal.
A few reasons why Drupal cannot be taken seriously include...
1) Lack of unified model
Re: (Score:4, Insightful)
Would you be willing to elaborate a little on your concerns, please?
Some colleagues and I are about to start a major overhaul of a moderately large site (a few dozen pages, a few thousand users, a few hundred visitors per day). It seems like the first choice is basically between "standard framework with some plug-in custom features" (CMSes like Drupal) and "custom architecture with some standard plug-in features" (using things like Django and some common libraries).
So far, we've been forming the opposite vi
Re:Drupal cannot currently be taken seriously (Score:2)
I am a LAMP developer who was kind of thrown into doing Drupal development. Maybe I can offer some insight.
If you don't have *Drupal* developers, forget it. Drupal's famous learning curve will prevent your guys from working for a while (its been frustrating for me). Documentation isn't great. There are a few books, but...it's *very* complex.
Drupal is more than a mere MVC. It does some cool things, like Inversion of Control (via its hooks) and it does some things I feel a pretty lamebrained (it's so modular you lose performance, sort of like what happens when you over-normalize database tables. Or the way it handles error messaging, forms, and stuff that could be a LOT simpler) Personally, I think in software design simplicity should almost always win out over complexity. Drupal isn't simple. Many will say that's a result of it's flexibility. It is flexible, but that's a cop out. Plus, in spite of it's flexibility...you'll still hit limitations of some kind. Guaranteed. Why? Cause the Drupal developers aren't a bunch of omniscient galactic entities. Yes, they cannot possibly foresee every use case. Drupal is often painted as the panacea for all of your website needs. Shocking as it may seem, it's not quite that.
If you have a blog or some kind of news site that will allow you or others to publish stories and comment on the stories, go for it. If you need something else, you'll be busy cajoling Drupal into cooperating. If you have a LOT of data and you requires users to manage data in bulk fashion (or some other data-heavy operation), forget it.
If you don't fit neatly into that box, here's how you find out if Drupal is for you: install it. Find modules that do roughly what you want. Make them do what you want without doing any coding, and be prepared to make concessions on functionality. If you have the features you need, load your data. If this doesn't kill Drupal (or the modules, to be precise) then bang on it for a while. Any features you cannot make work via the admin panels you should probably forget about unless you want to 1) write your own modules, or 2) make code changes which will probably render your site unable to be easily patched. After all that, replicate the site you set up on another server. If after all of that, it still works, then it might be a good solution. That sounds like a lot, but one sharp person can probably get a good feel for it in a month or two.
If you like all that, then make a decent theme for yourself. All of the existing ones I have seen (and I have looked at the most touted ones) have had serious usability and accessibility issues, as well as a very generic and unimaginative looking design.
Have fun. After I leave this job, let's just say I won't be putting Drupal on my resume. If one day I decide to set up a blog, though, I'd give Drupal a go. But I hope to never have to deal with it again at work. It's way too amateur in too many places, it's convoluted, it's frustrating, and for all it buys you out of the box, there are a lot of limitations to deal with. The more you customize, the denser of a web you weave and it can get really really bloated and complex really fast.
Oh, and totally with you on the user page here on /.
Re: (Score:2)
Thanks for sharing your experience and insights. It sounds like both your background before Drupal and your general views of development are pretty similar to most of our guys.
We've reached the first test you described so far: we've got a test install, and established that much of what we need can be done with the core plus a few modules built around CCK and Views for the custom data. Some of it is indeed not as simple as with just writing a bit of database code, to be sure, but so far it's been close enoug
Re: (Score:1)
I think Drupal can be taken seriously, but I'm just a casual user. I'm learning how it works in my spare time by setting up a web site and seeing what works and what doesn't. One resource I've found that has made it easier to separate the wheat from the chaff (as far as modules go) is the book Using Drupal [usingdrupal.com], reviewed here [slashdot.org]
Maybe Drupal is an amateur CMS and all I'll get out of it is a beautiful blog, wiki or image gallery, but it seems to have a lot of potential. There are modules for e-commerce, file handlin