Drupal has a number of systemic problems that, unfortunately, all inter-relate. It's impossible to fix one without fixing another, or to add major functionality without first refactoring a major system.
In particular:
- We have no unified context system, just a pile of disorganized functions and globals.
- We have no unified plugins system, and any such system needs to be context-sensitive.
- Our page rendering system sucks, and only supports HTML page output with context-free blocks.
- We have no mechanism for web-services, partial rendering (ESI) or other modern things that a content system should do.
At the DrupalCon San Francisco Dev Summit, a team of developers started planning on what became known as the Butler Project, an effort to solve all of these issues in core in an organized, systematic way. It proposed:
- A unified, extensible context system.
- A unified plugin system in core.
- Refactoring the response handling system to be a hybrid of Panels and Services, leveraging the context and plugin systems above, to vastly improve the power and flexibility of our front-end.
To date there has been a great deal of discussion, but the project has been mostly quiet while everyone drove toward getting Drupal 7 out the door. With our eyes turning back toward Drupal 8 it's time to revisit the Butler plan and get the wheels turning for this monumental effort.