

Is Drupal truly an Open Source Industry Leader? (and other questions) - winternett

I have worked with Drupal for a few years now and faced lots of opposition once my clients learn about what's behind it. I have heard many descriptions about it [As an MVC, CMS, or PHP platform], along with many developers that ask specifics about its magical database layer. I have also hear that Drupal is running on many sites around the net, (including mine) yet most people never admit whether they are running it or not (Except for the White House). My goal here is to ask the HN community for their impressions on Drupal [Version 6.X specifically]:<p>How much exposure do you have to Drupal development?<p>Is Drupal development moving forward in a positive direction?<p>Have there been any major incidents of Drupal being compromised or failing that you know of?<p>How secure and robust is MySQL as a database, and (if possible) have you seen Drupal working well with any other Database Products?<p>++++
Can Drupal truly be considered to be a development Framework or an MVC?<p>Source Links (for the question above): 
http://archivemati.ca/wp-content/images/Drupal_as_MVC_Framework.png<p>http://archivemati.ca/2006/01/21/drupal-as-a-mvc-framework/
++++<p>And is there a better solution to Drupal? (for a CMS, Framework, Dev Environment) etc... (Open source or otherwise, and please add "why").<p>P.S. No, I don't work for Acquia or any of their affiliates... Thanks in advance!
======
lee
My experience: I've built about 3 sites using Drupal 5, and played around
lightly with Drupal 6.

>> "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.

------
p_alexander
I worked full-time as a Drupal developer for two years and still dabble with
it, though I'm now using Rails as my main web ui development technology.
Though I'm not as connected to the community now, I've always been impressed
with the level of participation that the community has, the outstanding volume
of the work being done, and the commitment (for the most part) to the "Drupal
Way".

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>).

------
jcfiala
Hmm... a bit of a survey?

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.

------
winternett
Thanks for the feedback!

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!

