Blog

Drupal 8 Might Be Useful

A write-up of the talk on Drupal 8 and the site building features in core, from DrupalCon Prague.

Might be useful? What kind of a title is that? Surely it *must* be useful??

If you're a Drupal developer though, you'll know that pretty much *forever* Drupal core point releases have taken at least 6 months to gain any traction. Why? Simply because the enormous body of bolt-on modules we refer to as "contrib" takes a while to get up to speed. Most of these modules are either written by people in their precious spare time or written as commercial need dictates (someone's client says "Hey, I need X!" and X is made). Consequently, "contrib" is seldom ready at the same time as core, and it usually - well, historically - takes at least 6 months to get ready.

What happens in between times? Well, a whole load of websites continue to be built on the old core. For example, I know Drupal 6 sites were still being newly built a whole year after Drupal 7 came out, because there were "contrib" things you could do with Drupal 6 that still didn't have an equivalent for Drupal 7, so you had the hard choice - make it work in Drupal 7 or just stick with Drupal 6. Most people chose the latter for a long while, because the things that needed fixing were too big and complex to tackle alone.

But it seems that might not happen with Drupal 8. I sat in on Kristof De Jaeger's whistle-stop tour of Drupal 8 for site builders on Tuesday (it was excellent, by the way) and it was a real eye-opener in terms of what has been included in core. This is hugely significant, because when Drupal 7 was released you couldn't do anything much useful *just with Drupal 7*! You couldn't create links between content, you couldn't show lists of content, layout options were pretty limited (if you know the original Block system, you'll know what I mean), there was a field API but not many available field type implementations, it just wasn't a useful product on its own.

But look what's going to be in Drupal 8:

  • Views (wow, lists of content, feeds, pages, blocks, all there, not a separate module)
  • Entity Reference (Hallelujah! we can reference content in core, this was a lost orphan after the transition from CCK to Fields in core)
  • Date fields (so events, timetables, expirations, etc. all there in core)
  • Link fields
  • Various other cool fields, like telephone, email, picture
  • WYSIWYG (that's right, CKEditor is in core, no need to install that separately...)
  • Insert (well, not exactly, but a very near thing, so inserting media in content is there in core and tied to the WYSIWYG)
  • Inline editing (yup, click a text area, edit away!)
  • Services (or a version thereof, previously contrib, now core, big win for integrations)
  • CMI (goodbye Features! or, to be fair, back to using Features for what Features is for and not over-extending it as a config manager)

And then there's the stuff that's better:

  • Display options for node forms (that's right, you can actually manipulate how node forms look without writing code)
  • Blocks are entities (yes, you can add fields, have different types of blocks)
  • Layout system is totally shaken up and feels much more like Panels
  • Everything is translatable in core (no, it wasn't before, trust me)

To name but a few. What this means, and what is so drastically different for Drupal 8 when compared to pretty much all previous Drupal releases, is that it will be entirely feasible to build a fairly complicated Drupal website, right out of the box, without needing any "contrib" modules. For me, this is an astounding achievement if the community can pull it off. All this, along with the monumental architectural shift under the hood, is an awe-inspiring amount of work, but if we nail it, it will be a CMS that is a real joy to use.

Now of course, this is all great, but there's a mountain of work still to do on Drupal 8. Kristof pointed out that Page Manager (part of CTools), Token and Pathauto could do with some help getting D8 ready. And what do others think?

Some Drupal developers I spoke to yesterday are still concerned about how long it is going to take to polish and release Drupal 8. There's no question it's a hugely ambitious release and I salute those who have given their all to making it happen. It was clear from the Twig talk I also attended on Tuesday that there is still a ton to do there, and that's just one initiative. I know several initiatives are in a situation where they are well on the way, but need to be finished. How long that will take is hard to estimate right now. We will get there. We *have* to get there. But we need as many people to chip in as possible.

And despite the concerns, the same people are telling me the new core is going to be an amazing opportunity, and a great thing for contrib too. It's a real opportunity to have a clear-out. By way of an example, Salva pointed out to me it feels like a great time to change up to the latest JavaScript libraries with things like slideshow modules - old slideshow modules won't work any more, many probably won't be ported in a timely fashion - if at all - so now's the time to use the Drupal 8 jump to move to smaller, better, faster equivalents that have emerged but been largely ignored because "there's a module for that". This will be true of so many aspects of contrib, I suspect!

And because core will be so useful, contrib can go back to being what contrib should be. Not critical stuff, like Views, Ctools, Services, etc.

So, well, yay! I'm truly excited about this now. I am off to download the latest alpha release!

Add comment

Log in to post comments

4 Comments

Thanks for sharing your observations and thoughts on the upcomming release. It's hard not beeing inspired by the thing already done and what's in doing.

Since it fits on the post theme, looks like the core of Migrate module is also going to be pulled in: https://drupal.org/node/1052692#comment-7903365

Thanks for the overview. What you said about the layout system doesn't seem entirely correct to me though. In terms of layouts, D8 offers just a little bit cleaner /admin/structure/block for managing blocks and that's all. Of course it's a rewrite of that UI because so much has happened under the hood but the user experience is pretty similar to what we used to have. Unfortunately the really cool stuff regarding layouts did not get in.

Thanks for the comment, I think what you say is fair. However, the point really is the cool stuff that *did* get in. It might look similar in the UI (and you sound like you know this already, so this is for readers more than you) but there are really significant changes under the hood ... so from a developer perspective, blocks as entities that you can extend and manipulate - ORSM! And there's clearly a more Panels-like approach to render, because now you can place the same block several times on a page. With the old base system that simply wasn't possible without coding some horrible hack to duplicate the block, so that hints at a MAJOR re-think about how Blocks work. So I take your point the core UI is still very simple - but the *potential* for contrib to do great things with the Block system, without having to tear it out and start again (see Panels) is what I like the most. =)