Some thoughts on the drupal small core discussion

Having spent years funding, designing, and griping about some of the difficulties in our adoption of drupal for complex projects, its interesting to see this discussion years after hearing Boris talk about "install profiles" .

I'm not particularly comfortable commenting about core. I, and my team, never really found core to be what made drupal interesting, nor the source of extraordinary value. Certainly improvements to core were welcome to make things easier, but for us the real value of drupal always lay in contrib.


click here to see Kent Bye's very cool full set of images representing drupal modules from Nov of 2007.

I always viewed drupal as a bit of a freakish beast, which I both like and dislike. Something not quite an MVC, not quite CMS, not quite a blogging platform, not quite social software or groupware, not quite an app server, not quite oo etc.

This "not quiteness" made it fascinating and unique. It made it so that lispers
and phd's in comp sci, would begrudgingly code in php. As a handwavey architect, drupal represented a socially and collaboratively produced "app store" in contrib for which core was a way to glue things together and provide a storefront. Managing the complexity of what was glued together was always the trick to elegant design, and drupal doesn't really make your life easy when you tackle this problem at that level of integration.

The "not quiteness" of drupal, despite its many difficulties, and largely because of the extraordinary value of contrib, meant that we could push rapidly and with the help of an extraordinary community,


web development, starting at a level of abstraction a bit higher than your classic MVC (although much has changed in this regard). It also provided a novel model of what an application server might look like if it were open and extensible fed by the near endless possibilities of a socially produced open market of modules.

It always felt rather strange to hear of drupal as a CMS, and I never understood how this sentiment manifest itself in comparisons to Joomla or whatnot.  It was also strange in that same way to understand what drupal "out of the box" was really supposed to do. (apache out of the box was fine with me years ago despite its UX UI, and to date apache is the project model I most closely desire associate with drupal)

To me any web presence that is more than just content, requires new ways of thinking about the web and web architectures.  It requires a flexibility to build  adaptive "applications".  As such I, years ago, viewed drupal as an attempt at a kind of "web os" (remember this was the term or internet operating system that was used before Web 2.0 became fashionable).

If this was to be the case, then the focus needed be on how to integrate and manage applications, how to update them, and how to enable the messaging across them, (as well as networks) to be as simple as they could be and no simpler. (one of our original reasons for selecting drupal  5 years ago was rss around everything - a huge step forward for basic mashups)

Of course this is the hard work, Google Wave (both the server and client) and raindrop (with its hints at chandler) and some of the work Ralph Meijer is doing at mediamatic on top of XMPP and twisted, amongst others, are moving toward, aided by possibilities for the web that projects like DISO have tried to crystalize.

In any case, what then is this idea of small core, of a desire to be lightweight in the center and focus on things like Aegir (formerly hostmaster) and drush make, which look to contrib and the edge as the value proposition?  For us, and I suspect for others it was about drupal being something more than Wordpress or Struts, more than an out of the box way to do what the web allows today or how an MVC framed your development choices. It was about a great toolkit with great tools to make things that can address what the web will do tomorrow (or ideally, when we're done building a project, product or a distro on top of drupal)  in a dev model filled with choices enabled by all those folks doing great things in contrib.

From my perspective, the questions about small core are about what the identity of drupal will be moving forward.  Whether or not its the right architectural toolkit to be this different and strange beast in the middle of delivering inventive next generation concepts (especially as most web traffic moves increasingly away from being traditional website stuff and toward decentralized data and mobile, context driven, device interactions). Or, whether it will become a choice (and perhaps even a very strong and viable one) as a more traditional type of product, for churning out a more traditional type of website.

Five years ago my team (Chrys the web guru) and I made a choice, (Boris laying out the concept for drupal as more than just a small component in a broad architecture, Walkah grimacing at requirements, Adrian excited about the future of hostmaster) that drupal was a vibrant and generative place for creating innovative products like open atrium, backed by a set of tools in the toolkit that treated the web as the place of operations, not a final destination for content and its management.

It is why we have heavily supported the idea of install profiles and made large investments in the backing infrastructure (you don't run a site/app/product with 200 plus modules without major config and update issues).

The claim has been made that drupal is "maturing", though toward what, and to do what, is less clear.  I know for a couple of devs on our team that  is not exactly positive news. That drupal was a hacker world willing to tear itself down and be an infant again, perpetually new, to be as new as the possibilities of the interwebs, was for a few of them what distinguished drupal and its leadership from other open source projects.  More than anything this was what made them happy to have to put up with php and the limitations of the framework and collaborate with others in the drupal community. In this way "small core" is the "infant", were youth and possibility happen, and where you haven't decided to become  and adult, an accountant, or a lawyer, or a content management system. Will drupal stay young I wonder? Will it be content to be the source of a thousand next gen projects? Or will it grow up and specialize and become a factory for websites we all saw a few years ago?

Perhaps the tension between "small core" and the future of the drupal core is moot.  But this discussion makes me think that at least the perception by some that drupal is moving toward bloat, and inhibiting, or making difficult the generative work of product builders (as opposed to site builders) exists.