This is a transcript. For the video, see 20 years of Drupal - An interview with Moshe Weitzman.

Michael Meyers: [00:00:00] Welcome to another mini edition of the Tag1 Team Talks, the vlog and podcasts of Tag1 Consulting. I'm Michael Meyers, the managing director of Tag1, and we are celebrating and looking back on 20 years of Drupal. We're really proud to have been a part of Drupal's history. And I'm excited today to have Moshe Weitzman, one of our senior team members here joining us. I've known Moshe for well over a decade.

We worked together many times over the years and Moshe, I think you're one of the few people in the world that have made a commit to every version of Drupal since the very beginning.

[00:00:37]Moshe Weitzman: Well, it's not technically true because the versions came out really quickly in the early days of Drupal. Drupal One was founded on January 15th, 2001 as we know, 20 years ago. And version three came out in like, October of that year. And so that was the first version I contributed to - version 3. Dries had already done 1 and 2 before I got there, but it was the same year of Drupal's founding. when I started.

[00:01:11] Michael Meyers: It's just like the Drupal 7 to 8 release cycle, huh?

[00:01:15] Moshe Weitzman: No, the release cycles have gotten much longer. Since the early days there was no backward compatibility, no testing, no gates. No installer, no lots of things.

[00:01:31] Michael Meyers: Can you give folks just you know the one minute background and you've done so much in the community, so it's gonna be hard to cram it into a minute, but you know, over the last 20 years, you know give folks a sense of, you know, some of the big contributions that you've made.

[00:01:48] Moshe Weitzman:[00:01:48] Sure. Well I've been a core developer for 20 years. I am a maintainer of the User system and the Comment system. In contrib land, I'm the maintainer of the Devel module and the Drush project. I also started some famous contrib projects and they're now maintained by other people like Organic groups.

I started the website which was a pretty awesome website back in the day. And it deserves to be mothballed. Now it's not really doing much.

[00:02:28] Michael Meyers: love it. The O.G.

[00:02:30] Moshe Weitzman: Yes. I wrote the O.G.

[00:02:33] Michael Meyers: I remember you as the father of Drupal testing and the testing harness. I remember like back in the day, you really got that off the ground and in my mind, that's, you know, that led to Drupal's enterprise adoption. That's what enabled us to get through the 7 and then 8 release cycle. So, you know, Drush is used by everybody today. Who uses Drupal. So thank you. I think.

[00:03:01] Moshe Weitzman: You’re welcome!

[00:03:02] Michael Meyers: You know, you've really been a key part of, of getting us where we've been today. Do you remember how you first heard of Drupal and why you chose it?

[00:03:12] Moshe Weitzman: I do. I heard of Drupal on a website called Freshmeat which doesn't really exist right now.

[00:03:22] Michael Meyers: I almost spit out my coffee. I forgot all about freshmeat.

[00:03:27] Moshe Weitzman: Yeah. I'm not sure that name would fly nowadays, but it, it described new open source projects.

I knew fresh ones and Dries listed his project on there. I got curious about message boards and chat rooms and online communities. I read an article in Byte or PC Magazine about open source. And I was like, all right, well, who does what I do, but is open source. What I do - referring to my job at the time - which was with Delphi forums which is a super old, still existing community.

Delphi was an early ISP and so I worked for them. They were transitioned to the web. It was Delphi forums. And Drupal was the thing that I could get installed on my machine. I really wasn't a developer at the time. I was like a tinker hobbyist. I don't have a computer science degree. I was running Windows and still the readme was good enough for me to figure out how to get my LAMP stack set up and get Drupal running on the web server and that I felt this awesome power, which you feel as an early developer, which is like, Oh, these cool programs are just text and I can open them up in notepad and change them.

Which was a revelation to me. I figured it had to be something more complicated than notepad. But in fact, that's all you need. And so I changed the string and reloaded the page. And I was on my way. That's how I got into Drupal

