The idea to overhaul the current version is not that new, but the ignition on really going for it came up during a ‘Make it Happen’ session at J! and Beyond event in Prague in early 2015. Since then the Joomla 4 Working Group was created and some of the great developers of our community are going for the challenge to get the code ready.
Joomla! 4 is in a very early phase. The architecture has been designed and the coding already started. Proof of concepts were published, discussed and decided on. Integration and system tests are currently written to minimise backward compatibility issues.
Orthogonal Component Structure
Currently, nearly every Joomla! component contains code for cross concerns, that is common stuff, like categories and publishing. Some components additionally contain code for tagging and versioning.
In Joomla! 4, this is no longer necessary. The components we know today, are called vertical components in Joomla! 4, and will concentrate on their core business. All the cross concerns like publishing, tagging and versioning go into horizontal components, their functionality is added automagically to all components. That - of course - is configurable. The combination of vertical and horizontal components - called Orthogonal Component Structure - will make Joomla! 4 components much easier to write and maintain than now.
In the documentation of Joomla! is stated, that many databases are supported, but in fact, only MySQL can be used reliably. To fix that, a database abstraction layer will be integrated, the Doctrine DBAL.
The filesystem will also get an abstraction layer, which is provided by FlySystem.
Pulling external libraries into Joomla! has the advantage, that they do not have to be maintained by the Joomla! community, but are developed and well-tested by people with the skills and experience on that bespoke field.
Changing the architecture to be state-of-the-art does not come without a price. There will be backward compatibility breaks, that’s why it is Joomla! 4 and not Joomla! 3.x. However, for the core, 1-click-upgrade is guaranteed. Unfortunately, that cannot be guaranteed for 3PD extensions. They will need to be changed. If possible, architectural details will be backported to Joomla! 3, so the developers can start to adapt to them. It is a declared goal of the Joomla! 4 Working Group to make the transition as smooth as possible. As it looks now, the changes will mostly be removal of no longer needed code.
This is just a first information about what is happening on the next major Joomla! version. Stay tuned, we will keep you up to date with more information in the next magazine. If you have any questions, remarks or proposals, please feel free to contact the members of the Joomla! 4 Working Group.