What can we expect from Drupal 8?

Technology
21.04.2015
What can we expect from Drupal 8?

This year we kicked off with the incredible Angela Byron aka "web chick" who enlightened the audience about some of the cool features we can expect from the upcoming Drupal 8.

Angie is the Director of Community Development at Acquia, is a Drupal core co-maintainer and hence of the select few that can actually commit to core.

Content Authoring

One of the great improvements added to Drupal 8 is in the content editor screen. The editor experience has greatly improved from Drupal 7 and allows now for a much better user experience.

WYSIWYG in core

No more installing contrib modules to use a WYSIWYG editor, this feature is now core functionality through the use built-in CKEditor integration.

In Place Editing

This is one of my favourite features in the content authoring set. Although WYSIWYG stands for "What you see is what you get" anyone that has worked with a web editor knows this is far from true. What the content editor is seeing is not what gets rendered on the page and even if you get your theme CSS applied you just don't get the context of the page you are editing in.

In Place Editing changes this. It allows you to edit your content directly in the page, which is an amazing experience. You can see this in action in this demo.

Authoring screen restructured

The authoring screen (edit pages) has been cleaned up a bit to allow for a better editing experience. For example some contextual actions like menus, operations (edit, delete, preview) are now in the sidebar. This really makes it easier compared to the fully stacked page we currently have in Drupal 7. Although we can workaround this with modules like Field Group it's nice to have things nice and lean in core as well.

Preview

The preview functionality in Drupal 7 is kind of useless and hence is not very used. You are not really previewing your content, so much as just seeing the content you just created, twice.

Drupal 8 now introduces this amazing feature and you can actually preview content in several view modes (e.g teaser, full).

Mobile Experience

Drupal 8 is also showing some love to the mobile users be it from a frontend or administrative perspective. It will now be equipped with several features to better serve content to mobile devices as well as to facilitate content editing.

Some of the key points addressed are:

  • A revamped mobile friendly administration menu
  • A mobile friendly administration theme
  • Responsive images out of the box
  • Responsive tables

Responsive Images

I'm touching on this topic in particular as it's definitely one of the features that got me most excited regarding Drupal 8 new mobile capabilities.

As of now, there isn't really a great solution to deal with images and image styles for mobile devices in Drupal 7. Drupal 8 changes this by introducing the concept of responsive images in the core. Image styles can now be applied through the context of a breakpoint, which can be configured straight into the image styles interface. This way when the user is viewing a page, depending on the breakpoint configured, the website will serve difference source images. Nice.

Site Building

It's difficult to say which of these areas were mostly improved but without question Site Building is right at the top of the list.

There are some things that would be on every developer's list (*cough* blocks) and I would say most of them have been addressed.

Views in Core

Every Drupal website uses views. Period. There is just no exception. Having views in core is great not only because it will stop being treated as a separate project, but also because it will be more consistent with the rest of Drupal Core. 

There are also a lot of exciting features around the new Views module like the ability to export RESTful data, which means basically data can be exported straight into JSON. This is fantastic for integration projects that need to consume data from Drupal without depending on the currently used Services module.

Imagine say a mobile application written in jquery mobile to show blog posts from the website.

Better Blocks

Someone has listened to my prayers (and many others) and finally made blocks entities. Finally blocks are no longer the ugly duckling in the family and can be treated as any other entity, making them fieldable, accessed through the Entity API etc. No more Beans for me, thank you.

New field types

Many field types projects now typically as separate modules are now moved into core, warm welcome to:

  • Entity Reference
  • Date
  • Link
  • Phone Email
  • Comment

Multilingual

Drupal now has multilingual capabilities out of the box. Also, because of so many modules moving into core, the multilingual capabilities have a much broader reach, so you can translate and assign language to pretty much everything.

Some capabilities include:

  • Language handling
  • Interface translation
  • Content translation
  • Configuration management

For more information check out the D8 Multilingual initiative feature overview.

Configuration Management

Who uses the features module to deploy code, raise your hand?

One of the good things Drupal has is the ability to deploy configuration as code. This means that we can deploy configuration and other database changes through code, without compromising a staging or production database.

There are several ways of doing it currently and that's one of the problems right there. The other is that none of them are perfect. 

Here at Digital Garden we mostly package our projects into features and deploy always through those features (by using the Features module). While this works quite well, it's not without it's hassles and it actually involves having your features as modules, which can affect performance if you are not careful.

Drupal 8 solves this problem with a feature called Configuration Management. You can basically export and import everything into/from an archive file. It even has an amazing feature that allows you to review the changes before you actually commit the imported changes. Awesome.

Twig & HTML5

Twig is a realy cool and modern template engine for PHP, made by Sensilabs, the guys responsible for the Symfony framework.

Currently in Drupal 7 we use PHP Template as a template engine, which in the end is basically writing PHP.

One of the good things about Drupal is its clear philosophy around separating presentation logic from business logic which can be achieved by leveraging pre-processing functions that pass processed data into the template.

However, because it's PHP, there isn't really anything that enforces that or that prevents a developer from writing all his logic straight into the template files. This is of course not a very good practice and it's just asking for security issues.

Twig takes care of this problem by introducing a templating language that is incredibly easy to use, which makes it a better choice for themers and it automatically escapes any variable passed into the template.

Drupal 8 also will produce semantic HTML5 mark-up language out of the box, not only leveraging all the new mark-up elements available but also making them available through the Form API. That means we can now have date fields behave as actual dates that get immediately understood by native widgets in mobile devices for example.

No more support IE8, IE7 and IE6

The nightmare is almost over and the day where we stop caring about these browsers is almost coming. Thank god.

Drupal 8 will no longer support IE8, IE7 and IE6 so like "web chick" put it in her talk, if you want them gone contribute to core.

Web Services

Like I said before regarding views, Drupal 8 can easy export data that can be consumed externally. This makes Drupal very future friendly, as it will be able to plug easily into any system or application.

Modern PHP OO practices

Drupal 8 is going to start leveraging principles that modern PHP has to offer one of the main changes being switching from procedural to object oriented principles.

This will mean that developers will have to get up to speed with several of these patterns but it will also mean that we will open doors to a broad community of other developers. Drupal currently has a lot of specific ways of doing things, commonly referenced in the community as "drupalisms" which represents an entry barrier to someone who is new.

I remember well when I started working with Drupal, coming from a Java background how strange some drupalisms were to me in the beginning and I am really excited with this new direction.

By standardising it will make things easier for people that will want to learn Drupal, make it easier to find talented developers to work in Drupal, which in the end will mean a healthy growth in the Drupal community.

Feature Releases

When there is a new release of Drupal a lot of changes are introduced but after that there is just maintenance and security upgrades. There are no new features, ever.

This is going to change with Drupal 8. We will now have something called Feature Releases, which basically means that in predetermined cycles new releases will be added to Drupal 8.

Wrapping up

Drupal 8 is coming and its full of improvements on the already awesome Drupal 7. It brings exciting news for everyone ranging from frontend developers, backend developers, site builders and content managers.

It is still not ready though and the only way to make it happen faster is to contribute to core.

Everyone can contribute either with code skills, documentation, testing, ideas, design and much much more.

Stay tuned for the more of this series where I will continue to share what I learned in DrupalSouth 2015.

Next time I will pick up where I left here and talk about contributing to core.

Also, don't forget to check out Angela Byron's presentation which is available at the DrupalSouth website.