It's Not Too Early to Talk Drupal 9.0
It has been 16 months since Drupal 8 was officially released and we have launched a number of sites and upgraded others, leading the way in the community and helping our clients understand the value of this next-generation technology.
Invariably, for all the advantages of using this open source technology, breaking programming interfaces creates some pain. This is routinely identified as one of the main issues within Drupal. Founder and lead developer of the Drupal CMS, Dries Buytaert, recalls when Drupal's form handling from Drupal 4.6 to Drupal 4.7 broke hundreds of contributed modules. And when it turned out that updating those modules was a much bigger effort than anticipated, there was some chaos in the developer community. It led to quality problems, made release dates slip significantly and hordes of frustrated users were unleashed.
Such a heated topic in the Drupal community! Some background: When Drupal was first created, it was an intentional decision not to preserve backward compatibility because preserving backward compatibility often came at a significant performance cost. The mission was to make Drupal fast, small, clean and on the bleeding-edge of technology. It worked well and yet in an ideal world we'd be able to innovate fast yet provide a smooth learning curve and upgrade path.
In response, with the release of Drupal 8, Drupal core moved to use a continuous innovation model. With this continuous innovation model, new capabilities can be added that previously would have required a new major version. With experimental modules, features are in users' hands earlier and receiving validation that the right things are being implemented. And with the scheduled 6 month release cycle, delivery of these improvements are more frequent and more predictable.
So… What does this mean for Drupal 9.0?
No, no release date for 9.0 has been announced. Far from it. But, Drupal core committers believe that the advantages of Drupal's new continuous upgrade model can be translated to major upgrades. When introducing new features in Drupal 8 releases, instead of removing the old systems they will stay in place but module maintainers will be encouraged to update to the new systems. Modules and custom code will continue to work. Of course, the more Drupal innovates the more deprecated code there will be in Drupal 8. Over time, maintaining backwards compatibility will become increasingly complex. Eventually, Drupal will reach a point where there will simply too much deprecated code in Drupal 8. At that point, deprecated systems will be removed and the ‘clean’ version will be released as Drupal 9.0.
According to a recent blog posting from Buytaert called Making Drupal Upgrades Easy Forever, in following the new continuous model, Drupal 9.0 should be almost identical to the last Drupal 8 release, only minus the deprecated code. The working theory is that when modules take advantage of the latest Drupal 8 APIs and avoid using deprecated code, they should work on Drupal 9 and updating from Drupal 8's latest version to Drupal 9.0.0 should be as easy as updating between minor versions of Drupal 8. And, Drupal 9 gives us all a clean slate to start innovating more rapidly again.
There is more to this than I can write in one blog post. One of the great strengths of Drupal is the willingness of the community to share its knowledge and teach others how to work with Drupal. These changes prove Drupal 8 is the most innovative release yet.