Is Drupal truly an Open Source Industry Leader? (and other questions)
How much exposure do you have to Drupal development?
Is Drupal development moving forward in a positive direction?
Have there been any major incidents of Drupal being compromised or failing that you know of?
How secure and robust is MySQL as a database, and (if possible) have you seen Drupal working well with any other Database Products?
++++ Can Drupal truly be considered to be a development Framework or an MVC?
Source Links (for the question above): http://archivemati.ca/wp-content/images/Drupal_as_MVC_Framework.png
http://archivemati.ca/2006/01/21/drupal-as-a-mvc-framework/ ++++
And is there a better solution to Drupal? (for a CMS, Framework, Dev Environment) etc... (Open source or otherwise, and please add "why").
P.S. No, I don't work for Acquia or any of their affiliates... Thanks in advance!
4 comments
[ 0.29 ms ] story [ 20.6 ms ] thread>> "is there a better solution to Drupal?"
Yes, definitely. I think a lot of the problems I had with Drupal 5 was due to the limitations of PHP. It felt like there was a lot of "magic" happening behind the scenes, and you had to cater to that magic to make things work.
You didn't have nicely defined classes like you do in other languages to handle the MVC components. So you'd always be passing around these cumbersome associative arrays that are nested 3 levels deep to make the framework behave as expected.
I think Drupal is a great choice if you're using PHP, since the community is so active. A better question would be: why are you using PHP?
I switched to Python and started using Pylons and Django for all my web projects, and I never looked back.
Python is a beautiful and productive language, and allows you to build stuff really quickly. It's very explicit and opinionated, and there's not too much magic happening.
I haven't heard of any major incidents of compromise, though it is easy to let sites get out of date which would leave some holes open.
As for MySQL, I think there are plenty of examples of it working at massive scale with good security (inside the Drupal community and out). From what I've seen developers seem pretty committed to working with other databases, though I'm not sure how far beyond MySQL and Postgres you'll get.
As for the "effective as an MVC question": no. Looking at that chart, half of the items mentioned in the Controller and Model you aren't supposed to edit regularly (parts of the Drupal Core), and especially not for site-specific functionality. Sure, most things can be altered with the addition of modules, but you're eventually going to run across something that can't be easily overridden from a module, or a place where there's no hook, or you just fundamentally disagree with how something works.
The modules themselves can be just as frustrating. Sometimes you'll encounter a situation where a module gets you 95% of the way there, but again you'll need to make some alterations and you have to understand exactly how the module works in order to do this. That means delving into someone else's code, the quality of which can vary considerably.
Finally, Drupal isn't REALLY object oriented. It's not as if content types are represented as a model with a corresponding controller, which is how I would expect MVC to work. A lot of individual pieces of code are OOP, but the entire system wasn't designed with this in mind.
That's not to say that Drupal doesn't have its uses. If you are fine with the default that's provided or feel like getting 95% of the way there in some cases is good enough, then by all means fire up a Drupal site. Unfortunately, you need to be familiar with the options out there in order to easily make the decision up front.
On the plus side, it's nice having a user system with permissions, administration, easy ways to add content, pretty good methods for handling audio, images, etc all up-front without having to do any coding. This is where Drupal shines, in my opinion. It's great for enabling technical people who can't/don't code to set up complicated systems. But that's a far cry from being an effective MVC.
If you do use Drupal, definitely use Drush (http://drupal.org/project/drush).
I've been working in Drupal for three years, starting with version 5.x. I think Drupal development is moving forward in a positive direction. I don't know of any major incidents of Drupal being compromised or failing. MySQL works fine with Drupal, and I've even used a mixture of MySQL with Mongodb.
I have heard a lot about Django, we are requesting the ability to implement Django as well in our Dev environment, though I'm not sure how quickly I'll be able to learn and adapt to Python development...
Cheers!