What's in a name... after all? Or... in a number in this case. Wouldn't a "Drupal 9 vs Drupal 8" comparison be identical with a "Drupal 8.x vs Drupal 8.y" comparison, except for one number?
So, why is there a need to... change numbers (too)?
Because Drupal depends on the vendor support lifecycles of PHP and Simfony.
As simple as that.
Therefore, Drupal 9 will mark not just the moment when Drupal 8 has been "fully" sanitized of all its deprecated code, but an upgrade to a newer version of Simfony (and Twig).
Note: starting Nov. 2021, Simfony 3, now at the heart of Drupal 8, will no longer receive security patches.
Now, let's have a look at some of the Drupal 9 features in relation to Drupal 8's well-known features, paradigms, and approach to upgrades.
#1 Drupal 8: The Last Version that Breaks with Its Predecessors
The Drupal 7 to Drupal 8 migration was the last hair-pulling upgrade. So they promise us...
Can you sill remember all those high hopes you've had regarding shiny new Drupal 8, its innovation model and all those oh! so tempting improvements?
Then you must surely remember that moving to Drupal 8 quickly turned into an... ordeal. The other side of the "innovation coin" that it seduced us with was that:
It was too different from its predecessors.
So different that... your Drupal 7 contributed modules weren't compatible with it and lots of custom code had to be rewritten.
Well, that was the last cumbersome migration in Drupal.
If you've already got rid of all deprecated APIs by the time Drupal 8.9 turns into Drupal 9, the upgrade will be... silky smooth.
#2 Drupal 9 vs Drupal 8: Expect Simfony 4/5 and Twig 2.0Image source: Drupal.orgSome of the key differences between the two are the versions of Symfony and Twig that they use/will use.
Since Simfony 3 will go end-of-life in November 2021, Drupal 8, as well, will need to be "sacrificed" for a newer major version of Drupal. One that should use upgraded versions of these PHP projects (Twig and Simfony).
#3 Drupal 9: The First One Backward Compatible with Its PredecessorImage by MoteOo from PixabayAnd this is a huge difference and leap forward from Drupal 8.
For it's precisely this incompatibility with Drupal 7 that... caused so many headaches during the previous upgrade.
In this respect, Drupal 9's built, from the ground up, to be backward compatible with Drupal 8 from day 1. That, of course, if you keep your current Drupal 8 website up to date and "well-groomed". Cleaned up of all out of date code...
#4 Contributed Modules Will Be Compatible with Both D8 and D9
"The compatibility of contributed modules is historically one of the biggest blockers to upgrading, so we will also make it possible for contributed modules to be compatible with Drupal 8 and Drupal 9 at the same time." (source: Dries Buytaert's' blog)
In short: if you stick to your update routine and keep removing deprecated code, your Drupal 8 contributed and custom modules will be compatible with Drupal 9, as well.#5 Drupal 9 vs Drupal 8: Without vs With Deprecated Code
There's a major inconvenience that stems from Drupal 8's continuous innovation model:
Innovative features keep... piling up, at high(er) speed.
With every improvement brought to these new features, certain code gets automatically... deprecated and just left there to linger.
So, this is one of the critical differences between the 2 versions: the newer one will be stripped of old code.
#6 Drupal 9 Will Have Updated Third-Party Dependencies
That's right, not only that Drupal 9 will remove support for all code marked as deprecated in Drupal 8, but it will use updated third-party dependencies.
# Final Word
Any Drupal 9 vs Drupal 8 comparison would have to include 2 key differences:
- different approaches to upgrades
- different versions of the underlying technologies
We're quite curious what's your opinion about the promises made regarding the Drupal 9 release:
- that contributed modules will work on both versions of Drupal?
- that, since it'll be completely backward compatible, the upgrade will go... uneventful?
We do Web development
Go to our Web development page!