Lately there's been some scuttlebutt and FUD around about the architectural changes Drupal 8 brings.

So I presented at the Drupal Melbourne meetup (remotely) a presentation titled 'Drupal 8 won't kill your kittens' in an attempt to dispel some of the rumours.

So here's the summary of my main points along with the slides and audio.

The background

Some key Drupal contributers have asked to be removed from Drupal 8's MAINTAINERS.txt file.

Does this mean we're losing all our talent?

I argue no, in fact we've gained a huge number of new core maintainers as part of the Drupal 8 cycle. 

People come and go as they move to different stages of their lives and managing this progression is as important to an open source community as it is to an elite sporting team.

The DX wins in Drupal 8

The entity and field API changes

Every time I have to write $node->field_foo[LANGUAGE_NONE][0]['value'] in Drupal 7 I pine for Drupal 8. $node->field_foo->value. It is so much better. First class objects with defined interfaces will always be a better developer experience, particularly for those with an IDE, than massive arbitrary arrays.

The plugin system

Anyone who maintains a module that contains more than one block definition will agree that using four hooks and a massive switch($delta) statement soon gets unweildly. Plugins mean everything is in the one file. Neatly packaged up. Away from the rest of your module. Want a new block? Copy an existing one, edit. Done. Meta is defined in the same place. Then there's base classes, interfaces and inheritance. Again objects with defined interfaces are always a better experience than an arbritrary array.

The routing system

This one is contentious. There is a learning curve here. But the things you learn will make you a better developer. And we need help to finalise core conversions. So if you want to get ahead of the Drupal 8 learning curve, drop into core mentoring hours and pitch in on those conversions whilst getting free Drupal 8 training from the experts. The benefits of a modern routing system will set Drupal up as the go-to platform for powering not only web-pages but also mobile applications. The possibilities are endless.

Drupal 9

Yes Drupal 8 isn't perfect. We still have a hybrid of OO and procedural code, but a three year release cycle isn't long enough to effectively re-write the whole code-base in an OO fashion. We'll continue towards this in Drupal 9 and in doing so undo some of the Drupalisms that have made developing with and contributing to Drupal a barrier for developers from other frameworks and languages.

The slides and audio

The slides are here and the audio is here. Unfortunately the video doesn't include the screen-share of the slides, put that down to unfamiliarity on my part with Google Hangouts on air.

 

Comments

artur's picture
artur

45 minutes of staring at the staring ;-)

Anonymous's picture
Anonymous

Drupal 9 section+++

larowlan's picture
larowlan

Yeah I didn't realise hangouts on air was recording what I saw, not what they saw. Lessons learned for next time. I recommend listening to the audio and not watching the video. I will look at taking an audio grab.

Gaelan's picture
Gaelan

Another problem with array-based API's is that when I wanted to figure you how to access node fields, I DPM'd the node and figured out this:
$value = $node -> field_foo['und']['0']['value'];
If I get a real object, I'm more likely to go to api.d.o.

Post a comment

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.