Getting extensions ready for Joomla 4 - Nicholas Dionysopoulos
Joomla 4 Beta was launched at the end of May, starting a period of testing, especially by extension developers, who in general will begin to adapt their products to this new major version.
On this occasion, we talked to Nicholas Dionysopoulos to get his impressions on getting extensions ready for Joomla 4.
We are very grateful to him for taking the time to answer our questions.
I have been the creator and lead developer of Akeeba Backup since 2006 when it was called JoomlaPack. I’ve been actively involved with the Joomla community at large since 2009. I’ve had the opportunity to be involved in the development of products for other CMS as well, giving me a unique perspective when it comes down to comparing development and business models. The reason I became a FOSS developer was to help people – and Joomla has proven itself time and again the best tool to help the most diverse of audiences. It is a privilege being able to contribute to it and I’m honoured I have the opportunity to share my experience with you.
What will happen with the extensions when Joomla 4 is released? Will they be compatible or will the developers have to provide complete new versions?
Existing extensions for Joomla 3 will not work on Joomla 4 without a lot of work from the developers. So, at the very least, a new version will be required for every extension.
While J4 offers a modicum of backwards compatibility with Joomla 3.9 (and, presumably, 3.10) there are two areas which can be a roadblock to developers aiming for cross-compatibility. The first is the API changes which can mostly be dealt with version if-blocks and platform abstraction.
The second and most important area is that J4 uses Bootstrap 4 whereas J3 uses Bootstrap 2 for the backend. This is such a massive departure that you can’t plausibly have “dual-mode” HTML in the same file as you could with BS2 and BS3.
What should users do when they migrate to J4 with the extensions? What they should expect from their extension providers?
This largely depends on the extension developer. Our past experience (J1.0 to 1.5, 1.5 to 1.6/1.7/2.5 and 2.5 to 3.x) has shown certain trends.
Stronger financed extensions from long-established developers will offer J3 and J4 support on the same package. Our company already does that, having invested a lot of time and money into backend and frontend frameworks as well as J4 compatibility. These extensions are the easiest for the user: keep them up to date and you can upgrade your J3 site to J4 with one click.
The weaker financed extensions will not have the resources to create cross-compatible versions and some of them will either give up or implement J4 support too late. They dwindle and die. This will force users to make a choice. Stick it out with Joomla 3 and panic when the End of Life date comes or take a leap of faith with a newer extension? Past experience has shown that those who took the leap of faith suffered early but saved a lot of time and money. Those who waited eventually got stuck with outdated, insecure sites they had to give up or reimplement in a different CMS (and come back to Joomla 2-3 years later when they realised the grass isn’t greener on the other side).
In my opinion, users should ask the developers of their extensions what their plans are for Joomla 4 support. If they get a lot of subversions, uncertainty and elusive, non-committing answers they are probably better off looking at a different extension or core features. Seriously, most extensions I see in use can be replaced with a few easy template overrides. Use the core before you bring in third-party extensions, folks!
As a developer, it is important to start working on the update as soon as possible?
Absolutely! We started working on J4 compatibility starting with alpha 2. It was a good thing because we identified layers of changes that wouldn’t be obvious at first glance. The scope of those changes required us to make a plan for changes in our code which required dropping support for older PHP and Joomla versions. This couldn’t have happened if we started this process now – you can’t give people 2 weeks notice that you’re dropping their PHP/Joomla version and sleep at night lest you’re a veritable monster. It also necessitated devising solutions to practical problems, developing the tooling necessary for refactoring etc. These things require planning and time.
If you don’t start early you’ll never make it by the time Joomla 4 launches.
We have the honor and privilege of developing the software which is the de facto backup and restoration solution people use when evaluating or migrating to a new Joomla version. We have the moral obligation to be one of the first extensions to support a new Joomla version because people depend on us. This means we get to experience all the pains of an early adopter many times over as things change over the alphas. But each site saved from certain doom is a small victory and makes it all worth the trouble.
How the different types of versions impact on the update of extensions (alpha, beta, RC)
Different testing releases give us different opportunities to work on compatibility with upcoming Joomla versions. Alphas give us the broad strokes of the core’s direction and help us in long term planning. Betas signal the end of breaking changes so we can focus on finalizing compatibility details. RCs let us pinpoint minor changes and CSS and JS compatibility issues which can be affected up to this point. The goal is that when the Stable is released we’ll already have a version of our software that we can confidently say is “Joomla 4 compatible”.
From an end user’s perspective, alphas shouldn’t be installed. Betas and RCs are OK to play with as long as you understand that things will be broken and you MUST report what is broken back to the Joomla project. Latent stage RCs and the stable is when you need to start testing your sites for migration. Chances are you’ll be looking at weeks of development time because not all extensions will have J4 versions as I said above. So this is exactly when you should be asking developers about their J4 plans – so you can make plans of your own!
As an extension developer, how do you expect the launch of J4 to impact your business?
It has already impacted our business in the sense of how we approach development which is more like a Formula 1 team getting ready for the new season rather than the Hollywood version of a developer that magically comes up with a solution in 30” of screen time.
We’ve already put in a lot of time preparing for Joomla 4, decelerating the development of new features.
Come the stable J4 version we’re looking at a race weekend. It won’t be smooth sailing and there will be a lot of tension as we resolve issues with near-zero notice. It’s exhilarating, it’s scary, it’s an opportunity for growth and tedious – all in equal measure. But it’s worth it. At the end of the day, we’re helping people and we are rewarded with more users for our software.
You have been participating in the Joomla project since its early years. How do you see its future with Joomla 4 version?
I am very biased when the conversation comes to this point. Back in 2015 Joomla seemed stagnant and dwindling into oblivion. I took it upon myself to start an honest, public and ambitious discussion about what the future should bring with an emphasis on user experience and implementing the features our users demanded for the better part of a decade. It culminated with a semi-formal session at J and Beyond 2015 where a dozen of us sat down and wrote three dozen bullet points of what Joomla 4 should bring. That piece of paper is in my handwriting. It went through hell and high water over the next five years but finally it becomes a real product we can all use and enjoy. Even though I wasn’t involved with it between late 2015 and 2019 – when I contributed a number of more esoteric features – I feel very strongly for it. It’s partially my brainchild and I’m proud to see what its step-parents brought it up to be.
Emotional outpour aside, I honestly feel that Joomla 4 is a much-needed stepping stone to the future development of Joomla and its continued existence. It is a bridge between the old and trusted CMS model of the early 00s and the needs of modern site development. It combines the best features of both worlds, offers raw power to the expert and a friendly interface to the novice. Not every site has the budget or human capital to be built on a framework like Laravel or Drupal. Not every site fits in the watered-down, content creator-centric approach of WordPress. The niche Joomla fills is large and freely encroaches into both extremes. In short, I think it’s the right thing for the time it’s released, something which will help not only hold but expend Joomla’s market share. Combined with the fact that Joomla is still the only project without a benevolent dictator or VC funding we are the living proof that FOSS idealism is not antithetic to the development of a mass distributed product fit for small, medium and large businesses alike. In short, it makes me feel proud to be part of the Joomla family once again.