Transcript: Django Software Foundation - Frank Wiles
Hello, and welcome to another episode of Django Chat. In this episode, we're joined by Frank
Wiles, president of the Django Software Foundation, to talk about how Django is governed and how
people can join and become more involved in the community. I'm Will Vinson. I'm joined
by Carlton Gibson, as always. Hi, Carlton.
Hello.
And Frank is our special guest. Hi, Frank.
Hi, everybody.
Can you give your quick background, how you got into Django and the many hats that you
wear today in the django community so yeah so my uh my involvement with django goes way way way
back um i worked at the same company as adrian and simon and jacob and just in a different department
and they actually took over the web operations of the lawrence journal world from me at the time
and and uh that's a long story that's not very interesting um but uh we do have to ask though
what tech were you using before jane i i know it was pearl i was i was i actually i've written a
book on pearl that's how in the pearl i was good that's the perfect answer i take your php and i
trump you pearl yeah yeah no i worked mostly on mod pearl and so um yeah so i didn't need php but
um back then so they uh decided that they uh wanted to build something in python and i was
like, Oh, white space. That's weird. And so I, but you know, I was like, that's fine. There's
nothing wrong with Python. And so they went and they, and they, they said, we've built something
kind of cool. We kind of want to open source it. And so I helped argue with the suits and the
lawyers for open sourcing Django because I'm an open source guy, not so much that I was a Python
guy or even use Django. It wasn't until years later, I ended up sharing an office with Kaplan
moss that i ended up uh ricky ensley of she used to be at sysadmin magazine linux pro mag she's at
open source.com now um and red hat she uh asked me to interview jacob because she saw that they
were creating the django software foundation and she knew that i shared an office with him
and so she's like could you interview him and maybe do a little intro to django and i was like
yeah sure i can do that i'm like crap that means i gotta i gotta learn python and and i gotta learn
Django to do this intro. And I did. And I'm like, well, this is so much better than all the stuff
that I'm using in the Perl world and just switched. And then Jacob joined me and Rebsys and the rest
is kind of history. So what's the timeline for when that happened? So who had the initial idea
for the Django Software Foundation? Was it the early three? Yeah, it was the early three. And
actually uh the simons that owned the the lawrence journal world um they they all had a discussion
and and realized that you know it would hurt adoption if this was you know seemed to be owned
by a single company that might derail it or try to claw it back in some way um and so from the very
beginning of jango uh it wasn't it was probably a couple of years it was probably three or four
years um after it was open sourced before the dsf was created okay that's still pretty forward
thinking though right i mean yeah i mean now that sort of makes sense but that i don't think was as
common i mean that you guys saw the future issues that now plague i mean like uh you know react had
that whole thing recently with facebook with facebook gonna take it and yeah that's the same
I mean, no, no, no, Jess.
Oh, yeah, yeah.
Well, that was part of the reason why I pushed for the BSD license was because they were
building a commercial content management system that they extracted Django out of called Ellington
that they were worried about.
Well, could something GPL, could we accidentally trigger the viral nature of the GPL?
And I was like, probably not.
You'd have to really, you know, bend over backwards to to to do that.
But BSD means you don't have to worry about it and you can go your own way with Ellington and Django can go its own way and it doesn't matter.
So you're currently the president of the Django Software Foundation.
Were you the president from the beginning?
No.
What's your role in terms of, yeah, give us the history of the Django Software Foundation itself.
When the foundation started, they set three board members and it was Adrian Jacob Kaplan Moss and a guy named Dan Cox, who was in charge of the online interactive department of the Lawrence Journal World.
And that was kind of the company wanting to assert some control, but not a majority control of Django kind of for the for the next few years, at least.
and so after about five years jacob decided that he wanted to step down and that he thought he was
getting too frazzled with too many hats and so they they were like okay well we need to find a
replacement for jacob the three of them talked about it and they're like it should either be
uh russ russell keaton gee or because he's got a a good relationship with the core team or it
should be Frank because we know him and he knows business and, and nonprofits and law and that kind
of stuff. Uh, and so they kind of debated it for a while and they decided it should be Russ
because of the core team aspect of that was much more important. And then Russ decided to step down
after five years and put it up for an election. And then the community elected me. So it was kind
of the original board's will being extended a decade into the future so unofficially we kind
of have a five-year term is what we've decided so i've got like two more years and then i'll you
know i'll probably step aside you know okay and what goals do you have in those two years um my
my big goals are to to help automate more of what goes on right now we for for being a web framework
uh we we don't do enough on the web that we in terms of automation one of the things that's
coming soon here is uh that by the time this gets released it'll it'll be announced uh we put out a
call for proposals to help automate becoming a member on the website right and uh we we only got
one proposal uh but it was a great proposal uh it was from jacob caplan moss and what he wanted to
do was take the money and pay somebody else to do the work
and mentor them.
Oh, that's perfect.
Right?
So find somebody who's interested in maybe helping
contribute to Django, but doesn't feel comfortable
and he'll mentor them into making these changes
for djangoproject.com with the hope that they grow
into perhaps a core contributor.
Yeah, that would be super.
Yeah.
That's one goal, the other is obviously I
think about um i think about the end game probably more than most people would so i worry about what
happens when django declines do we have enough money in the bank to gracefully sunset django
do we have you know when the sponsorships dry up for hosting and if there's some legal fees at the
end do we have 20 30 grand set aside to make sure that we can kind of gracefully sunset things in
the in the waning years whenever that does happen right so you're creating a living will sort of
yeah yeah can you just hit the high points of what the dsf does right i mean because then there's a
number of things but what if you're going to do it in hierarchy beyond you know uh paying carlton
and marius as the two django fellows so i mean in order of uh what i think is the most important
is definitely paying for the fellows
and keeping Django's development marching forward
in a very predictable and well-run way.
I think that's the biggest impact we have.
And then we also are the clearinghouse for the money, right?
We can raise money from companies
who would rather not give $200 to each Django Girls event
because it's logistically hard.
They would rather give us $10,000, and we then distribute it amongst various groups.
We know the community better than them, and they can write one check instead of 100.
What are those groups? I mean, Django Girls?
Django Girls is, yeah, Django Girls is a lot.
We get a lot of requests from regional Python conferences.
So, you know, the PyOhio's, PyTennessee's of the world.
a lot in um non and not in north america actually is where we get a lot of those from
um and then sponsoring a lot of events in africa recently we've been kind of uh getting a lot of
requests and it's been really growing in africa quite a bit those are those are the big jango
con we you know uh jango con is is is self-supporting at this point uh but but yeah we do help uh
support with that and JagerCon Europe. But yeah, those are the big kind of outlays of where money
goes. But then also we technically own the intellectual property and the trademark for
Django. So we defend the trademark if we see somebody using it in a way that they shouldn't
or that's misleading or would be confusing to consumers.
Does that happen a lot?
And not as much as you would think.
I can't think of an example where I've seen that, but I know that's a,
you know something you have to watch out for um the the most recent example is we had somebody
name of uh and they didn't do this in bad faith or anything they named a library in npm they they
called it django and what it did was it shelled out and and and provided a way to use django
templates from javascript which is not a not a bad use and it was just confusing because you could
npm install django and so you know we had to you know go through a legal process and discuss with
npm for a little while how to because it had dependencies and things and so we you know we
had to have a little discussion basically it was nothing nothing bad but and then they eventually
renamed it django template and it's like okay we're cool with that like that's that's a better
name for the library you know and the board the the board is what five six people six right and
what are the roles there because you're the president yeah so the president is that a big
commitment um it's not huge it's probably less than most people think um i would bet i probably
spend 5 to 15 hours a month um kind of depending upon the month certain months are a little busier
than others when it comes to like tax time and um election time and things like that that are a
little a little busier but yeah it's not it's not a huge commitment but you know you need to be
somewhat responsive to email and some issues are more important than others and you know you want
to make sure that like you know like for like carlton if you have an issue with access or
needing something like i want to try and jump on that really quickly because i want to unblock you
so you can be productive right other requests are hey could we get some jango stickers and that can
wait a couple days you know so you kind of you kind of triage things and uh and and deal with
as best you can. Then the vice president position is there if I were to get hit by a bus or in the
event I can't make a board meeting, they preside over the board meeting. And informally, they also
take charge of bringing in new members and onboarding them. The secretary obviously takes
minutes and deals with a lot of the paperwork. The treasurer deals with all the money and taxes
and things like that um and so those are all the all the key positions okay but so i often think
of like the board as having like the final kind of governance role of django you know if we all
fall out on the developers list and you know something goes wrong there and not that we would
but you know it's very consensus based but what is the um sort of the what is the board's position
there is that as the kind of um arbiter of last resort yeah i mean we definitely are we've taken
on that role definitely in terms of like code of conduct and things like that. Um, I, I don't know
how maybe previous presidents would have viewed it, but like right now, the way things are, like
you said, everything runs well by consensus because we own the trademark and the intellectual property.
If the core developers were to go crazy and, you know, just all leave or whatever, we would be able
to claw back control of the development right if we had to right that would be the nuclear last
resort option but i don't ever see that happening but yeah i guess at the end of the day if core
development fractured or stopped in some way we would have to probably step in and we'd be the
logical ones to do it but i don't see that ever really happening no but it's like um as you say
it's like the the the thing of last resort and the board is elected by the dsf yes so can you tell
tell us how people might join the dsf um so that's one of the the big uh confusions is that anybody
can join the dsf we're we're we're loosening things up we had a restriction of you kind of
had to be invited in by an existing member which just slowed things down and it's unnecessary
You know, previous incarnations, I guess, of the board, we're worried that bad actors
might get voted onto the board.
And I just don't think that's practical.
I just don't think that's ever going to happen.
You know, I can't imagine that somebody out there is going to be like, you know what,
I want to join this nonprofit and run it into the ground.
And so I'm going to get 200 of my friends to become DSF members and vote me in and more
ha ha ha like that's just never going to happen right like no so you wouldn't there's not going
to be like a dsf brexit yeah no i just yeah it's just never it's just never going to happen right
so why are we why are we putting this artificial speed bump in to getting people in and getting
people involved uh because as you know we all know in open source the littlest speed bump turns
people away you know uh and and that's just counterproductive to our mission right so
So right now there is a membership form on the site, and you fill that out, and we basically check to make sure that you don't have, like, existing code of conduct violations, and you're in.
And we're going to actually make that process more streamlined and smoother.
You know, it's nice if you get nominated by an existing member, like, hey, you should be a member, because sometimes people don't feel like they're maybe worthy or they should join.
but you know if you're listening to this you should join you're worthy come on in yeah and
like people some a lot of people i found don't know that the dsf exists that the django software
foundation is a thing and that you can join and that you should join and you know that's where
the future of django is going to be built and decided yeah yeah so what so you mentioned frank
the you know at some point there'll be a decline in django but looking forward you know what sort
of upsides do you see because when i look at the landscape i'm always struck by how few great web
frameworks there are out there. I mean, there's, you know, in terms of like a batteries included
approach, there's Rails, there's Django, I guess maybe Laravel. JavaScript doesn't have anything
like that. I mean, there's so few. So I wonder, you know, what's the future of Django, right? I
mean, Python is on the ascendancy, no question. So it seems to me like Django should do nothing but
grow. So I guess if, you know, if things go well, how big could Django get, right? Like,
What are the potential future challenges for the DSF, you know, if it 5, 10Xs in terms of the people using it with, you know, Core Django, with Django REST Framework?
You know, we talked to Tom Dyson last week of Wagtail.
You know, that CMS is incredibly popular.
It seems just to me like upside all over the place.
I'm curious how you view it.
Yeah, I don't think we've reached peak Django by any means.
When I say I worry about the decline, when I first got on the board, I started to think about what are some of the things that more technical people that have less kind of experience in organizations, perhaps, or in businesses, maybe wouldn't plan for or think about.
And so I wanted to make sure that we had a reserve, that we were, you know, taking in more money than we were putting out, but not an egregious amount, right?
Like we don't need a huge safety net, but we need some safety net.
You know, are there some future ways in which Django would morph where the DSF would need quite a bit more money?
That could happen. I don't know.
You know, I don't have an answer. I'm just it's an interesting question.
Yeah, no, absolutely. Yeah, absolutely. It is an interesting question.
I mean, I think that, you know, like most software, you know, an extra copy being out there doesn't add work to the DSF by any means.
And, you know, only a fraction of people who use Django ever report a bug or anything like that.
So I don't know that it would it would drastically change how things work kind of in the in the board and in kind of standard development.
I do think that Django has room to grow. Right.
And I think if it's going to grow anywhere, it's going to grow in terms of REST framework and APIs.
I think that the, you know, the trend in the industry, I think the importance of things
like Django forms and Django templates will continue to kind of diminish over time.
You know, I'm, I'm a consultant is my day job.
It's probably been a year or more since I wrote or worked on a Django form, right?
It's, it's all APIs at this point.
Um, so I, you know, and you're working in teams, right?
Cause this is something Carlton and I have talked about.
If someone, you know, a solo developer, you might not need or want an API, but certainly in a team setting, yeah, if you're a Django developer, you're primarily an API developer at this point.
Yeah, well, and people a lot of times want the really rich front ends, you know, in JavaScript and React and Vue.
And so at a certain point, if 90% of your site is going to be that, it seems silly to do 10% in something else, you know.
even if it's perfectly fine, right? Like there's a lot of times I'm like, why am I not? Why am I
not doing this in a Django template? This would be so easy. But it's like, but then I have part
of my front end and part of my back end mixed. And it's just it seems silly. Yeah. Well, I so one
thing I wanted to also ask about is, so I remember when I was first getting into Django, which not
that many years ago, seeing how Adrian and Jacob are both retiring is retiring as BDFLs. I just
wondering how did that influence things with the dsf you know to have two bdfls you know so that's
the the python benevolent dictator for life that you know because guido van rossum just stepped
down from his role um so they sort of beat him to that um but did that have any practical change
on the dsf and the day-to-day running of of django no i mean the so you know jacob capo
moss is my business partner in revsys and so he talked to me about it before you know he's like
I'm thinking about doing this. What do you think? The thing was, is they weren't doing anything.
Right. They were there as the Supreme Court. Right. And they hadn't had to hear a case
in three years. And so it's like, why are we you know, we're just we're just getting this title.
We're just keeping this title. And and the community doesn't need us. And we don't we
don't need the title. Let's let's put it down and set an example that this can be done. Right. That
you can relinquish control to the community who, you know, at that point probably knew better than
them what should be happening because they, you know, removed themselves further and further away
from kind of the day-to-day. So practically, yeah, I mean, you know, they still have logins
to some things because they're part of the core team and they're trusted members of the community.
So, you know, if I get hit by a bus that, you know, the Google domain still still, you know, can be recovered and somebody still has access.
But, you know, they don't have a day to day role.
Got it. And that seems similar to the to the proposal about dissolving Django core itself.
Right. And, you know, that doesn't seem to be that active now and it doesn't necessarily in the same sort of way.
And so to send a signal saying that's not needed kind of sort of parallel.
I kind of see it as, so back to my pearl roots, many, many years ago,
years ago when they first started development on Pearl six, uh, Audrey Tang, um, started a project
to build the compiler essentially the, and, uh, she did it in a way that was revolutionary in that
if you asked for a commit bit, you got to commit it and just opened it up and, you know, the wheels
didn't fall off. Right. Like that, that wasn't the reason Pearl six took a decade to finish.
Right. Like, but it actually, the development worked fairly well because if somebody is like, Hey, I'd like to help, they're probably capable and, you know, they're probably not going to cause more trouble than they're worth. And if they do cause more trouble than they're worth, you coach them or ask them to leave or ask them to stop. And they probably would. Right. Like it's not, you know, so I think that we're heading, I'm not saying that we should do that, that we should just give commit to anybody, but we're heading more in that direction of becoming, making it much more open and much easier to contribute.
And I think that helps the project.
Yeah, no, I mean, you know, I've talked about this a couple of Django cons that we have a small group who really do contribute and contribute a lot, but we've got a massive community.
And if we can get more people involved, that just brings the issue count down, it gets things done faster, it, you know, makes the ecosystem healthier and more for that.
So one question that I think would be really interesting to hear you talk about, Frank, is when, since you run a Django consultancy, and you have clients coming in who don't necessarily care what the technology is, they need a solution. You know, when is Django not a good solution? How do you advise clients on that?
So you actually asked me about that a while back on Twitter as a prompt for a blog post.
I've actually been thinking about that one because I think that's probably the most interesting one I got.
And I don't have a good answer because there are very, very few scenarios I can think of where Django is a bad decision.
I mean, if you have the world's highest traffic site and it only changes three times a year and it's got four pages, I would use some sort of static generator, right?
Like, you know, if it's not dynamic at all, get Jekyll or Hugo or something like Django would be kind of overkill.
But if it's anything more dynamic than that, Django is a fine decision.
That's not to say that Flask, Bottle, Falcon, you know, Sanic, any others aren't good choices, too.
It's just that I think sometimes people get a little hung up on, well, if I'm not going to use Django templates and I'm not going to use Django forms.
And I'm, I'm, you know, then, then I'm somehow bloating my app with this megabyte or two of code
in my Docker container somewhere. Right. Like it just doesn't matter. Like I don't use,
I don't use all the Python standard library on a regular basis. It doesn't hurt that it's there.
You know, we, we have my, my new laptop has two terabytes of storage in it. Like it doesn't
matter if the project has a couple extra megs of source in there. So, so yeah, I, I, the only
things i can come up with are like when you have really really small requirements super super small
microservices you want to do it in an entirely async manner and you want to do it in python you
you don't want to do it in go right like so make you know something it's something like that like
it's it's it really comes down to i have a very small service it's got two endpoints and very
little logic and i needed to be blazing fast and it's internal only and i don't need to worry about
future proofing it for things and and security as much you know that's i think one of the things
you get with django this you get this confidence that there's been lots of smart people who've
looked at the security over the years and continue to look at it um and you know that you get a lot
of safety out of the box yeah that can that continue to look at it thing is you know it's
because it's so active because it you know we have a release every night months and all the rest of
it it's like you know i can build something with django now and it'll still be there in a year
it'll still be there in two years to be there in three years you know without me having to do it
all myself yeah i mean i think and the question of when not to use django because i think of
beginners since i i do a lot of teaching and i mean there is there is a learning curve to django
um i mean as i've talked about there's just a bigger learning curve of web development
which I think is, you know, whatever framework you start with, you associate the pain of that
with the framework. But I, yeah, I think, I mean, Django can be, you can build hello world sites
in Django quite quickly, actually, you know, flask isn't necessarily a faster thing. I wonder
if maybe with the async stuff, you know, way down the line, it seems like maybe there'll just be a
revolution in how websites are done that Django just can't keep up with async or otherwise that
would unseat it. But for a traditional website, the more I get into my career, and again, I'm the
most junior of the three of us in terms of going along. I sort of don't care as long as it's
decided. I'd rather use tools that have a robust community and also tools that I know. It's fun to
build side things, but boring technology is a positive thing. And the fact that for me, Django
is a little bit boring at this point is great. It's not a differentiator. It doesn't get in the
way of stuff. Well, I think too that people discount the human side of this equation quite
bit. Came for the technology, I stayed for the community is a quote you'll hear a lot of people
talk about in the Python and Django communities. And it's true. Everybody's nice. Everybody's easy
to work with. You don't run into problem people anywhere on the level that you do in a lot of
other projects. And I think that that means that we get to work together better, which means we
produce better software and faster and more of it right i think that's probably i mean that's
set by example that's the example you know you know you set and you've talked about the decisions
that the dsf has made i mean carlton you know obviously the example you set in speaking and
interacting with people i mean the top django people are all really nice generous people
without exception um so that really trickles down i think to the the community as well whereas if
you have a I don't know a Linus type of person at the top that also filters down yeah that filters
in the mirror and I you know I think it's telling that we have one award and it's for being nice and
welcoming new people right we don't have a who pounded out the most code award or who won the
most technical arguments award we have the who was the nicest and and and helped new new users the
most award yeah yeah yes well any any last things we want to mention on this uh talk because i'm
really excited to to share the you know dsf because again i i wasn't aware that it existed
a couple years ago and um you know you've answered some questions i had even though i've read the
docs on what it is and how it works yeah i just just reiterate you know join the dsf join the dsf
you know we'll provide a link so everyone can do that great all right well thanks frank so much
for joining us. And Carlton, I'll talk to you next week. All right. Thank you. Thank you, Frank.
Take care. Thanks a lot.