Should we wait for Drupal 9?
The simple answer is No.
The longer answer sheds some light on how Drupal will be handling its release schedule going forward for the foreseeable future.
Unlike previous releases, Drupal 9 will (should) actually be stable and ready to go from the first release, because Drupal 9 won’t be a re-write or a new architecture, it will essentially be Drupal 8 without backwards compatibility.
As any programming project goes along, you find better more efficient ways of doing things you used to do something, but you can’t just delete the old way of doing it, because someone out there might be using it.
This is called deprecated code.
It’s code that you have already replaced with something better, but you need to keep the old stuff there because it was the standard for so long it takes a while for people to update to the new way of doing things. This is called providing backwards compatibility.
The plan for Drupal 9 (as stated by Dries in a blog post) is simply to remove all the old deprecated code and make Drupal 9 a fresh and clean version of what Drupal 8 was without any backwards compatibility, forcing people to start “from fresh”, and then add new features in Drupal 9.1 and continue on the standard development cycle.
And you can expect the same process to happen again for Drupal 10.
As they go along and develop more features in Drupal 9, they will end up deprecating more and more code. Once they hit their limit, a clean version will be released under the name Drupal 10.
There are two different points which could triggers the release of Drupal 9.
The first is when they “reach a point where we simply have too much deprecated code in Drupal 8”, which is a fairly unknowable point.
A firmer timeline is when one of the underlying frameworks of Drupal 8 stops getting security patches and becomes potentially insecure, and at the moment that looks like Symfony.
Symfony 3 is one of the core frameworks that Drupal 8 is built upon, however it has been announced that it will stop receiving security patches in November 2021, which poses a risk to anything built upon it, such as Drupal.
This will mean that at some point well before November 2021, Drupal will have to switch over to Symfony 4 or higher in order to give people ample time to upgrade to Drupal 9 before Drupal 8 becomes insecure.
With no insider knowledge, and using this blog post as a record, I’m going to take an educated guess that Drupal 9 initial 9.0 release will release in June 2020