There have been a lot of new words flying around the Joomla! community lately. Things like "small-core" and "distro." Some may be talking about "flavors" of Joomla. Are things really changing? Isn't Joomla! still Joomla!? What's it all mean?
It's not always easy to sort out facts from spin. So, in decoding it all, let's start with the simplest term, small-core.
"Small-core" has sometimes also been called "Joomla light" or "Joomlite." What it means is Joomla!, but without all the pre-installed modules. Its aim is to make building a site a few steps simpler.
Whenever you build a new Joomla! site, the first step after installing Joomla! is removing or deactivating all those standard modules that you won't be using. The intent of the "small-core" approach is to save you that step, by not installing the modules in the first place.
A small-core Joomla! would install only the base Joomla! product itself, making the site a blank slate, ready for you to write on. And the resulting finished site would contain only what you want the site to contain; there would be no superfluous extensions laying around to clutter up the admin display.
One advantage of a "Joomlite" would be the reduction in territory the small-core dev team would be responsible for. The internals of Joomla! would be the central focus, instead of any particular component or module.
Separate development teams could form around each of the components and modules. This would give each team a smaller body of knowledge to master, one way of lowering barriers to entry for more community devs.
The least settled discussion around "small-core" centers on what specific extensions would be left out. Leaving every extension out would result in a simple installation, but also one incapable of functioning in any meaningful way, without extra installations.
Ideally, "small-core" would contain the minimal number of modules, components, and plugins required for a useful site. But just which ones would be left out is where the discussion lies.
Which brings us to the idea of a "distro."
One Size Doesn't Fit all
The discussion over which components and modules are absolutely necessary isn't a simple one. This leads us to a second idea: that a "standard pack" of components and modules for a blog (for example) will be different than for a news site, which will in turn be different than for a community site. So, what if, instead of a single small Joomlite that needs a set of extensions added, there might exist several small versions, specifically chosen for the market niche.
These "distributions" (or "distros," a term coined by the Linux community) would all still be Joomla! (just as Suse and RedHat are both still Linux) but a Joomla! tailored for a specific market or a specific purpose.
The idea is a set of extensions would be the foundation for a specific market niche. A team of developers would form around that niche, and be responsible for maintaining the distro that served it.
Specifically how these distros are made up and will operate is something yet to be settled. They might be packaged and installed much the same way the standard Joomla! package is done today, as a single download and a dedicated installer. Or perhaps something a bit looser will arise out of the small-core idea, and the minimal Joomla! will be packaged and installed, along with a special-purpose "manifest" that will tell the installer what additional packages are required for this distro, and where to find and download them.
The advantage of this approach would be that the support team would be focused on that particular niche, instead of the whole world, so they would be more knowledgeable about what was important to that niche. This in turn would make sure Joomla! served that niche better.
And, since the teams would themselves all be part of the larger Joomla! community, Joomla! itself would benefit from their tighter focus. Instead of a few Joomla! core team members having to cover all possible use cases, the discoveries (and bug fixes) made by the distro teams would also be funneled back to the core Joomla! development.
The drawback to such a diluted approach is also obvious: it runs the risk of scattering an already small development team's attentions. Is the risk worth the possible gain? That's part of the discussion yet to be resolved. It's possible new developers will be attracted to working in a niche they're familiar with, or not. What do you think?
But if these distros are going to be different from each other, as well as from the traditional Joomla! package, if they're changing things, doesn't that mean Joomla! is forking?
Depends on how you define the term "fork." The two major defining characteristics of a fork traditionally have been irreconcilable differences between the code of the two projects, and a intention on the part of the new project to compete with and even replace the parent project.
Anything less than that would probably more accurately be called a "development branch" (I referred to it as a "flavor" at the start of this piece) a place where new ideas can be developed in detail and tested. There's a long history of projects like that in the Open Source world. If they prove useful, they are assimilated back into the parent project and life goes on. Or sometimes they continue on as niche versions of the parent project.
Have a look at the BSD "tripets" today: they pass code around among themselves freely and work on projects together, always keeping their main focus in mind (FreeBSD focuses on stablilty on the intel chips, NetBSD on maintaining itself over a wide range of CPUs, and OpenBSD on being as secure as possible). They prove that even divided projects can be friendly, and even collaborate.
Conclusion? What Conclusion?
These are big issues, larger than a single article can do justice to, but at the same time it's important the Joomla! community begins to think about them, and decide how these ideas should develop. What I hope is that this has helped set the issues in font of you, and given you a little framework for further thinking and discussion.
Many proposals are circulating right now that fit roughly into this framework. Where do we go from here? You tell me.