151: Drupal 8 DX wins, the PHP Renaissance - Angie Byron 2014 - 2/2

Part 2 of a 2-part conversation with Angie Byron in front of the cameras at NYC Camp 2014, held at United Nations headquarters in New York. In this part of our conversation, we talk about improvements in the Drupal developer- and learning-experience thanks to the major changes under the hood in Drupal 8; the "PHP Renaissance"; and about being welcomed "back into the fold" of the greater PHP world thanks to the nature of Drupal 8 being a sort of "meta project" (my words) that includes parts of many others.

In the first part of our conversation we went over some of the inspiring and thought-provoking ideas we encountered there, and jumped to some of the benefits to users of the technical improvements built into Drupal 8.

D8 DX - Drupal 8 developer experience

"In addition to the user facing changes," that we talked about in part 1, "there's also been very significant refactoring under the hood to essentially to turn Drupal from a procedural and naming-convention-based application to something more object-oriented, extensible architecture, more in line with what everyone else is doing. Dries, the Drupal Project Lead, really felt that with Drupal 7 we had really reached this tipping point. Drupal 6 and below were this really easily accessible, hackable system where you could jump in with little knowledge and hack things together till you kind of got something working and then move on. In Drupal 7 we sort of broke that mold. Drupal 7 became a little more advanced: we used an object-oriented database abstraction layer, we got into things like automated tests, we had a new entity system that required knowledge of all these different parts. It came to a point where it was too inaccessible for 'weekend hackers' to just jump into and fix, but at the same time, the ways that we extended Drupal in Drupal 7 and below were just ... oddball to people who were used to any other language."

"Since we hit this tipping point, Dries felt we either had to simplify Drupal, go back to the old days, which didn't seem realistic because we'd made it that flexible for a reason ... Or, move in the other direction and start embracing these modern standards and patterns that are in other languages and frameworks, and making it more accessible to a broader spectrum of developers. That's the direction that he chose to take the project."

"When Drupal 8 is actually shipping, I think you'll find that if you have any experience in any language other than PHP, it will be really accessible to you. It uses classes, inheritance, interfaces, namespaces – all the stuff that you'd expect from modern programming languages. If you learned PHP before 2006 or so [Angie says "1996" by mistake in the interview], it's going to be a little more challenging for you. Before PHP 5, PHP didn't really do object-oriented programming. If you've never had experience with that, it will be a bit challenging. If you've learned PHP any time from when PHP 5 came out, it's going to be pretty accessible to you. If you've done any work with Symfony or Laravel, or any of the other PHP frameworks, it's all going to look the same to you."

"Our challenge in our community is the subset of people who either learned PHP back in the day (like myself), or people who learned PHP via Drupal, they are going to have a tougher time because there are a lot of concepts for them to learn. The good news is that because every other language works this way, there are a ton of resources out there to help you understand. The thing that I like about it is that instead of it all working off of people's good will about following conventions, it actually enforces guidelines and rules and structures so that programming is actually easier to understand."

"There's a huge commitment form all of the people working on Drupal 8 to get the documentation right, to get the developer experience right so that people come to Drupal 8 and they love it."

Drupal as part of the PHP Renaissance

"I feel like PHP as a language is going through a Renaissance right now. I've seen a lot of people lately trying to figure out how we can better work together as the global PHP community. It's been really exciting to be part of that. I feel that Drupal in particular, as we've started moving towards helping these other projects upstream, we've been very well received and vice versa. The reception has been phenomenal; the opportunities there are huge. There are examples where we have fixed bugs for us and then they get used by dozens of other projects, which feels really great. Similarly, we get to benefit from similar things. When someone fixes a bug in Guzzle and we update to the new version of Guzzle we get new features. It's win-win all around. I feel that it has really helped Drupal's reputation as a project in the global PHP community which is important because the global PHP community is enormous and we can stand to benefit a lot from learning from them and teaching other people what we have learned."

"I think what we'll see in Drupal 8 is something that not only combines best-of-breed technologies from all over the place in PHP, but also something else: Instead of Drupal being good at this much of the web problems out there [Angie holds her hands close together here], it could actually expand to cover the entire scope [now she stretches her arms far apart]. By Drupal expanding to take the entire full stack of PHP down to the low level, isolated framework components all the way up to an application level, I think it's excellent because you learn one platform and you can do anything."