DrupalCon New Orleans Retrospective
I spent most of the last week at DrupalCon New Orelans, the latest North American confab for the Drupal ecosystem. This is my third DrupalCon, and as usual the trip was well worth the expense, especially since I was joined by my beautiful and talented girlfriend for the trip! While Kim enjoyed New Orleans during the day, I hit up the sessions and keynotes. Below are a few major take-homes from the week.
Drupal 8 is a "Winner in Progress."
The biggest take-away from New Orleans isn't a revelation, but rather a confirmation: Drupal 8 is taking hold strongly and far quicker than Drupal 7 did in terms of adoption. During his keynote speech, project founder Dries Buytaert called D8 a "winner in progress," and projected the version will reach "escape velocity" by the end of the year. Hearing him describe D8 adoption in these terms struck me as a little conservative or modest, at first, but the cautious tone is probably justified given some initial resistance to building new projects in D8 or moving forward with migration from D7. I've even talked to some other contractors who have interviewed with Drupal shops who have no plans to develop in D8. While I can understand some concerns regarding adopting a new version of Drupal, it has been in the works for over 5 years and already boasts some large enterprise installations. I'd go further than Dries and contend Drupal 8 is an unqualified winner already, considering what a significant improvement it represents over D7.
There are few excuses not to build new projects in D8.
The upgrade path from D7 remains a little treacherous for some, especially those with large custom codebases or reliance on significant numbers of contributed modules. While upgrading is still very possible (and likely advantageous), I can understand the reluctance of a site owner to do so right away. For new builds, however, there remain few sound arguments against adopting D8 from the outset. The biggest argument for building new in D7 seems to be stability: D8 feels very new, not just by the calendar but also in its significantly-updated codebase. This "newness" is mostly perceived, however, since many core Drupal concepts (the entity and form APIs, "Drupalisms" like nodes and fields) remain. The large pieces of core that have been swapped out for new code were replaced with heavily-tested, established components from Symfony, meaning they really aren't new at all.
What about contributed modules?
Good question! Not very many Drupal sites are built with core alone, and contributed modules are important building blocks for all but the simplest projects. Don't we have to wait until the contrib universe matures more? The answer will of course depend on business requirements, but the numbers favor Drupal 8. Consultancy Bluespark maintains a tote board of the top 100 contributed modules from Drupal 7 and their D8 port status; as of this writing, 19 were folded into core, and all but 19 have either a D8 dev or stable release. Knowing further that contrib module maintainers are often slow or apprehensive to tag official releases, those numbers are very encouraging.
Furthermore, in my experience I have found that Drupal 8 projects require, in general, far fewer contributed modules than their D7 counterparts. Much of this is due to the improved developer experience and a completely new theme layer. Where contributed modules were previously required to "work around" an insufficient developer toolbox, many of those issues have been mitigated by design in D8.
A potential exception is admittedly a significant one: Drupal Commerce is still a few months away from a stable release. The guys from Commerce Guys hosted an awesome presentation on the amazing new features of Commerce 2.x, however the payments module is still under heavy development. It was nice to meet Bojan, the lead developer on the project, and talk with him briefly about the state of the API. I also learned from him that Braintree is sponsoring the development of a payment module as a reference implementation. I can't wait! I have a few projects percolating, waiting for a stable payments implementation, but that doesn't mean I can't start on development and drop that in when it's ready. The rest of the Commerce 2.x components appear stable enough to work with, now, and I expect a beta within a month or so, judging from what I heard at DrupalCon.
Drupal is growing in to a modern PHP ecosystem.
Some of the best parts of Drupal 8, and the sessions at DrupalCon New Orleans, have nothing to do with Drupal per se but its improved use of components and features from the broader PHP ecosystem. Larry Garfield's presentation on new features in PHP 7 had me excited to simplify and streamline my code, and I'm already refactoring some Drupal 8 code thanks to the "infinite wonder" of Symfony event dispatchers.
Can you tell I'm super excited about Drupal 8? I may have drank the Kool-Aid, but DrupalCon provided validation I'm far from alone. In fact, I think those who refuse to innovate and incorporate D8 into their Drupal practice will increasingly find themselves behind the curve and alone on a shrinking island. That's not to say Drupal 7 sites are "obsolete" today, but any business with a mission-critical Drupal 7 site should start making plans today for an upgrade, or risk rising costs of ownership in the years to come.