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 layer and no ORM. The recent efforts to implement schema definitions are still, unfortunately terrible. All content types should be able to be defined as a model, including CCK fields.
2) Over-reliance on Views and CCK modules. These are just fancy interfaces for a model layer. They are great for non-developers, but in no way compare to a proper model implementation. At the end of the day, you will save zero time by implementing a Drupal View over implementing a simple ORM call. Views and CCK slows down development.
3) Lack of any solid deployment procedures. Ever tried merging changes between different Drupal configurations?
4) Using native PHP as the templating language. This causes more headaches than one you can possibly believe. A proper templating language should be used instead which will prevent lazy or incompetant developers from adding business logic into templates.
5) An army of incompetant, unexperienced developers contributing sub-par modules.
6) Lack of any kind of namespacing whatsoever. "De-Facto Namespacing" is a pile of shit.
I won't comment on the ORM, Views and CCK stuff beyond agreeing that it could be a lot better (though what we have now is much better than where we were). I'm not sure what would constitute solid deployment procedures for you, so without an example I can't comment.
4) Using native PHP as the templating language. This causes more headaches than one you can possibly believe. A proper templating language should be used instead which will prevent lazy or incompetant developers from adding business logic into templates.
I can't say that I agree with you on that--most of the template engines I've seen end up replicating a high percentage of core PHP--but in any case, it's a problem that has been fixed already by theme engines. Don't like phptemplate? Use Smarty: http://drupal.org/project/smarty [drupal.org] or develop your own theme engine.
5) An army of incompetant, unexperienced developers contributing sub-par modules.
I would say that's not so much the problem as that there isn't a good way to separate the wheat from the chaff currently, though it sounds like that's in the works for the next iteration of drupal.org.
6) Lack of any kind of namespacing whatsoever. "De-Facto Namespacing" is a pile of shit.
Heh. Agreed, though I think that this is somewhat a function of the lack of namespacing in PHP influencing the design.
I still don't understand why so few PHP developers still don't know about PHPTAL, or the Midgard CMS(which is propbably one of the most sexiest PHP CMS's for developers).
The debate between "template languages end up implementing most of PHP anyhow, so just use PHP for your template language" and "you should maintain model and view separation, and using PHP for your template language makes it too tempting and easy to break that separation" will never end. One thing to keep in mind, for both sides, is that PHP is nothing but a template engine that has outgrown its britches. Using it to develop a CMS is bound to end up breaking model/view separation by having templates with
I have been playing around with drupal among other crappy content management systems such as Joomla 4 years ago I gave up and that is when we decided to build our own content management system from scratch, what we wanted to achieve was an extremely easy way to integrate templates without having to be a rocket scientist, we decided to use Smarty for that, we wanted to build our own plugins that were guaranteed to work with each other without introducing security issues, now 4 years down the line we have a c
Karim, your site looks great at first but it has a huge navigation bar with mostly non-functional links -- a show-stopper. The site does a great job of promoting objectCMS up to the point where it 1) fails to describe its licensing in any way and 2) doesn't offer a way to download it.
That's completely amateur, with slick gradients and rounded corners attached, especially for a SEO company.
Too bad, I was intrigued, hoping to find a CMS for a large media archive.
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 view to you: a lot of the site we'll be producing is static content, but a few parts will require moderately structured data (the equivalent of a few tables and some simple SQL queries), and for that balance Drupal seems like the best tool we've considered so far. We don't have much experience with these particular tools, but the guys building the system will be proper designers/developers, while the guys maintaining some of the content will be entirely non-technical. Is our situation just different to what you're describing, or are there really a bunch of problems waiting for us a little way down the line?
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 mod
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
I disagree about the importance of many of your points in the grand scheme of things (when considered against the benefits of a very capable core platform with literally thousands of plugins).
However, some of what you say is important, is widely acknowledged, and is being actively worked on. Deployment and change management for content and configurations in particular has been a weak point of drupal to this point, but there are now several major projects underway that attack this from different angles. I
"Deployment and change management for content and configurations in particular has been a weak point of drupal to this point"
I'd agree, and that in itself makes Drupal a real pain for any kind of real development shop (dev, test, prod servers which should be more or less in sync after a release.)
"You will need to wade into the community to get the most out of drupal, IMHO."
Another thing I dislike. I like community, don't get me wrong. I have been working with a few developers of some popular Drupal module
Drupal is not RoR or Django, so don't compare apples and oranges. First, a Drupal view is not equivalent to ORM. A Drupal view is on a higher level. It takes drupal content, lets you slice, dice and display it. Maybe you meant CCk. As to not using PHP as a templating language, you can always use the smarty engine if you want, but then you are just adding another layer of stuff that could break or cause security issues.
Now, Drupal is not perfect, but what it does it does well.
The problem is that Drupal alone does almost nothing unless you add on a large number of low quality, poorly documented modules which often are incompatible with each other.
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 layer and no ORM. The recent efforts to implement schema definitions are still, unfortunately terrible. All content types should be able to be defined as a model, including CCK fields.
2) Over-reliance on Views and CCK modules. These are just fancy interfaces for a model layer. They are great for non-developers, but in no way compare to a proper model implementation. At the end of the day, you will save zero time by implementing a Drupal View over implementing a simple ORM call. Views and CCK slows down development.
3) Lack of any solid deployment procedures. Ever tried merging changes between different Drupal configurations?
4) Using native PHP as the templating language. This causes more headaches than one you can possibly believe. A proper templating language should be used instead which will prevent lazy or incompetant developers from adding business logic into templates.
5) An army of incompetant, unexperienced developers contributing sub-par modules.
6) Lack of any kind of namespacing whatsoever. "De-Facto Namespacing" is a pile of shit.
Re:Drupal cannot currently be taken seriously (Score:4, Interesting)
I won't comment on the ORM, Views and CCK stuff beyond agreeing that it could be a lot better (though what we have now is much better than where we were). I'm not sure what would constitute solid deployment procedures for you, so without an example I can't comment.
4) Using native PHP as the templating language. This causes more headaches than one you can possibly believe. A proper templating language should be used instead which will prevent lazy or incompetant developers from adding business logic into templates.
I can't say that I agree with you on that--most of the template engines I've seen end up replicating a high percentage of core PHP--but in any case, it's a problem that has been fixed already by theme engines. Don't like phptemplate? Use Smarty: http://drupal.org/project/smarty [drupal.org] or develop your own theme engine.
5) An army of incompetant, unexperienced developers contributing sub-par modules.
I would say that's not so much the problem as that there isn't a good way to separate the wheat from the chaff currently, though it sounds like that's in the works for the next iteration of drupal.org.
6) Lack of any kind of namespacing whatsoever. "De-Facto Namespacing" is a pile of shit.
Heh. Agreed, though I think that this is somewhat a function of the lack of namespacing in PHP influencing the design.
Re: (Score:0)
I still don't understand why so few PHP developers still don't know about PHPTAL, or the Midgard CMS(which is propbably one of the most sexiest PHP CMS's for developers).
Re: (Score:2)
Re: (Score:1)
Re: (Score:2)
Karim, your site looks great at first but it has a huge navigation bar with mostly non-functional links -- a show-stopper. The site does a great job of promoting objectCMS up to the point where it 1) fails to describe its licensing in any way and 2) doesn't offer a way to download it.
That's completely amateur, with slick gradients and rounded corners attached, especially for a SEO company.
Too bad, I was intrigued, hoping to find a CMS for a large media archive.
Re:Drupal cannot currently be taken seriously (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 view to you: a lot of the site we'll be producing is static content, but a few parts will require moderately structured data (the equivalent of a few tables and some simple SQL queries), and for that balance Drupal seems like the best tool we've considered so far. We don't have much experience with these particular tools, but the guys building the system will be proper designers/developers, while the guys maintaining some of the content will be entirely non-technical. Is our situation just different to what you're describing, or are there really a bunch of problems waiting for us a little way down the line?
Re: (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 mod
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
Re: (Score:2, Interesting)
I disagree about the importance of many of your points in the grand scheme of things (when considered against the benefits of a very capable core platform with literally thousands of plugins).
However, some of what you say is important, is widely acknowledged, and is being actively worked on. Deployment and change management for content and configurations in particular has been a weak point of drupal to this point, but there are now several major projects underway that attack this from different angles. I
Re: (Score:2)
"Deployment and change management for content and configurations in particular has been a weak point of drupal to this point"
I'd agree, and that in itself makes Drupal a real pain for any kind of real development shop (dev, test, prod servers which should be more or less in sync after a release.)
"You will need to wade into the community to get the most out of drupal, IMHO."
Another thing I dislike. I like community, don't get me wrong. I have been working with a few developers of some popular Drupal module
This comment is bunk (Score:1)
Drupal is not RoR or Django, so don't compare apples and oranges. First, a Drupal view is not equivalent to ORM. A Drupal view is on a higher level. It takes drupal content, lets you slice, dice and display it. Maybe you meant CCk. As to not using PHP as a templating language, you can always use the smarty engine if you want, but then you are just adding another layer of stuff that could break or cause security issues.
Now, Drupal is not perfect, but what it does it does well.
Re: (Score:0)
The problem is that Drupal alone does almost nothing unless you add on a large number of low quality, poorly documented modules which often are incompatible with each other.