Okay, okay. I get it. Drupal was created prior to object orientation in PHP. Sure, that’s fine. Whatever.
And yes, everybody criticizes Drupal for not using OO. Fine, I’m not saying anything new. However, I read through Drupal Programming From an Object Oriented Perspective and I’m still not sold.
Warning: All of you OO acolytes are getting no love from me either. I’m a functional programmer by philosophy, so I think you are all wrong. However, I will say that there are some nifty things that OO gives you, and sometimes its the right solution to the problem you’re facing.
In a previous post, I commented that I didn’t fully understand why Drupal’s documentation, especially from the “community” of Drupal devs, is so piss poor. Well, now I have an answer. The average Drupal dev is about as technically sophisticated as a Baby Boomer who has just recently heard of a Walkman. What I’m saying is, technical skill – in development, programming, shit- even computer science- is seriously lacking in this group of people.
It makes for an interesting conundrum. A kludgey API promotes kludgey solutions. Allowing people to implement round peg in square hole problems makes for a complete mess. Sure, it may act like you want it to act, or do what you want- but its not the right solution. It would be different if the API was pushing an envelop, or breaking down barriers, or even making strides in the way we program and think about application development. But it really just doesn’t do any of those things.
The fact of the matter is, a user can seriously screw up the way the back end of the system performs. And in my book that should Never, ever, ever happen. Users, front end devs, designers- they all are great professional type folks, but they have no business effecting a data schema or building queries (yes, I’m looking at you CCK and Views builder…). And some of the devs I’ve encountered haven’t the slightest clue what they are actually doing to the system when they engage in adding any of these functional pieces to a site.
Drupal is the Karaoke of Web Development frameworks. It appeals to the Lowest Common Denominator- people who want to sing the song but can’t perform at the top level. And while that works for a majority of folks (let’s face it, the Lowest Common Denominator is pretty big, for the most part), ask a Karaoke singer to perform Nessum Dorma and you’re not going to get what you bargained for. I say keep Drupal in the medium it belongs, because stretching it too far may just create a big mess.