Software evolves, updates are released and we all tread the moving pavement. So it is even with open-source software projects, such as Drupal and Wordpress. There are few exemptions. To Benjamin Franklin's death and taxes, we should these days add software updates. And why not? Software projects are complicated and bugs slip out alongside improved functionality. So there is an inevitable iteration of minor and major releases. Minor releases, such as from Drupal 7.1 to Drupal 7.2, are usually evolutionary.
Major version releases, such as from a version 7.n to a version 8.0, are not evolutionary. These are releases that are potentially both revolutionary and/or disruptive. Developers can either crave them or fear them. Each major version promises new and welcome improvements that might merit the popping of champagne corks. But there is the risk that any major version release introduces changes so sweeping that a user is required to question their own loyalty to the brand.
The power of 6, the beauty of 7
The first Drupal 6 site I built was in 2009. I built between 8 and 10 in the first two years. Having the Drupal Views module to play with was a revelation. It provided the ability to click through an admittedly complex interface to build almost any form of database report to be delivered in standards-compliant code, made as pretty as pie with CSS. This was like being back writing desktop database-reporting solutions, but without needing to grapple with code. Scales fell from eyes. But the pavement keeps moving.
|Drupal 6||Drupal 7||Drupal 8|
|Target user||Private, SMEs, non-profits.||Private, SMEs, non-profits, businesses.||Corporates.|
|Date released||13 February 2008||5 January 2011||19 November 2015|
|Date support ends/ended||24 February 2016||Will coincide with the release of Drupal 9, in November 2021. November 2022 (see Footnote below).||n/a|
|Ease of migration to the next version||Very difficult.||Possible but tricky.||n/a|
|Options for moving forward||Pressflow or Drupal 7, depending upon project budget.||Backdrop CMS or Drupal 8, depending upon requirements.||n/a|
|Leap in complexity for the developer compared to the previous version||n/a||Significant but not problematic.||Very considerable.|
Drupal 7 followed in January 2011 and I've built maybe 20 sites with this major version, most of them being responsive sites. Views has been central to all these systems, and working with it has become almost as natural as breathing. Having an ever-expanding set of third-party modules capable of being plugged into Views has been very special. Having the IP Geolocation Views & Maps module and the Leaflet module, which together run database reports that output data overlaid onto a map, has been nothing short of sensational. In an ideal world, Drupal would stay put just like that, a bit more polish here, a bit of bug-fixing there, minor versions incrementally added, but nothing revolutionary by way of major versions. An ideal world, hhmm.
The overhead of 8
But that's not what Drupal 8 is to a small web shop like mine. The evolution from version 7 to version 8 has been revolutionary. A steeper learning curve has been introduced. A slew of new technologies has been wrapped up inside the package, the most notable of which is Symfony, an open-source PHP-based application framework that follows the MVC architecture. Some of Symfony's components now power Drupal 8 and developers won't be able to wrangle 8 without wrangling Symfony. A further tool deeply-embedded in the Drupal 8 eco-system is Composer, which manages dependency-management in PHP. Then there is Drush. Both are command-line shells for managing Drupal installations. Both are pretty much required by Drupal 8. In addition, version 8 requires hardware with more grunt. Drupal 8 is targeted at corporates with complex user-bases and high-volume traffic, not the sort of clients that I work with. Drupal's architecture has changed and it has been overtly positioned in a different commercial space. This is great for those who want to go in that direction. I don't. So this post summarises what my reaction is to this sea change, and what the challenges and opportunities are.
My personal wish list
My needs are simple: I'd like to work with something like Drupal that has something like Views, but with no additional major learning curves. If it could also work with something like IP Geolocation Views & Maps and something like Leaflet so that I can continue to help my clients express their activities in geographic terms, I'd be in heaven. That's all!
- For new clients whose activity does not require a mapping component, I shall provide them with a Backdrop CMS solution.
- For new clients whose activity does require a mapping component, I shall provide them with a Drupal 7 solution. When Drupal 7 is end-of-lifed, my hope will be that Backdrop will by then have a mapping solution available and I will perform the transition for them from Drupal 7 to Backdrop. If that mapping option remains unavailable in Backdrop at that time, then I shall endeavour to find a host who is willing to accommodate a Drupal 7 website.
- Much as I adore working with Drupal 7, I shall not be moving my skill-set forward to Drupal 8. It is overkill for the overwhelming majority of the projects I work on.
To ensure that the above does not create a negative impression of anything other than Drupal 7, it is worth saying that I consider Backdrop to be a fine piece of work. It is a fork of Drupal 7 which will be very familiar to Drupal 7 developers. It is lighter-weight than Drupal 7 and requires slightly less in terms of server hardware. It is also slightly faster than Drupal 7 (for anonymous users when caching is enabled). In terms of architecture and storage, there are few differences between the two systems. It has also been worked on by many very well-respected members of the Drupal community, particularly Nate Haug (aka quicksketch) and Jen Lampton (jenlampton). Oh, and it has Views baked in to its core. What better?
One more reason to take a closer look at Backdrop is its new Layouts system. This is probably the only aspect of Backdrop that a Drupal 7 shop will not find immediately intuitive. It is a variant of Drupal's Panels module serving as a page-templating system. Once mastered, it enables designers to establish page regions and pull blocks into these - and do so outside a site's theme layer. I'm currently using Backdrop for a reasonably complex project and I like what I see.
I consider Backdrop to be an extremely worthy successor to Drupal 7 and once it has its forum up and running so that the Backdrop community can pull in more participants, I believe this will be a thriving open-source project.
[Update: on June 24th 2020 it was announced that the Drupal 7 end-of-life date had been put back to November 2022 given the impact of COVID-19. You can read this announcement here.]