Introduction
Drupal has always been the most preferred content management tool to create attractive websites by developers. It is Drupal’s simple yet powerful framework that has made it popular among developers. Drupal is preferred by companies as it is open source software which means there is no cost incurred to procure the software. Drupal is a powerful tool to create websites since it is robust, flexible, secure, scalable and easy to use. Developers must assemble the right modules as per their requirement and they are good to go. Right from 2001 till 2017, Drupal has evolved a lot. Drupal’s mort popular major releases in recent times are Drupal 7 which was released in January 5, 2011 and Drupal 8 which was released in October 7 2015. Drupal Web development has been revolutionized after Drupal 8 was released with a lot of new features. Even after the release of Drupal 8 which has a lot more enhanced features than Drupal 7, many of my colleagues who are working with Drupal still prefer version 7 over version 8. This made me think what could possibly be the reason for this? Every new major release promises better features than the previous ones. Then why do developers prefer the older version? So, let’s start our quest to find answers on which version of Drupal to choose - 7 or 8?
Drupal 7 Vs Drupal 8 – The Differences
Features
|
Drupal 7
|
Drupal 8
|
Type of
|
Content management software (CMS)
|
Content management software (CMS)
|
Cost
|
Free
|
Free
|
Released
|
Jan- 5th -11
|
Oct - 7th -15
|
Maturity
|
|
|
|
Older, matured with time, and has lots of modules, lots of documentation, and lots of tutorials.
|
Newer, less matured, and has less modules, less documentation, and less tutorials.
|
Output
|
XHTML markup by default
|
Semantic HTML5 markup by default
|
Front-end libraries
|
jQuery v2.x
|
jQuery v2.x, Modernizr, Underscore.js and Backbone.js.
|
SVG support
|
Supported browsers that did not support SVG (including IE8 and Android Browser 2.3)
|
Does not support browsers that do not support SVG (including IE8 and Android Browser 2.3)
|
Default Theme Engine
|
PHPTemplate
|
Introduces Twig
|
|
theme_* functions and PHP-based *.tpl.php files
|
*.html.twig templates ()
|
CSS and JavaScript aggregation
|
Less effective CSS and JavaScript aggregation, as compared to 8
|
Improved CSS and JavaScript aggregation.
|
Adding CSS or JS
|
drupal_add_css() and drupal_add_js() functions
|
Attaches JS/CSS assets in the #attached property of a render array using libraries
|
CSS Class Changes in Menu
|
.menu li.expanded
|
.menu-item-expanded
|
|
.menu li. Collapsed
|
.menu-item-collapsed
|
|
.menu li. Collapsed
|
.menu-item-collapsed
|
|
.menu.li.active-trail
|
.menu-tem-first-child
|
|
.meni.li.first
|
.menu-item-last-child
|
|
.meni.li.last
|
.menu-tem-leaf-removed
|
|
.menu.li.leaf
|
.menu-item- active-trail
|
CSS IDs
|
Contains more IDs than Drupal 8's CSS.
|
Contains fewer IDs than Drupal 7's CSS.
|
CSS File Structure
|
CSS (file) structure is not based on SMACSS & BEM.
|
CSS (file) structure is based on SMACSS & BEM.
|
CSS3 pseudo selectors
|
Used first/last/odd/even classes
|
uses CSS3 Pseudo Selectors
|
Core modules
|
Many preprocess functions and CSS files are included in core modules.
|
Replaces many preprocess functions and CSS files which were previously included in core modules by utilizing Classy, a core base theme that injects classes into markup, and includes corresponding CSS.
|
Breakpoint Media Queries
|
Does not use breakpoint media queries to control how the site looks on different devices.
|
Use break point media queries to control how the site looks on different devices
|
Views
|
Views is a contributed module
|
Views is added as one of the core module
|
CkEditor
|
Does not utilize CkEditor
|
CkEditor, a core module in Drupal 8, is a visual html editor used for editing web pages that brings common word processor features directly to web pages
|
Edits
|
Must go to edit page to make edits
|
Inline editor helps edit contents of a page without going to the edit page, instead just right click to edit.
|
Picture Module
|
Does not have Picture Module
|
Features Picture Module that automatically resize the images for different screens.
|
Symfony
|
Does not include Symfony framework
|
Uses Symfony framework and its MVC architecture which makes code easy to maintain, scale, and reuse.
|
OOP Concepts
|
Has less Object-Oriented Programming concepts
|
Comes with Object Oriented Programming concepts to the most part of the system
|
REST
|
Does not feature REST
|
Representational State Transfer (REST) allows interaction with other applications for creating, reading, updating and deleting resources.
|
New Email Field
|
Simple email field
|
Email Field automatically validates e-mail address and generates a ‘mailto:’ link when displayed.
|
New Telephone Field
|
Simple Telephone Field
|
Telephone Field generates a 'tel:' link when displayed for telephony apps like Skype and others
|
Reference: Drupal, Drupal 8, Drupal 7 vs 8, Zyxware
Modules
Drupal 7 has a lot of modules since it has evolved from 2011.these modules and themes have been tested for long time by the community and is powerful now. On the other hand, Drupal 8 has lesser modules. But I am sure that Drupal 8 will replace Drupal 7 with time.
Change in Mark-up Language
Drupal 8 outputs HTML5 mark-up by default whereas Drupal 7 gives XHTML as output. Only Drupal 8 supports HTML5 which opens doors to cleaner and uncluttered code.
Front End Libraries
Drupal 7 had only jQuery v2.x in front end libraries. Besides jQuery v2.x, Drupal 8 includes more front-end libraries such as Modernizr, Underscore.js and Backbone.js. This is an added advantage to developers.
Changes in CSS and JavaScript
Drupal 8 has enhanced CSS and JavaScript aggregation compared to Drupal 7. If you were using Drupal 7 and wanted to add CSS or JS to a particular page, you would use the drupal_add_css() and drupal_add_js() functions, respectively. This is now replaced by Drupal 8 by attaching JS/CSS assets in the #attached property of a render array using libraries.
Drupal 8 contains lesser IDs than Drupal 7's CSS. Drupal 8 also uses SMACSS & BEM to structure and organize CSS and increase its code maintainability. Drupal 8's CSS uses CSS3 pseudo selectors which has replaced first/last/odd/even classes in Drupal 7.
Multilingual Add-ons
Drupal 8 has excellent Multilingual Add-ons which are compatible with Google translator which is not present in Drupal 7. This minimizes the developers load to translate the text. The developers can make use of the inbuilt translator interface available with Drupal 8. Developers can make use of this to deliver improved multilingual and globalization support in their website.
Views
“Views” is a contributed module in Drupal 7. “Views” is now a part of core in Drupal 8 which helps in quicker creation and modification and deletion of pages and admin sections.
Editor
Drupal 8 has chipped in the popular CkEditor which is a WYSIWYG web editor. This HTML text editor brings many of the powerful WYSIWYG editing functions. This editor loads faster in the webpage and brings in a lot of opportunities to create and edit great contents. Drupal 8’s quick edit feature that is made available in core allows content editors the ability to do simple editing and changes in the page whereas Drupal 7 developers had to load a form specially for editing content.
Theming engine
Drupal 8 has introduced Twig which is a theming engine. The version 8 has moved the CSS classes from pre-process functions which was available in Drupal 7 to Twig templates. This has replaced the PHPTemplate in Drupal 7 as the default theme engine. PHPTemplate in Drupal 7 had chances of messy code and increased security issues in themes. The Twig feature in Drupal 8 is flexible, fast, and secure which means it is very much easier to create beautiful websites which are more functional too using Twig.
Mobile Responsiveness
Older versions of Drupal till version 7 were not mobile responsive. Drupal 8 has introduced mobile responsive themes which makes it easy to access through various devices like mobile tablet and desktop due to its responsiveness.
Drag and Drop Feature
Drag and drop option to upload files is now made available in core for Drupal 8 whereas in Drupal 7 this could be achieved only by installing contributed module.
REST API REST stands for Representational State Transfer
The RESTful Web Services API is new in Drupal 8 which is not present in Drupal 7. It enables external applications to modify and read data in our application. These interactions are mainly for creating, reading, updating and deleting resources.
New Field types:
Email Field: Email Field automatically validates the e-mail address and generates a 'mailto:' link when displayed.
Telephone: Generates a 'tel:' link when displayed. Useful for telephony apps like Skype and other phone systems for making calls.
Symfony framework
Another plus in Drupal 8 is its integration to the powerful Symfony framework that renders high performance. This makes creation and maintenance of applications a lot easier and faster than it was. Usage of Symfony framework has made applications using Drupal 8 more robust and scalable
Field Validation
Fields for email id, phone number that were not validated in Drupal 7 are validated automatically in Drupal 8 and a relevant link is displayed near it accordingly.
SVG Support
Drupal 7 supports browsers that does not support SVG which includes IE8 and Android Browser 2.3 whereas Drupal 8 does not.
Related: Web Development & Its Impact On SEO
Reasons for choosing Drupal 8 over Drupal 7
- Other than the features above here are the reasons that I choose Drupal 8 over Drupal 7
- Drupal 8 is newer and it has more features than Drupal 7. Drupal 8 has more than 200 built in features that could contribute to enhanced digital experiences in websites.
- On a longer run, the newer version will be supported longer with version releases and the support for older version will decrease.
- Drupal 8 supports responsive web design for every built-in theme.
- Drupal 8 has a well-organized core compared to Drupal7.
- Drupal 8 has an all new layout with enhanced UX and lets you create new and pages that are even more attractive.
Conclusion:
If you are a new Drupal programmer, then I would recommend you to stick to Drupal 7 as it is more robust and less error prone. The reason it is less error prone is that it has been validated repeatedly by a community of developers. Drupal 8 is not ready completely since there are a lot of missing modules in it. But if you are ready to take up the challenge and build new modules for the ones missing then go for Drupal 8. Choose Drupal 8 only if all your requirements are available in version 8 or else you will end up with a missing module. But this is necessarily not an issue if you would like to migrate modules from the core all by yourself. Top Drupal Development companies have already started utilizing the features of Drupal 8. It is so far the best release of Drupal. So, let us start scaling up with the technology before the next version release surpasses this one.
Thinking about using Drupal for your next web project? eDesk HUB provides Research, rankings and reviews of the leading Drupal web development companies for hire. Find the best developer for your needs.