What are the choices?
There are currently two choices to choose between: Drupal 7 and Drupal 8. Drupal 6 is no longer supported, so will not be considered in this blog. If you are running a D6 site it is strongly recommended to upgrade to D7 or D8.
Go with the newest right?
Drupal 8 is the newest version and it would therefore be easy to think “Drupal 8 is the obvious choice”. I have drawn comparisons in four categories to help break it down.
The Drupal community have done a fantastic job of getting Drupal 8 versions of a lot of the commonly used contributed modules, but there are still some big gaps.
For example Drupal Commerce has a Drupal 8 beta, but a lot of the supporting modules such as payment gateways are still lacking D8 versions. This can be solved by implementing your own custom versions of the modules or helping contribute patches, although, understandably learning new API's and the new Drupal 8 infrastructure may not be at the top of the list right now. There are some pretty big changes!
Drupal 7 has been around for a long time and has only improved with age. The huge variety of contributed modules and themes have grown so large, it is possible for many site builders to create complex websites without writing a single line of PHP! All you need is a good working knowledge of the modules list.
Round 1 - Drupal 7
You only have to look at the release notes to realise there are still a lot of issues with Drupal 8, with over 240 pages of open issues in the to-do list. Major core versions and some contributed modules are being released on a weekly basis, so Drupal 8 is definitively a great choice if you like patching and updating modules a few times a week, for larger websites.
Drupal 7 has a wide library of modules with stable versions, and Drupal core only releases a new version for bug and security fixes (every 2 or 3 months currently).
Round 2 – Drupal 7
Out of the box
Drupal 7 has lots of great features, but you have to download all the core site building tools first. I couldn't think of a single site that I have built where I haven't added views, webforms and a variety of extra field modules.
Drupal 8 has most of this built in to core with the exception of webform. You can build a basic blog or information site without downloading a single module, pretty impressive right?
Round 3 – Drupal 8
Drupal's back-end has always been a little clunky, not the most user friendly for new users, although arguably a lot better than some of the alternatives.
Drupal 7 is fairly easy to manage, if you have any issues there is great documentation and chances are if you search for the issue someone has a fix.
Drupal 8 is a completely new way of working, if you haven't been using Drush yet now is the time to learn! The learning curve is a little steep; modules, libraries and themes have a new home outside of the sites folder and configuration files are in YAML and templates are using TWIG.
If you are stuck in your old ways you may hate the changes, but a weekend playing around with composer and Drush you will most likely be converted into the new ways of working, it may even help speed up some of the more boring jobs in D7.
Round 4 – Drupal 8 (just)
Drupal 7 is still going to be the obvious choice for a lot of websites, the functionality and stability alone make it a no-brainer for most projects.
At Spartan Panda we are now at a point where it is impossible to say that Drupal 8 isn't ready, because it is. In fact we have already launched Drupal 8 websites and clients are chuffed with them.
Equally the amount of work required to build some of the more complex websites in Drupal 8 would be far too expensive for the client, due to the amount of customisation required, so it makes sense to stick with Drupal 7 for the time being.
We have found to achieve the best result, you must plan the website in full first to know exactly which modules are required for every bit of functionality on the site. If 90% of what you need isn't in Drupal 8 then stick to Drupal 7 for now, just remember to use modules with Drupal 8 versions in the pipeline to make upgrading in the future easier.