I love Drupal. I've been using it for almost 4 years now, and use it every day. I've coded countless modules over those years, dozens, maybe close to a hundred; I don't know.
What I love about Drupal
Oh, gosh, where to start ?
It's very, very flexible and powerful.
It's modular structure makes for a clean and easily maintainable code-base.
The hook infrastructure makes it infinitely extensible.
The theme layer is a solid, clean approach to separating presentation from logic.
The fact that it's half framework, half product makes it ideal to quickly go live.
There are many incredible modules out there.
...and I could go on and on.
Sure, it ain't perfect
Don't get me wrong. I love Drupal, but I ain't blind (am I ?).
It does not always follow best practices and standards. The drupal API has some parts that seriously need upgrading, and some drupalisms are just... *shiver*
But that's for another post... because, right now...
Drupal is too great. How's that, you may ask ?
As a passionate developer, I love trying out new tools and technologies. So do you, right ?
But as a professional, I must always answer the question: “what tool will we use to make sure this project will be easy to maintain, update and fast to develop ?” And the question is always: Drupal.
Sometimes a client comes along and has this fantastic idea. And I go, like: Cool, this would be a great opportunity to try out framework XYZ or code this in language ABC.
But then we start calculating delays, costs, etc.
And this annoying pattern emerges every single time (I'm talking medium to large scale applications here): it'll be faster and easier with Drupal.
It's true. It's absolutely true.
How often have we started out planning a project using other tools or frameworks we know, only to realise at some point: “Wait - Drupal has a bunch of modules that do this and that, so we could spend more time on this part. We already coded a module that does that over there, and...”.
And we stick with Drupal. Every time, again and again. Don't get me wrong: I'm (kinda) happy with this. Heck, I'm usually the most fierce Drupal evangelist.
But just once, I'd be happy to see a situation where we can honestly say: “Hey, this would be much easier if we use [other framework name here].”
Curse you, Drupal ;-) !
Found a typo ? Correct it, submit a pull-request and get credited here!