Drupal 8 is in the early stages of planning, and I have a proposal to add -- a proposal which, if implemented, would make Drupal the first of a new breed of faster, leaner, meaner and simpler web applications. Now is the time to grab the bull by the horns, and steer fate.
In my tireless fight against unnecessary complexity, I have argued in the past that OO and Drupal do not mesh well. But upon further reflection, I have come to see the bigger picture. Drupal's number one hinderance is it's reliance upon an antiquated abstraction called the function. And only when we completely eliminate userland functions will Drupal be able to entirely fulfill its true potential.
Let me give an example of a function anti-pattern that appears throughout the Drupal codebase. In the following code sample, I show the fundamental way that previous versions of Drupal have gone astray.