David and Richard,
Those are interesting ideas. My thoughts on this, pro and con are similar. It sounds rather a lot like the model that Wordpress has: a small(er) core with many, many plugins. It has a lot of advantages.
Having a slimmer Moodle core set of tools would certainly be useful in many ways. There's any number of core plugins I would happily rip out if I could but every time I suggest this, I always get push back saying, "We want that in core." Well, if I don't want that in core, I am stuck with it and have to then deal with that. So, not only would it be useful to add in core tools later, but right now we can't even remove most of those: next update, it will give you a headache and try to reinstall them. Making core plugins truly pluggable like third party plugins would a definite improvement.
Another advantage might be it would promote a bit more the abstraction of certain tools from core (eg Quiz and Gradebook) to allow them to have more potential competitors
I know there's a lot of interdependence between certain features, but encouraging more tools to be pluggable is good.
On the other hand....
having managed Wordpress sites, I can say that admins will end up spending much of their time and most of their frustrations managing plugins with the slim core model.
To get a Wordpress site to do pretty much anything at all other than simple
blog posts & pages, you have to spend a lot of time hunting for plugins, paying for plugins, and managing plugins. All those plugins have to play well together: that is sometimes a difficult challenge. It takes a lot more work to do that than the current Moodle approach.
Right now, I think there's a couple challenges to getting this to work with Moodle:
- The only thing that makes this tolerable in the Wordpress world is the ease with which updates and upgrades can happen. We only have part of that in Moodle. Updating plugins is light years better than it used to be - thanks in large part to the work of David.
But we can't update Moodle itself this way and if we could, we would need a lot of logic to make sure versioning was good. Having all this info right on on admin panel like the one that WP has would be very useful: we don't really have a central place for this in Moodle due to the "our big core" versus other's plugins approach. Consolidating the Notifications page with the Plugins overview page would be needed too.
- There's a lot of incentive in the WP world for plugin devs to build alternate versions of plugins: partly because it is easy to pay for them. We would really need a payment system for plugin developers so that we can avoid the common problem of orphaned plugins. I think the only successful place in Moodle where this sort of works now is with themes. An official plugin Marketplace is needed.
- A recommendation system would be needed. I recall some time ago there was a project to get experienced Moodler users to write up reviews of plugins, but I don't recall it went very far. You would need something like that - and a way to prevent abuse of it (which is yet another frustration of the WP world: useless and fake and paid reviews for plugins are legion.)
- For new sites, you need some sort of addition to the install process which lets new site admins pick from a set of key tools. First time installs by new admins can be a problem since they may not really know what plugins they should add, pedagogically. Having a couple of predefined packages of common plugins would be very useful, or even an install wizard that would lead them through choosing common plugins.
I think this could give you both a slim core, but also have the ability to do an initial install of plugin sets at install type, disabled to start with, disabled to start with as Richard suggests.
- A related issue is that we all know how this works in the real world: having made an initial choice, it means other tools that teachers may want to explore and try out will not be in the site at all. Teachers might just use what they have and not know there are other possibilities. For example, now many users would try out
Lesson or Glossary or Badges if they were not already just sitting there to try? Being able to experiment and trying out new
activities is important for teachers and course designers too.
That would be gone and replaced by some sort of request to the admin to install something just to look at it. Having to install plugins instead of simply enable them does add friction to the process: neither admins nor teachers like friction. And installing a plugin is a lot more friction for admins - and an interruption for all users - than simply enabling one already installed.
- Security is an concern too: installing a new plugin is much more potentially dangerous process that simply enabling an already installed plugin: right now there's some very important security that has to be be in place for the code. I can't just install a plugin without going to the server to open up some permissions temporarily. Again, you can say admins should know how to do that, but it is another raising of the bar for new adoptions. While in WP with its integrated admin panel, this is taken care of so there is a lot less interruption to users than Moodle has.
I have to say that personally, I find the Moodle approach a lot less headache than the Wordpress approach to plugins: I mean, almost NO Wordpress is usable these days out of the box. You always have to add plugins to to get anything useful. Back in the day, when blogging was new, this approach made sense: the only core tool you had posts. Of course, this is also true of Drupal (and to some extent Joomla) but that is the nature of those tools.
However, in Moodle, I would certainly like to be able to remove certain core features and plugins and never have them in the site at all. So, perhaps these new approaches could encourage more of a fully pluggable architecture for core. And we could have our cake and eat it too