This is a transcript. For the full video, see On 20 years of Drupal - An interview with Fabian Franz.
[00:00:00] Michael Meyers: Hello, and welcome to another Tag1 TeamTalk, the vlog and podcast of Tag1 Consulting. I'm Michael Meyers, the Managing Director of Tag1, and today we're celebrating and looking back on 20 years of Drupal. Tag1 has a long and proud history of contributing to the platform and we're meeting with members of our teams, discussing their history and participation in the community.
I'm joined today by Fabian Franz. I've known for a very long time. Fabian, can you give people just a really quick overview of your current role in the community and you know, 60 seconds, some of the big contributions you've made.
[00:00:35] Fabian Franz: Sure of course. So first let me see, I, I love your Zoom background. It looks very authentic now. Um, so my name is Fabian Franz. Right now, I'm a Drupal 7 core maintainer. Um, I've brought Twig into Core the original patch, I've worked on the caching system and Drupal 8, 9, et cetera is powered by Dependency injection container I've wrote.
So those are pretty much the biggest contributions, besides I added a lot of contrib work. And other things, but core-wise on Drupal, that would be the largest ones.
[00:01:16] Michael Meyers: How long have you been a part of the Drupal community? Uh, and do you remember how you first heard about Drupal and why you decided to start using it?
[00:01:26] Fabian Franz: Sure of course. So I've been a member since 2009 and actually Facebook got me into it because at the time there were lots of websites. They wanted to add Facebook connect and before I'd been working in Brazil on something completely non-web related but it was remote desktop computing. So more C++ stuff.
Um, And the only website we, their head were uh, JavaORM, which was freaking complicated to spit out some maps things. So, and at that time, I, I had a friend and they needed someone to do this Facebook integration, with this thing called Drupal, never heard about it before. Um, and I started doing it and ut was pretty simple because, well, it's just code. So we did do it. You look at Facebook's APIs. And so we integrated it. Then later we met did some maps and Facebook application. And so I got it more and more into that. And then I had the idea of completely porting the Drupal 6 site.
I did these Facebook integrations into Drupal 7 and let's say the project got a little bit out of scope on the budget I had planned, but I learned a lot about it, about performance, about how to do even like real-time updates. Like we had a search for flights where it was updating in real time.
Whenever the, the engine at the backend came back with a new one. So it was updating it then. Pretty advanced for that time. Yeah. And so that's kind of how I started with it. And then, yeah. And then I did some things and things didn't work. And so,tThen I fix things. And because I was used to being open source and everywhere from my history with Live CDs, Linux Live CDs, no ---.
And as things before, what did I do? I just contributed my code back and discussed, Hey, couldn't we do it like this? And so I contributed more and more. I think one of my first patches was actually to To some geography based modules like Occasion. And so I don't remember anymore. I just remember a interacted with Brandon-- bdragon.
[00:03:58] At that time. That was kind of fun. Who's now a colleague of mine. Um, and so that was pretty cool.
[00:04:07] Michael Meyers: You talked about one of your most major contributions. Is there something that you're most proud of?
[00:04:16] Fabian Franz: Um, so um, I think most proud I'm still about that Twig patch. And I think it's because it was the first, it was committed live at BADcamp and it was like at that moment it was a feeling of me and ChX.
Against a lot of the other community members that were like, very concerned about performance, etcetera, like that where in the end, I've written a whole framework for automatically profiling the performance of single pages and Drupal. Uh, this a very interesting method of finding the minimum, which by now I would probably use more on average.
About a hundred runs, not the minimum, but at that time it was pretty much off the idea that the minimum is what, once I found it, then I know exactly that this is how fast it can go in theory and yeah, thousands of runs it's generally possible on not on dedicated hardware, it's not possible on the cloud and dedicated hardware to find the minimum.
[00:05:26] And so we did that and yeah, and to get Twig into Core before a feature freeze, which at the time seemed inevitable later, it was delayed for official industry initiatives, but yeah, that was a possibly big thing. And so, and then also later it was true community spirit at DrupalCon Portland, where essentially Themers taught other Themers how to do profiling.
And we profiled every single template in core till we had the numbers. And we're sure of where we could do as this and we wouldn't regress as much. And that was nice.
[00:06:06] Michael Meyers: Well, you talked about, you know, changing the minimum to the average. Um, and you talked about how you've learned so much over the years.
Is there something that if you can go back, you would completely do differently or change or not to?
[00:06:25] Fabian Franz: Um, it's a little bit. Hard to say the thing that I would have done but they're both not in my control obviously, but I think Drupal 8, 9 should have been its own. Um, Product like call it, the next drop and Drupal 7 should have continued in a long term support, like fashion as its own project, then Backdrop would have never happened.
And uh, people could have continued to pursue a steady platform or use the shiny new thing. And they would have had the choice that is kind of the, the change a would have made. That was never in my control, but I think that would have been the most harmonious way in hindsight.
[00:07:19] Michael Meyers: Yeah. The transition from seven to eight has been challenging on many fronts.
Uh, eight is essentially a different platform in every respect, so, or most respects anyway. Um, all right. Favorite and least favorite feature of Drupal,
[00:07:39] Fabian Franz: [00:07:39] Which platform?
[00:07:43] Michael Meyers: Any of them. Is there something where you're like, wow, this is one of the best things about your bowl. Um, and you know, something that really drives you nuts.
[00:07:54] Fabian Franz: So I think the best part of Drupal is it's in a way for me right now, it's maturity. Um, because it's Also from, from a Drupal 7 maintainer standpoint, the maturity, it's a very proven stable platform.
There's still some security issues here and there, but it's nothing to break the bank right now. And stability and, and maturity is, it's a, it's a nice thing. There's also a lot of things, so original, most of the, of the evolving platform thought about, and I liked that a lot. I also like from the newer things, like the Drupal 8 9, I like the, the new and shiny features like that.
Um, yeah, what I dislike the most, isn't a feature or a thing per-se. So you could say that. I still think the theme system needs a complete overhaul in a new component-based world. And I might consider speaking about that to DrupalCon again. Um, but what I dislike the most is the idea that we put within, in Drupal layer upon layer upon layer, upon layer, upon layer, upon layer.
So, especially with Drupal 9, I think we as a community tended to have a point of like before we were all just procedural code and now we need to be the perfect object oriented abstraction code. And I think. It's a good balance between the both would personally be better. Um, because if you over abstract too much you land, like in Java world, if you just write procedural.
In the Java, but that was not as successful as people hoped. Um, and if you just write procedural code, it can happen that you land in spaghetti land real quick. So you have spaghetti on the one side and you have uber abstraction layer on layer layer out on the other side. And Drupal, especially is in my opinion, prone to too many layers.
And I think the big challenge for Drupal 9, 10, 11, whatever. Is to peel away layers to introduce new API set up however much more flat. That are also radically stripping features and are only catering to the 80%, but do that in a fast and efficient way. And not to add layer upon layer because we have these old layers.
Now we have new layers upon and etcetera, like that, and I'm pretty happy in that we have like a perfect caching system in Drupal, I think that challenge, especially regarding new things is, is coming towards it really improving the speed and you can't improve the speed. If you don't reduce complexity, it's physically impossible. If you have a core stack of 1000 things if you can cache up to 10, that's wonderful. But when you're building the cache you still have just some cool stack of 1000 things in it. I think that's not necessarily necessary. You have to come back to maintain this team system, why decoupled, Drupal I find.
So, so, so liked where they are so much because it reduced complexity. You have one API point. They create credits. For example, we are graft 12. You can variable control. Those database queries a little bit. And you have this one point and you don't have to deal with all of the complexity of the page request, of the.
Um, of the flow, etc. Like that you've cut off all the layers essentially. And by doing that you've reduce complexity and so decoupled sites can be faster in that. Um, so yeah, there was one of the points. Yeah.
[00:11:52] Michael Meyers: So Drupal's history has long been driven by, or should they Drupal success has long been driven by innovation.
I look back to, I don't know if it was four or four or five. I think it was four. Uh, Marco, you introduced taxonomy for example. And that was radical at the time, you know, delicious tagging really wasn't a thing yet, you know, that came shortly thereafter and a lot of people adopted Drupal at that time because of taxonomy and what it offered.
[00:12:26] Does anything stand out to you as a feature that was a catalyst for the success of Drupal?
[00:12:34] Fabian Franz: Site building, Drupal had no code because before now code was a movement. Site building. As essentially you give a site owner a site, they can build with it, and they can do so much with views, with layout builder, with fields.
You can create whole structures without knowing anything. My sister was able to create a - created little site with fields and everything completely by herself just by, by creating those fields like that. And that's also why I think it's, it's a little bit of a shame that this site building experience kind of ends at the theme layer because my dream is that we have components where that you can configure via the UI as well, that you can preview so simple.
They don't contain much business logic. They're just for display purposes and you can preview them, and we take the experience kind of all the way from the field system. The entity system down to the theme system. You can build everything yourself, but you're not. Like restricted, like Squarespace where you'll have like layouts and then you drag things around.
That's nice and shiny, but takes care of and things like that. Many people that can't do CSS they can do theming they can understand it. Um, yeah, they can use it to utility classes and you can put them on layout builder, for example, but now saying you could, could easily add every field. You could alter this class as you could have components for those fields to configure them differently.
[00:14:08] And I'm not speaking only of templates. I'm really speaking about about a UI where you can configure all of that on the fly. And there might be some contrib models out there already doing part of that. Um, and I think that is for me the next step. Um, the other thing in terms of innovation is I think Drupal has always embraced things like JQuery early with backbone and underscore, underscore still around backbone a little bit, going away over the time, but it was bad.
[00:14:46] That, that didn't turn out the bad on JQuery was big, but one of the things that and again, this comes back to reducing complexity. Um, and here we have, again, this, these two worlds of people we have on the one hand, the people that like, know code that are site builders that would like to, to not deal with Git and all of those things and composer, and they just don't want them on the site.
They want to build it. They want to download a module. They want to install it like that. This was to the, in a way, a little bit of the old way of Drupal and now all this enterprise shiny things came in. There's still a lot of done, I mean, layout builder is great for site builders. It's fantastic. Even though it was built a little bit enterprise focused originally because those was also large users of that. Um, but I think we shouldn't leave the small people out of that in the end. Um, so yeah, and the problem is now if you, if you want to be like Laravel, okay, that's fine. You can be, or like Symfony, you can be, but then go completely through it then say we don't have runtime configuration of modules anymore. You need to do those changes here. But right now we are in a weird hybrid where some things you can only do on the code base and you cannot do it as a sidebar anymore because so many people push for it for this more being an application.
And then we have other things you can still do as a site builder, but maybe shouldn't do. And this creates this little. Interesting conflict, maybe Drupal needs this conflict. I mean, conflict between a large core and small core and API application was always there. And in a way, also the, the effect of what do you configure statically in the code?
[00:16:41] What is dynamic in the database and how do you combine those two? But for me, the vision of Drupal and what made it great is this. Site building role and less the application role., because if I want to build an application, I probably more use Laravel if I really want to rough things sort of rough, queries and the rough edges of it.
[00:17:03] But if I want to use the entity system and this site building approach where, like in a Drupal 9 site 90% of the code is essentially configuration. That's great.
[00:17:15] Michael Meyers: I couldn't agree. More site building has been a huge thing for Drupal. Um, I wish, you know, there was more of a no code, you know, promotion aspect that people talked about it more in that context.
And I agree, extending it in, in the fashion you described would make it even more powerful. Um, all right, so I'm going to give you a magic wand. Now, if you were to wave this magic wand and you could make Drupal do anything you could add a killer feature. You can change, you know, whatever you want, what would it be?
[00:17:52] Fabian Franz: I would add Preact to Drupal in the same way. We've added ---- and HTM to Drupal in the same way we've added jQuery. And I would make it really simple to write components that are working on the server on the client that make it really simple to embrace React without having built steps without any complexity to make using React.
As simple as we use jQuery to maybe I would also add a --- to it, just to have that available, because it's fantastic. It's great. For, for many things, you just. When to do a little bit of things like, so we're budget. Here's how that, now that this is how I would think, I would not put the enterprise React in it.
I would say a small little Preact into it and allow people to write interactive sites. without knowing much about it and then I would gradually take the admin experience, take the Drupal nine toolbar, rewrite it in Prereq, just put out JSON structures for those admin tools and drive true purpose set, not a headless approach, but I need to write an API, but an approach where essentially Drupal is producing.
[00:19:05] Not, not a, not a graph of, of, of templates, but Drupal is producing data. In various buckets and this data can be consumed by front end and packet components alike. This is what I would change.
[00:19:19] Michael Meyers: Awesome.
What's been your favorite part about being a part of the Drupal community?
[00:19:28] Fabian Franz: Ah, DrupalCon Portland? This is like community spirit, just introducing Twig to the community as a great thing.
And. I still like Twig. I mean that. That's not the point, when I speak about new components systems, you could implement with Twig, you could implement with something else. Um, in the end a lot of co-complexity, we inherited is not inherent to Twig, but inherent to Drupal. And I'd like to make Drupal as simple as writing React applications, decoupled, but without all the overhead of decoupling. So Drupal comportment is beginning of giving the themers back a ways a complete initiative , not built originally by, by an official initiative, but then unofficial an initiative that only came to life because people believed in it. Morton believed in it, Jen Lampton believed in it.
[00:20:26] ChX believed in it and ChX wrote on his blog and trying to help out. This is how I came to Twig. A Chx wrote on a blog and try to help out. But I've ran into this roadblock here and maybe someone can solve. And I was like - problem not solved. That's for me, my name, my favorite experience in the community.
[00:20:49] Michael Meyers: When you first got started, I mean, today, there's probably too many people to thank, but when you first got started and were introduced to Drupal.
[00:20:58] Is there anyone that stands out as someone who, you know, helped you a lot helped you get started that you want to thank for sort of indoctrinating you or helping you get up and running with Drupal?
[00:21:11] Fabian Franz: Sure. Um, yes. Um, the first person I want to thank is Catch, Nathaniel Catchpole. Um, I mean, we have a shared interest of performance in, so over the years we've worked closely in improving performance.
Um, he's a core committer. He was already a core committer when I tried to bring Twig in. So it was fine and he, he essentially mentored me a little bit on the process of what to expect and not to expect. Um He also brought me to Tag1, which I'm totally grateful for. And the other person would be ChX who was like discussing with me in the, in the issue queues and little uthings in that.
[00:22:00] Um, so yeah, there would be. For me the most, two influential people of the Drupal community that come to mind. And then the next persons would be MortenDK , Jen Lampton all those people in the Twig initiative , um hope I asked about this ride, C O T T S N E R. Um, and um, yeah, more in a way I thank the Twig initiative a lot and all the people involved there, because that was great. I mean, later I've made friends with Alex Pot. Uh Crell, learned some other perspectives of how you could think and see things. But I think that the biggest influence though, were Catch and Chx at the beginning.
[00:22:51] Michael Meyers: Awesome. Fabian, thank you so much for taking time out of your day to give us a walk down memory lane. Uh, really appreciate you joining us. Thank you for everybody who listened. Check us out at tag1.com/tag1teamtalks. We'll see you soon. Thank you.