There’s an interesting discussion happening on the wp-hackers mailing list right now about the issue of core plugins. Although it seems to have meandered away from the point slightly, the key suggestion was that WordPress should offer a set of core plugins so that APIs that are not needed by every user are available in a standardized form. This has been taken further to refer to features.
This is a guest blog post written by Andrew Rickmann, author of the blog, Fun With WP.
Ever since I started using “The Blog Platform That Shall Not Be Named” I have wanted core plugins for WordPress. TBPTSNBN uses these to great effect and allows it to remain lean while offering a wide set of features. I just don’t see it happening with WordPress though.
Throughout the discussion the posters are talking about content that the core team do not think is right for core. This displays one of the key issues with WordPress: the philosophy up until now has encouraged more and more to be added to the core, and users are consistently asking for more to be built in. The core team act as gatekeepers in a way, preventing content from getting in that isn’t widely useful.
Adding the concept of core plugins will significantly lower the barrier for these ideas. Not good enough for core? perhaps a core plugin then. But someone still needs to develop it; it still needs to be up to the standard expected of WordPress, and with only so much labour to go round something, somewhere, is going to suffer. Eventually it will suffer a lot.
It wouldn’t surprise me if some core plugins started to become out-dated and that would be worse than not having them at all.
Of course it also means a lot more arguing about ideas. It is common for users to demand something that is entirely possible already, but which they don’t know how to do. I don’t mean a feature as such, but displaying certain content in a theme for example. The core team will need to constantly explain why idea x or y is better left in the hands of themers than being a core plugin, so they will have even less time.
It will also open all of the old wounds.
Only a few days ago WPTavern was alight with discussions about the need for a UI to turn off post revisions. If ever there was a feature that was suited to be a core plugin it is this. Most users don’t need it, or want it, but you can’t argue that for taking WordPress seriously as a content management system, it is essential.
How many features will the developers find themselves forced to make into a plugin instead of putting in the core? How much time will be wasted arguing about each one? How much time will be wasted modularizing old features with no progression?
No, it just isn’t going to happen. Partly because of the points above, but mostly because the fundamental philosophy of WordPress doesn’t allow it.
WordPress is a consumer product. It is developed as a finished product into which other people can plug-in, not as a collection of parts that can be put together to create a whole. New features are added to WordPress to address the general needs of the community, and I just don’t see an appetite to spend valuable development time to move WordPress from an install-and-go product to a blog ‘kit’ where optional components can be turned off, or on.
I might be wrong, of course. Perhaps the developers would be up for it. But while I think there are great gains to be made by modularizing, I also think the downsides could be crossing-the-streams bad. I won’t argue too hard for the things I want then, just in case I get them.