[00:05:13] Michael Meyers: I remember it used to be like AOL and Delphi were, I mean, that was all you had, you know?

[00:05:20] Moshe Weitzman: And AOL, Delphi and CompuServe.

[00:05:23] Michael Meyers: Yeah, those were the big three. I think that's a thread that I hear a lot is: You know I wasn't necessarily a programmer. I had some programming background and 20 years later, I'm, you know, you know amazing. I got this education from Drupal and the Drupal community seems to be a very common thread that, that, you know, open source brought people in and, and help them get to where they go.

And, and that's it's pretty wild to see that is very pervasive. You know and I've seen

[00:05:58]Moshe Weitzman: Yeah.

I mean, the Drupal code base is a wonderful place to learn how to program. And I'll put out a plug for people to use the debugger. It can be a pain to set up, I know, but it's worth spending the half a day or whatever it takes you to get over those hurdles.

Because all of a sudden software programs, they're just like a movie that you can watch. And you just step through step through, look at the variable values step over step into and you can see what, like these amazing developers have put together and learn from it. And that really was instrumental to my learning, how Drupal works.

And when I learned Drupal, it was a way simpler software program. Then when people coming in now, so you really need the debugger now in order to follow what's going on. So yeah, hope, hope people do it that way.

[00:07:00] Michael Meyers: Do you remember your, your first commit or one of your first commit and what that experience was like?

[00:07:07] Moshe Weitzman: Yeah, I do. So the end product of a commit was just emailing it to Dries at the time. That's how you submitted your change proposal. But - or emailing it to the web list that people could comment on and Dries would eventually commit it. We were using CVS for version control at the time. So the, the feature was what's now called External Auth module.

It was integrating the Drupal authentication system with third party systems, any third-party system. So basically during Drupal's authentication step you could like, read a cookie and if the cookie was valid, you'd say, okay, this person is logged in and they would have the username for example, because this was the third party authentication module with authentication integration with Yahoo.

So this was a feature that Delphi forums had. I was actually on the team that managed accounts with third parties. So we did the message boards for Fox Sports, Fox News. was a huge website way back then. I don't know if anyone remembers, lots of other like cable channels and.

Yeah. We did some big forums back in the day and we needed to integrate with their existing Auth systems. And so I knew a little bit about this area and I brought it into Drupal. It was in Drupal core until version six or seven when I took it out, because it didn't really belong to be n core. It's better as a contrib thing, so that's where it lives now, 20 years later.

[00:09:06] Michael Meyers: Wow. It's amazing that it's still around and. And, and frankly, that's one hell of a thing to bite off is, you know, your first commit. That's crazy.

[00:09:15] Moshe Weitzman: I agree. It was like definitely, you know, a little bit deep in the, in the pool to do as a first commit, but like the pool wasn't that big at the time, I didn't have to go learn like all these different systems.

There was like the module system and the user system and the hooks. And like, there wasn't much else.

[00:09:37] Michael Meyers: Wow. Is there, you know, geez, it's hard to ask him because he made so many big contributions, but is there something that stands out in your mind , you know, , I did that, like, I'm so proud to have been part of this.

[00:09:53]Moshe Weitzman: I mean, there are a lot of things in that category for sure. I'm very proud of Drush. Yeah, I think that like, it's been instrumental for almost all Drupal developers and you know, without it, I think people would have fled Drupal. So I'm really proud of that. I didn't actually start Drush this guy, Arto (Bendiken) , who's a great developer, started it, but I picked it up soon after Arto dropped it. And have been maintaining it for over 10 years. So I'm pretty proud of that one. Certainly the website, I think was, you know, part of the rocket ship that was Drupal in its first 15 years. Groups gave us a way to meet in person in many cities around the world.

And you could look at the calendar. And there were 20 different cities that had meetups on a given night. And that was really facilitated by] it preceded Meetup. It preceded, you know, other things that did that for the larger community outside of Drupal. But yeah, that, that was certainly pretty important.

] And you know, I built it because I thought the Drupal community needed it. I also was pretty proud of the Organic Groups module and wanted a showcase for that module. And so Dries was kind enough to point the domain at this website that I set up for, for OGE and for the triple community.

