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.
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]['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.
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
45 minutes of staring at the staring ;-)
Drupal 9 section+++
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.
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.