DrupalCon Review - The Small Core movement
As I understood it, small core refers to the idea that what forms the core of Drupal should be stripped down to essentials - to those pieces without which nothing would work such as database management, access control, theme bootstrapping, etc.
This would enable:
a. Modules that are currently in core and are now forced to follow the long development cycles of core (modules like Blog, Forums, Aggregator) to be moved out and follow their own development cycles.
b. Provide clearer focus about what is the heart of Drupal - what is Drupal as a framework all about. It would also enable people to specialise and teams to decentralise rather than having to pass a lot of things through just two committers.
End users would then experience Drupal through installation profiles. These are collections of modules that once stitched together provide a cohesive story. There are some great examples of such profiles already (Open Atrium, Acquia Drupal, etc).
The main argument against small core seems to be that it would reduce Drupal to something that is even less comprehensible than what it is today. People would somehow have to figure out that Drupal in and of its own "does" very little.
It is the installation profile on top of Drupal that will give you functionality out the box. This veers considerably from the way things like Wordpress work where you download the main thing (there is only one), you install it and off you go.
And here lies the presentation problem Drupal has. Is it a thing (blog, social network, forum, CMS) like many others or is it a framework that enables you to build things?
Dries says it is both. I agree. The problem is that it is hard to explain that to people who go for the quick and easy answers. On the other hand if Drupal is presented as just one "thing" then we reduce it to something less that what it actually is.
As I am not a great marketing mind I don't really have an answer to this presentation problem. However, it is a presentation problem - organisation wise I think Drupal's core should be small and robust and modules that can be removed from core development should be removed. It just makes development sense.
I think that we might have to accept that in the future people will be using Drupal and they will not know they are doing it. You will have this conversation:
- So what do you use for your intranet
- Oh, we use this cool thing call Open Atrium
- Wow, great a Drupal product
- A what product?
- You know, Drupal, what Open Atrium is built on.
- Oh, really? I didn't know that.
That may be ok. Lots of people don't know what framework or programming language their application is built on. Problem is how do you generate excitement for Drupal if you measure it in Drupal downloads or drupal.org page views if lots of people are experiencing Drupal through companies like Acquia, Development Seed, etc.
Still it is great that the community is so robust and Drupal is modular enough to be able to have such a discussion. We would be much worse off if everything in Drupal was so tightly integrated that you couldn't even discuss stripping things out!