So, yeah, that was wonderful.

[00:11:38] Michael Meyers: Wow. I agree. I think that is critical to the growth and success of Drupal. I, you know, I'm sad to hear that it's not used as much anymore, but. Yeah, Drupal is the community. And so enabling that community to grow flourish, find each other is without a doubt, a major part of how we got to where we are. I'm going to put you on the spot here, is there something that you're like, Oh man, I wish I didn't do that.

Or I can undo that or like, you know, there's a contribution. I, I wouldn't have done again.

[00:12:14]Moshe Weitzman: I, I think that the, the early days of testing I picked, there were two main testing frameworks for PHP at the time, the more established one was SimpleTest and the less established one was PHPUnit. And so I built the early versions on top of SimpleTest and I think that cost us some time. Because it turned out the PHPUnit was the way that everyone else went.

And so it would have been ideal if it had been off built off of a PHPUnit from the beginning.

If memory serves me correctly, the first DrupalCon Barcelona. I remember sitting down with you, Dries, ChX and, and talking about SimpleTest and, and you guys. I don't remember if that's where you made the decision or, or shortly thereafter.

But certainly a lot of thought went into it. It's easy to look back and say, “Oh, you know”, but at the time it definitely seemed like the right decision.

Yeah, you're right. But I think my first prototype, I had to pick something. I picked SimpleTest and that's it. Now you, now you have a road that people go down and even if you have a meeting to talk about it, You have a POC with one thing and you don't have a POC with the other thing and that's how those things go.

Yeah, I should also mention that the early days of testing were pushed forward by Thomas Fuchs and Rok Zlender who were Google Summer of Code students that I mentored and they really pushed forward the framework and Drupal benefited from their work. And then there were, you know, hundreds of contributors who pushed forward the Drupal testing framework.

It's now quite an awesome framework. It's kind of come full circle in that I built a thing called Drupal Test Traits which I hope people check out, which is a way to use the Drupal testing framework for your custom websites. That don't, you wouldn't want to re-install the database every time because they have important content in them.

So if you're writing tests for clients, check out Drupal Test Traits.

[00:14:36] Michael Meyers: Rok, one of my favorite Drupalers. I've worked with many times as well. All right. Favorite and least favorite Drupal feature.

[00:14:49] Moshe Weitzman: Favorite Drupal feature.

Well, I have to say that the Drupal 8 Entity system. It's pretty solid. You know, making custom entities attaching fields to them, base fields, configurable fields having a nice OO API where you can use their methods. There's this project called DEBC discoverable entity bundle classes, which I love, that hardly anybody knows that gives you like full entities for each bundle, like articles and specialized things like that. So the Entity System I think would be my favorite one.

[00:15:38] Michael Meyers: Is that like, a step up from flexi fields and CCK?

[00:15:41] Moshe Weitzman: Yes.

Yes. We've, we've come a long way. I mean, to be fair, those were exceptional in their time. And, and a strong entity system is no longer exceptional. Like that's what you get with Laravel, and that's what you get with any doctrine implementation and so forth. So it's no longer that cool to say you have a great entity system, but like, I think Drupal does have a great entity system.

[00:16:12] Michael Meyers: Yeah. All right. Least favorite feature. What, is there something that drives you nuts or you wish we could change?

[00:16:23] Moshe Weitzman: I think I'm going to say Drupal core is way too big. So it has too many features. I was a proponent, you know, a decade ago of small core. And having a thing that would be the Drupal framework that would be small.

And then having Drupal the CMS, that would be all the features on top. And you know, that was a raging debate a decade ago in the community. It was decided or not decided by Dries that we were going to be both. We were both a framework and a CMS and that's the way it's gonna be.

