DrupalCon Denver 2012: PLATO, ARISTOTLE, AND DRUPAL

Plato invented Object Oriented Programming. And Aristotle invented Functional Programming. And the centuries-long debate carries over into Drupal today. Plato was an architect. The world, to Plato, was best expressed as an elegant system of well-ordered ideal objects. Motionless and unchanging, these "forms" composed the world of perfection. But when it came to the real world, "runtime" was messy, full of complicated, ugly, and error prone "copies" of the forms. In contrast, Aristotle saw the world as a dynamic place, a constantly evolving runtime. What makes the world beautiful, functional, and exciting is the dynamic nature of things. While Drupal has never been (truly) functional, much of our approach has been more inline with functional design than with OO or even standard procedural design. Like Aristotle and LISP programmers, Drupal is about what is happening in the moment. Hooks, callbacks, builders. Drupal takes full advantage of PHP's runtime offerings. Drupal is caught between our Aristotelian roots and Plato's enticing world of OO perfection. And this is not necessarily a bad thing. As we begin using Drupal 7 in earnest, and as Drupal 8 development hits full stride, we must ask -- and answer -- what kind of philosopher Drupal is.

Questions answered by this session:
How can Drupal's inherent and vibrant dynamic model adapt to Plato's "architect-first" approach? Or should it?
In what ways is Drupal functional? And to what extent should it be?
What are the real debates regarding Drupal's architecture?
Is OOP good for Drupal?

Drupal is a registered trademark of Dries Buytaert.