So I, I, I wish that had gone a different way. I think that Drupal would have benefited from a small core. An example of that, it would be that it would be easier to make a web services specific, you know, distribution of Drupal. Like Contenta is, for example - if you didn't have all the stuff you didn't need, like the theme system and the forum and all that junk that you have to take on, you don't have to enable it, but it's in your tree.

] And I think that that is already a problem. If that stuff is in your code base for audit purposes. And

[00:17:48] Michael Meyers: Yeah, I think we could have, we could have our cake and eat it too. You know, with distributions. You know, small Core, you know, I I'm I'm with you. I think I was in the small core club as well because it didn't eliminate the other choice.

And I really wonder where we would be, you know, like you said, if we had this tiny framework that you could extend and there was a CMS distribution and the services is, you know, I wonder if Drupal would have been adopted and used by more people in different ways, you know, it's certainly been successful.

You know, Moshe, i, you've been part of Drupal for, for such a long time. You know, there are too many people to thank today, but if you look back to the very beginning, when you first got started, are there a few people that stand out that you want to say, thank you for getting me involved in Drupal for helping me in those earliest days, getting up and running as a committer.

[00:18:47 ]Moshe Weitzman: Certainly want to thank Dries, who not only welcomed me, he welcomed thousands and thousands of people into this project that he made. And it's not, not at all easy to lead an open source project. I think he's done it his way you know, with a light touch. And I think the results speak for themselves.

So definitely want to thank Dries. I've learned a lot from ChX who, who joined a few years into Drupal, but certainly was at the first DrupalCon and has been a good friend since then.

[00:19:35] Yeah, I mean, in, you know, lots of people who had simply been great friends at lots of conferences and on projects yourself and Jeremy Andrews also, Eric Schmidt yeah. Have made some really good friendships in the community.

[00:19:54] Michael Meyers: What would you say has been the best thing about being part of the Drupal community?

[00:20:00]Moshe Weitzman: I mean, let's start with DrupalCon. DrupalCon has been so amazing for me. I've gone to every single one. And now I appear to go to all the virtual ones also. We've had a couple of those and you know, as a result of that, I've like gone to Europe when he not 20 times, 15 times you know, on the back of Drupal and that's like an amazing gift to, to more or less see the world as part of business trips on Drupal.

So that really has been amazing. You know, I've taken a bunch of trips outside of that you know, every year to Europe cadence, but like, even if it was just that 15 trips is pretty amazing.

[00:20:58] Michael Meyers:] Yeah. An opportunity to see the world and, and to meet people who live around the world and, and visit some of them or, you know, get to, you know, spend some time with them in their home cities is pretty amazing. Well, Moshe, I thank you so much for joining us and asking these questions. You are without a doubt, one of my favorite Drupalers, and I just want to say thank you. I love turning to you for advice because you are able to say so much in so few words and get right to the heart of the matter, you know, I definitely come to you and been stunned like, Oh, that's it.

So you, you know, you've been invaluable to me on so many levels and, and helped me so much throughout the years. So I just wanted to say a heartfelt thank you. I'm really glad that I got an opportunity to meet you and get to know you and look forward to, you know, the future. And just really appreciate you joining us and giving us your perspective and you know, on the history of Drupal.

So thank you.

[00:22:05] Moshe Weitzman: All right, Michael. Thank you. It's certainly been a pleasure knowing you and hanging out with you and collaborating with you on many projects. They've all been great.


[00:22:15] Michael Meyers: Cool Moshe. Thank you. Really appreciate it. I would love for you to do a team talk on the debugger, like a demo. That sounded really cool.

You know, it doesn't need to be set it up, but maybe like here's how you use the debugger or something. Let me know if there's like a, you know, a way to incorporate that it's like, you know, Moshe uses a debugger to teach future performance.

[00:22:41] Moshe Weitzman: I don't know. I'll think about that one. That sounds good.

[00:22:45] Michael Meyers: Cool.

All right, man, take care.

[00:22:47] Moshe Weitzman: All right. Bye. Bye.

[00:22:48] Michael Meyers: Bye.