Transcript: Django 20 Years Later - Adrian Holovaty
This episode is brought to you by Six Feet Up, the Python, Django, and AI experts who solve hard software problems.
Whether it's scaling an application, deriving insights from data, or getting results from AI, Six Feet Up helps you move forward faster.
See what's possible at sixfeetup.com.
Hello, welcome to another episode of Django Chat, a podcast on the Django web framework.
I'm Will Vincent with Carlton Gibson. Hey, Carlton.
Hello, Will.
And we're very pleased to have Adrian Halavati, who is the creator of Django, up here. Welcome, Adrian.
Hi, thanks for having me.
No, thanks for having me. We've been trying to get you for years. I'm really excited that you could join.
I finally made the room in my agenda.
That's right. Well, maybe I'll just quickly jump to, so it's been over 20 years since you first created it.
What have you been up to since then, right? I think mainly this SoundSlice project, or what would you like to see?
What would you like to say about, you know, you, what you've been up to these days?
Yeah, these days.
Well, SoundSlice is my day job. I've been working on it full-time since 2012.
It's no longer safe to call it a startup. It's just a business, and it's a way for people to practice music.
It's used by all sorts of musicians to practice, to teach, to transcribe stuff.
It's basically a web-based interactive sheet music platform with all sorts of stuff.
So that's how I make a living, and yeah, there's no end in sight.
It's the project that keeps sprouting new features and new challenges, and it's super interesting.
It's a great combination of my two parts of my life, music and computer programming.
Right. I mean, you did call it Django after Django Reinhardt, so it's not a new thing.
I guess that would be a question. Which came first, jazz guitar or programming?
Oh, interesting. Well, it depends on your definition of programming coming into my life, because I did some as a kid, just copying code from a magazine and putting it into my Commodore 64.
I don't know if that really counts.
My first big thing was a calculator program for the TI-85 in high school math class. It was called AMAP, and it did...
Basically, all the formulas, and basically, by the time I graduated, everyone in the advanced math classes had that, and I became obsessed with making it more optimized, adding features, removing bytes.
At some point, I found out that the size of the variables influenced the size of the ultimate compiled code, so I renamed every variable to just a single character, and this is, I don't know, 15 or something.
Oh, yeah.
So that was probably my first programming thing, and I was a guitar player, but not a jazz guitar player, so I guess programming came first.
15 years old, you've got the memory to recall what variable A and variable B and variable C, what they sort of refer to, right?
Yeah, I mean, I couldn't do that anymore. I forget if I had it written down or something, but I still have it, actually. It's right here in my desk.
Good. Nothing goes to waste, right?
85 calculator. So for those of you watching, boom.
Wow.
It's the best AMAP on it. I don't know why it's so at the ready. I just have it on my desk. It's on my accoutrement.
I guess the Python on the latest version of that is right there.
Yeah, I heard that a few years ago. That's awesome. Because this thing was some bastardized version of... It was some proprietary Texas Instruments language, and they still have the...
Actually, the manual on my bookshelf over there. Speaking of weird things that I've kept around for decades.
Wow. And yet, I think you didn't formally study computer science in college. Is that right?
I did almost...
Or did you turn it off?
Okay.
So I studied...
What did I study? C and assembly language, and then there was a web development class that I took that focused on Perl.
And so my original web development programming was with CGI and Perl.
Yep.
That must have been 2000, maybe 1999.
Wow. And then, was it 2003 or 2004 when you started on Django internally?
Oh.
Because it came out... I know it came out, or it was released in 2005, so it must have been at least 2004, but maybe 2003 when you started working on it.
I would have...
I have to look that up. I don't want to just say one of the dates, because I don't know for sure.
But yeah, that's the right ballpark. One of those two years.
That is kind of wild, though. Three years after your first web class, you switched to Python, which at the time wasn't what it is today.
And you're like, let's just do a web framework.
Because I guess PHP was the frustration, right? Like, that was kind of the default, and you had experience with PHP.
Yeah, I was using PHP.
I switched from Perl to PHP at some point, because that was kind of the trendy thing at the time.
It was the new hotness, right?
It was the new hotness.
And yeah, then Simon Wilson and I were big fans of this blogger called Mark Pilgrim, and he wrote a lot about Python around that time, and actually released a free online book called Dive into Python.
So that influenced us to just try playing around with Python.
And we really loved it, and just started building stuff in it to the credit of our boss, who really didn't mind as long as stuff got done.
So that's something I'm eternally grateful for, is that sort of hands-off approach by management.
His name was Rob Curley, and his famous quote was, I don't care how the sausage gets made, as long as the sausage gets made.
I mean, that's the dream for any programmer, I think.
Well, Carlton, I have a long list of questions.
You jump in here.
Yeah, well, no, I want to ask a little bit more about SoundSlice and about the underlying.
So it's all built in Rust, right?
No, I mean, you built with Django in the backend?
Not Rust.
So all the backend is in Python, and the web stuff is in Django.
The most interesting, well, I take that back.
The front, I was going to say the most interesting, but I actually don't take that anymore.
The front end is all in JavaScript, of course, because that's the only game in town.
And it's, the interesting thing about the front end is that it's an entire sheet music rendering engine in JavaScript.
So what that means is we take the semantic data, like the pitch C followed by the pitch B-flat,
and we actually turn that into graphics, like, you know, the dots and the lines and all that stuff.
So that's, and it's responsive, so it'll fit, it's dynamically generated for whatever your screen size is,
because a lot of musicians are using smartphones and tablets these days.
So that's, that's one, that was the original interesting bit of the project.
Unfortunately, not Python, because you can't do Python, or at least I guess not these days.
You technically can with some really weird hacks, but yeah, it's all JavaScript.
And then on the backend, we do have a new interesting thing, which is sheet music scanning.
It's, it's the basically OCR, but for sheet music, it's called OMR, optical music recognition.
Where you can upload a photo or PDF sheet music, and we'll figure out the semantics of it and reconstruct it.
So you can hear it, you can edit it.
And yeah, you get the, you know, the fungible data.
And that's all using our custom machine learning stuff in Python.
No Django stuff, really.
Oh, I guess there's Django stuff, because it's, there's like a web interface to it.
But Django would be just the web layer, right?
The sort of interface layer, the view layer.
Yeah, yeah, exactly.
Well, I mean, we store data in Postgre and access that with Django models.
So, I mean, it's not just the web stuff that's Django, but yeah, it's, it's all Python behind the scenes.
Okay, so I've got two questions.
The first one would be like, because now 2012, you said you started it.
So that's like 13, coming up 14 year old project.
And I guess I wanted to ask you about stability and maintenance, because one of, you know, one of big Django's big selling points.
You know, at least in the last, say, five to 10 years of its life has been about, you know, the stability and the ease of upgrade.
And, you know, as a, as a, as someone running a business using it, I mean, I wonder what your thoughts there are in one.
Yeah, obviously it's been, I'm happy that it's, the Django is stable.
I mean, at some point it started doing everything I needed and that's sort of around the time where I decided, you know,
I, I don't really want to spend hours of every day on this anymore because for me, Django was always about a tool that helps you build cool stuff as opposed to, oh, I'm going to work on this quote unquote, academic project of making the best possible framework of always, it was always just a means to an end for me and it continues to be so, uh, so yeah, I'm glad it's stable.
I, uh, it's, but yeah, again, at some point it.
Started doing everything that I need and we, you know, we upgrade to new Django versions and occasionally there's something that, that will find interesting.
We being my colleagues, Joseph and Edward, that something that we'll find interesting.
But, uh, yeah, I mean, I was cool with it a long time ago, back in 2012.
That's a good selling point, right?
Cause I, you could understand maybe you're like tired of it.
In a way.
Right.
When having worked on it from the beginning, but no, it's, it's great because it just gets out of the way.
You don't have to worry about it.
You don't have to learn something new every six months.
Like it is if you're on the JavaScript, JavaScript front end framework train, which is another sort of, uh, passion of mine is not deliberately not using all JavaScript frameworks, no react, no angular or whatever the heck the new thing is.
Just vanilla JavaScript does the job and it's fantastic.
Frankly, there, there, I have a whole theory on that, which you may have to save for another podcast.
Oh, I don't know about that.
We'll, we'll have it out of you yet.
But can I ask you then?
Cause in the last couple of years, there's been this big, um, HTMX has jumped onto the scene and there's been this big sort of swing back to the server render terms and multiple pages instead of single page applications.
I was wondering if you, you know, you've, you've obviously seen that going through and if you've had thoughts.
Yeah.
Does that fit your way of thinking or I have totally sidestepped all I sidestepped that entire pendulum swing from client side rendered to server side rendered.
I've just always done server side rendered.
It's always been really good, really fast.
It's what browsers are optimized to work with.
I don't, I do not understand why you need a virtual DOM.
That is ridiculous.
So, uh, yeah.
So I haven't used that, that the new thing, uh, but I, I feel like I don't need to, because the way that we write JavaScript at sound size is just so dumb and simple.
And I mean, dumb and as a good thing, there's, there's no abstract.
See the, the, a big difference between front end and backend frameworks is that on the front end, you get penalized for abstractions.
Because you get penalized because the user has to download more and you get penalized because the user has to run more logic on the backend.
You don't have to worry about that as much.
So in, in terms of Django stuff, it's totally fine for there to be abstractions and various layers and stuff.
But on the front end, that to me, that does not make sense.
And it's just so much better if you are as close to the metal as possible, to the extent that we can call JavaScript metal, which really shouldn't.
But, you know, remove as much abstraction as possible, basically is the idea for, for JavaScript.
So the last couple of years, you've just been like, oh, welcome back in, you know, as you, as the folks come back into the room, you've been, you've been a firewall.
Honestly, I, I go back and forth about whether I even care.
Yeah.
The nice, a huge luxury of having our own business with just three developers is we don't have to worry.
We don't have to worry about the stupid trends because I mean, one, one, there's one legitimate reason you would need to worry, which is hiring, because often it's easier to hire if, if you can target a specific framework and you can, you know, make sure that it's sort of a way of pre-qualifying potential coworkers.
But for us, we just don't care.
And, and I wish more people would do that.
And, and the philosophical question I have.
That I've been battling with for years is to what extent should I care about that publicly for a while?
I just sort of was in my own little cocoon and was happy to watch the world burn in terms of easing such, such stupid JavaScript stuff.
But at some point I realized it's actually detrimental to me indirectly because the more these frameworks get used, the crappier the web gets, things get bogged down.
Pages take forever to load.
It's just a crappy experience.
And it's because to, to some extent of these JavaScript frameworks, at some point I decided maybe it is worthwhile to be a little bit more public about why using these JavaScript frameworks is not good.
Even if you don't use them yourself, you're affected by them negatively because they sort of impact the reputation of the web at large.
And if you're building.
A website, you're indirectly impacted by that.
So you never felt the need to have iOS or Android apps then I think goes without saying because Carlton, I mean, I'll say Carl Carlton has, I think, made his career doing the back end of that.
And then you've dabbled a little bit in the front end, right.
With various projects recently too.
Well, me, I've been using, um, HTML.
X.
And Alpine and it was when I discovered them because I, I, you know, I used to do some jQuery and a teen, you know, teeny bit of backbone when that first came around, I was like, yeah, this is nice.
This is okay.
And then for me, the whole world just went mad and I was like, ah, I was busy doing iOS stuff.
So I couldn't keep up with, you know, all the, all the JavaScript frameworks.
And then, um, I've been using Elm, which I really enjoyed for the sort of functional nature.
And that was, that was quite good fun.
Um, but then when I found HTML, I was like, oh yes, because it goes back.
To doing it in the web.
And yeah, you haven't used HTML per se, but you've been doing the same, you know, the same kind of thing when you yourself by the sounds of it.
And it, it really went back to me to like kind of how the web wants to work.
And it was, it fitted Django's past.
And so very well, cause it was, you know, just make a post request, let's make a get request, just make a delete request, whatever it was.
It was with the grain of the web, which is something that I've always said about Django, like Django has got a grain.
If you just go with it, it makes life very simple.
It's when you try and fight the grain, that it's becomes more difficult.
Apparently.
Yeah.
Yeah, totally agree.
Well, so you, you wanted to talk about native apps versus the web.
I was just teasing Carlton cause he, he spent some time, um, even on some individual projects.
I mean, button, we can say it's name, right?
You were doing some stuff with, with apps, but now that you have full, full choice with what you're doing, it's like, you don't need to mess around with that.
I liked what you were saying, Adrian, about, um, you know, just being a small shop with the three of you, you can not care.
You can, you know, you almost, I, I make the joke about being high.
up the mountain hurting my goats you know i'm just i mean but there's this tension between
um wanting to try the new things wanting to keep up wanting to you know just go with the state of
the art and develop versus the stability of known and known tools that really do do the job and so
rarely for me does a new tool actually improve it yeah i would i would maybe push back on the
premise of that statement which is that new equals state of the art that's not necessarily true
no exactly exactly it wasn't i wasn't it's that tendency though oh we must check out this we must
check out that to otherwise we're getting behind somehow well with that said i did have a question
for you adrian so if you had to do a new web web framework in python today is there any bit of
django that you go i might change that there must be something yeah the fact that the settings are
global
it's i think it was a bad design decision i would find a better solution for that i probably
would have like a settings object instead of just having it in a module
a bunch of global variables within the module and the whole setting the django settings module
environment variable is it makes things awkward in certain situations i would try to find a better
way of doing the things that that was supposed to be doing and i would try to find a better way of
doing things to solve in terms of the nitty-gritty of views url patterns models templates
views i think are really good if anything i would not have created generic views because i think
that set a weird messed up expectation with people that that was a good thing to do and in fact i
think they're they're not worth the
mental complexity whenever you work with them because you have to hold so much in your head so
much more than if you're just doing a writing it out from scratch i often think about the you know
the the physical work of being a programmer is so easy compared to anything in the real world
compared to being a plumber electrician you get to sit at your desk and the the extent of your
movement is your fingers so for program for programmers to be you know be able to do that
up in arms about not wanting to type a lot that argument does not resonate with me it's i would
all i would nearly always rather just pay copy and paste some stuff than have abstraction for
the sake of abstraction and i think that's what we had with jango's generic views you just have
to hold too much in your head but if you just have all the code written out it's so much clearer and
easier to understand and more maintainable
so that last one regret is sorry go ahead that last one it's more maintainable it's like when
you come back to read it and if you if you have written the whole method out by hand it's really
easy to make the one time edit whereas if you just use the generic views and you've perhaps
overridden one class which is a one-line hook and it is all where does that go and you have
to go and look it up that's that can be taxing yeah yeah yeah so yeah that one um what else the
i think the template language there's some fundamental limitations to the template language
uh i remember emailing with armin who made jinja i was emailing with him years ago and asking well
what would it take for us to benefit from the jinja optimizations and you know all the stuff
that's better about it and integrate that in the django and he did a bunch of research and
just decided you know there's some fundamental problems thus it can't be done so i would want
to fix those fundamental problems so that we can you know benefit from uh the jinja approach to
things and but otherwise i think we got a lot of things right
and i don't mean that in a tooting our own horn way i just think like it it's fine uh
yeah um well it's not a bad not a bad not a bad scorecard 20 years on i'd say
yeah exactly what i like about your answer there is all the things you picked to kind of
fine detail thing like you know the settings yeah okay it's not yeah i get it it's not
architecturally fine but it's not architecturally as good as it can be but it works it's not that
much of a trouble you know you need to put it somewhere um you know complaints about the generic
views that kind of you know standard conversation a django meetup that's okay you know we can live
with it um there's nothing fundamental right and as will says 20 years later that's that's perhaps
why yeah but i mean the huge caveat is that uh i and simon and jacob and all the original
contributors wrote this to fit our way of thinking so i'm one of the worst people in the world to ask
about this because it's you know
it's inherently my way of thinking so uh yeah so it's it does it works the way i think it should
if i could extend that so what was what didn't fit your way of thinking about maybe php
in particular right like what caused you to say you know what i'll do my own
version there must have been some frustration separate from just
the language and the approach that the frameworks at the time took
oh interesting well the
the approach with php was that the code was littered in the template
and i know you can have some discipline and not do that but i'm pretty sure that's how we did it
is just having dot php files that are basically a mixture of html and php code
and that is really hard to maintain that's probably one of the biggest things
yeah honestly i don't remember you'd have to interview two thousand two
adrian for that one
this portion of django chat is brought to you by six feet up what's stopping you
maybe it's an application that won't scale or an ai initiative that just isn't delivering
that's where six feet up comes in with deep expertise in python django and ai
they solve hard software problems modernize platforms and get teams to market faster
their impact speaks for itself automating healthcare pipelines for hospitals
helping nasa explore pluto building severe weather prediction tools and applying ai to
connect farmers with vital crop data when the stakes are high and the problems are hard
six feet up is the partner that delivers see what's possible at six feet up.com
back in the day that was glorious to a sort of certain period you know the first the first
few days of a project that was just wonderful and then
yeah and you know there's something i like about it which is it's so accessible to people
you don't have to have a phd in computer science to just edit a php file
it's so easy to deploy just throw it on a server that has my php boom you're done
there's some advantages for sure yeah i mean to go back to the way you you think and like
you know i will talk about the django book that wills resurrected this last week that you wrote
it's how i learned django but one of the things i really liked about the template language
was coming from php was the discipline it forced you know it had loops it had conditionals but it
didn't let you just dump your business logic in the template and you know often people will come
on the forum and they'll they'll be want to you know add some much more complicated behavior to
the template language it's always the same old hands going no no no we like it how it is we like
it do a template tag you know keep it out yeah well i mean you can use whatever temple language
you want obviously but it is it was about that um way of thinking about it i think you know
reading the django book that you and jacob did was to learn django that was like okay yeah this is
the way to think about it well hey you pulled it okay pull it up yeah so and this ties in i think
to a question about just community but you and jacob wrote the original django book which is
now up at django book.com um that obviously helps i think to have a free good book on the community
right this is still an issue for any any framework is like what's a good free resource to help people
out
. Well back in the day i remember there was a lot of hesitation from book publishers to write a book
about django because they considered our docs so good and they thought it wouldn't be a commercially
viable idea to have a book because the docs pretty much said it all.
Hmm i've got a question right there about the because everyone the django docs are
you know objectively very high high standard but there's often um
can
there's often like a desire for them to say a lot lot more about how to use django and strategies and
the more kind of discursive um content which it's interesting whether we have the capacity a to write
b to maintain whether the docs are the right place for it or where the books are you know books and
courses are you know the sort of extra resource resource that you need alongside kind of more
solid reference docs and what you've done.
what you feel about that yeah i don't have a strategy another way of phrasing it is why
isn't the django book just in the django docs why is it a separate thing well i if i remember
correctly a couple of the chapters were taken from the docs and and edited for sure and expanded
but i think we even put some back into the docs yeah i i could see an argument even if i didn't
yeah i i could see an argument either way i could see an argument for
uh giving a commercial incentive to authors because writing a technical book is so much
work for so little money that maybe they deserve the the money they actually can earn from it
uh but at the same time if it's an open source project the docs you know
maybe should include as much information as possible and maybe the biggest limitation is
just making sure that they don't go out of they don't go out of date this is something i face with
soundslice because we have a very extensive help section hundreds of pages and it's there comes a
point where anytime you make a feature change you start to groan a little bit because you're like
remembering all the documentation pages you need to update you know the hardest thing is the
screenshots yeah right this is easy to edit but the screen shots are the hardest things to edit
the screenshots oh and sometimes we have animated gifs with you know showing parts of the ui and you
have to redo those that's why we basically stopped making youtube videos because like that goes all
out the window once you change anything just as an aside i think videos it's it's so much
better to make instructional content in text than in video for yeah with the caveat that there's
certain things like when if you actually need to see something like some
sort of home improvement obviously it's better to have a video but in general i think that's
something that's changed and changed in the world over the last few decades not necessarily for the
better is this expectation that you search youtube first like my son who's 14 he uh had a task and
i asked him to look something up and he just immediately went to youtube to look it up even
though it's like something that a single web page would have very easily answered so anyway long
story short
how why am i even talking about this no i mean this i mean i i agree like i've written books too
you know but it's i have a soon-to-be 13 year old you know she doesn't she doesn't use google at all
like she just uses llms actually no because i don't let her use youtube at home so you know
some of this has just been negated by the fact that yeah llms like in the most recent django
survey asking how people found and learned django so the docs i think were seven years old and
seven years old and seven years old and seven and nine percent and then tied at 38 was stack
overflow still though that will probably decline youtube and um ai meaning like chat gpt so i would
strongly suspect that you know everyone just goes to an llm now so that that's sort of the thing
like obviously i'm i'm biased towards text because you sort of lean in you can take your time you're
not stuck on someone else's schedule but everyone's just like what's what's the economic incentive for
text
when you don't even get attribution anymore you know so for me and any other technical book author
we've all seen since around 2022 when something happened just traffic sales fall off a cliff so
you know i mean and more generally too if you think about even just the underlying economic
basis for the web you know what's the point of you know affiliate affiliate links like you know
why review 10 great hiking backpacks you know it used to be if you ranked you could get
traffic and then you could make some affiliate money but now if the llm just gobbles it up
there's really no incentive to do that though actually one thing i heard interestingly is that
um what do they call is that google is actually missing out on this because it sort of has
it's sort of um versioning creating a version of the web that then the llms are consuming so people
are just take using google's work semantically labeling the web and then google's missing out
on that but i can't say i feel so bad for google but
but like what do they call it aeo it's um yeah it's the llm led search thing i don't it's a brave
new world but you know some some products you know for example button down which is a newsletter
built with django justin duke we've had in the show who's at django con us it's now i think his
number two referral is um llms like if you go into an llm and say what you know other than
substack what should i use like his service pops up right so it's well
well i had an experience with that a couple months ago yes please yeah please if you don't
mind repeating the story yeah well so i mentioned the sounds like sheet music scanner uh every day
or so i look at the error log just to prevent misuse and see the images that didn't get any
good results and i started to see screenshots of chat gpt where they were saying in copy and paste
this text into soundslice into their app and i started to see screenshots of chat gpt where they
ascii tab feature and you'll hear the music played back problem is we don't have an ascii tab feature
so chat gpt was telling people about something that does not actually exist so we were faced
with the question what do we actually do we're not going to be able to convince chat gpt to fix
their database i don't think that's how the nature of these models works and yeah that's just not
going to happen we could
put slather our website with notices like hey if you're coming to us and chat gpt and you're
expecting this ascii tab thing that does not exist but that's just really lame so we ended up just
making the feature to yeah meet that demand which is kind of dumb because ascii tab is
a very old-fashioned way of notating guitar tablature that yeah it's super cool i'm
remember that from 30 or 20 30 years ago find a site print it out like i had binders of yeah
tabs and there'd be like four or five versions you're like oh is the third one's a good one the
fourth one's a good one you know because the books they had tab books but they were they're
pretty expensive right it'd be like 15 20 bucks back in the day for 14 songs and it's like well
maybe it's in the wrong key but it's close enough you know because the key would always be off too
like uh yeah and yeah there's all sorts of problems
with the published tabs the people who the fans who make their own transcriptions are often
much more accurate because they care more than right maybe there's a parallel there between
open source documentation and the book authors um i don't know anyway um so you do you have a
phrase for this though was it was an lm driven development or something i think you i just because
you did you did a blog post on it i did a blog post that got some attention and nothing's really
happened from it although funny funnily enough the other day i saw another chat gpt screenshot
in our error logs or someone said a chat gpt incorrectly said that we support yet another
thing called the cord pro format which nope that is not a thing i i just think there's some there's
like a fundamental problem that our society really is going to have a huge reckoning with
if we're training a whole generation of people to trust this information that is not necessarily
true that is not a good thing well we're post truth right that was the whole idea is with the
web now all the answers you want it turns out we're back to kind of misinformation
central um oh i wanted to add it's yeah answer engine optimization aeo i was just looking at
that that's the phrase for like gemini or you know how do you do that you how do you insert
yourself into their training data i mean it's sort of like the early days of the web with like
hidden text there's all sorts of hacks that kind of work or i mean i remember you can and you know
if you got in before the training deadline cut off you have like a nine month window where like
you're ahead because you put in some keywords and someone else didn't uh i mean it's all
all going to filter out but um one one thing i wonder about you mentioned just to circle back to
typing in function-based views um i don't want to make this all about ai but one thing i found
i just came from a company on-site visit with engineers at pycharm talking about how we're
doing stuff and using using agents you don't actually type anything yourself so even if it
gets the right answer on a query which we'll just put that aside and assume it does
if you haven't actually typed it yourself it like sort of that connection to your brain
isn't there so you don't really feel feel the code or the logic or you struggle with it at all
i don't know if you i guess that's a roundabout way of asking and i can probably guess but are
you using lms at all to help with your code with the code no personally no and your team too
is again isn't my colleague edward who's a designer and and can do some
you know he sort of knows enough to be dangerous sort of thing uh in front of code he's been using
it to make prototypes and i think it's a really good use case for that it really has empowered
him to make some prototypes uh you know totally on his own as a single person uh but would i use
ai generated code in our production code base no definitely not but i have of course tried it and
there's nearly all of them and i think it's a really good use case for that and i think it's a
always subtle bugs yeah and they run the gamut from outright bugs that any anyone familiar with
our code base could tell right away to very subtle things like yeah it technically works but it's not
but it's going to cause a problem in the future if we add this one feature like it's these kind
of things that we all hold in our heads as the developers of products that that the ai doesn't
have access to and i think it's a really good use case for that and i think it's a really good
us too and and another reason is it's fun writing code i like holding all that stuff in in my head
and reasoning about it why would i not want to do that why would i intentionally have less fun
for capitalism reasons like to to churn out more features and make more money
what like what's what's the legitimate reason
carlton you have a thought here come on yeah no i mean that that rings true to
me i why don't you know i'm going to be 48 years old in a month or so and um like why why am i still
at the keyboard rather than why have i not moved somewhere else after 20 years it's because i
love writing software it's like you know crafting stuff out of nothing and you know i can type it i
can i can write i write you know specs i've been one one thing i'm interested in is that people are
now suddenly keen to write specs when for years and years they you know i couldn't possibly write
requirements not but now i'm interested in writing specs and i'm interested in writing specs and i'm
now they'll do it so they'll do it for the machine but they'll never have done it for any other reason
in the past but i've always written specs up of what i was trying to do and so i can paste that
into a into whatever and i can get some stuff out and i can look at it and i can not really
understand it and eventually i can see why it's not as nice as what i might have written none of
that's as enjoyable as just writing stuff myself and i don't know let's say it makes writing code
faster i'm not convinced it makes writing code faster but let's say it makes writing code faster
the writing code bit is the least of my job like it's it's a fraction of my job that's not what
i'm paid for that's not what i've made a good living in my my professional life doing it's
not the writing code bit it's all the rest of it and yeah why take the fun away it's like if you
know i enjoy cooking am i going to go down the supermarket and buy a microwave meal absolutely
not or like that soylent stuff does anything still exist you know a couple years i think that i think
i think so i'm not living in silicon valley still but like i i don't i think i there's probably still
a dedicated culture but they've moved on to yeah something else yeah so let's swing let's swing
let's swing topic momentarily i was at uh jango in the med last week with jacob
um well amongst other people jacob wars who's the new um jango fellow and he's he's um he's a
composer and you know it's been into the music world and he was telling me that your
quite involved in the you know the technical specs for encoding music yes it was beyond what
i knew about but it sounded interesting and i wanted to ask you about it yeah uh well there's
a format for encoding music notation well there are many of course right because you know you can
argue music notation is the world's most used language if you consider it a language but there
are many ways of encoding it and one of the probably the most popular ways of encoding it
most used the most popular these days is called music xml so it's as you can guess it's an xml
format where you encode all the notes all the rests all the chord diagrams all the stuff from
your score and that is now a w3c community group uh it's maintained by this w3c community group
of which i'm one of the three co-chairs
uh it's maintained by this w3c community group of which i'm one of the three co-chairs
uh it's maintained by this w3c community group of which i'm one of the three co-chairs
and several years ago we decide actually my predecessor this guy joe berkvitz
uh started a project to create a new format to address some of the fundamental limitations of
music xml obviously insert xkcd number whatever another format well more than that exactly
uh but it sounds so stupid to say this but this one will be better
it's json it it has a more pythonic approach to things to be very is it going to be called music
json no it's called mnx which is not my name uh it doesn't stand for anything it's just a random
acronym music notation x mnx so i'm in charge of that i've been working on it for years now
and it's uh it's really great for i mean on the off chance that anybody listening here is
working on any sort of sheet music thing definitely check it out and get involved in the
development fun fact that documentation system is a django app uh i made this app that is very
he has a very specific task of um creating documentation for uh
json format where you can have examples and it automatically color codes things and links
every attribute of the json to the appropriate docs page blah blah blah and that's all open
source anyway so yeah this is uh what i do in my free time instead of it's sort of like what
replaced django for me and my open source contributions time but this is the sort of
thing that i think you know it takes an individual group of individuals to craft on over a while it's
kind of has really long lasting value because that standard will be finished and then it will
be around for you know a long time and a lot of people yeah definitely that's really cool
i have i had just one more question um and this goes back to django architecture which is around
local versus deployment so there's still this kind you know when you start a new project it
defaults to local and then that leap to production
um i'm wondering if you have any thoughts on maybe making that easier because it is still
quite a bit of a leap and everyone does it you know when i think about how to put this in a book
or to teach it it just varies so so much there isn't even just a simple path and then we go from
there it's like even that simple path you still have to tweak i don't know 8 15 things just
curious if you have any thoughts on you know so there's talk of maybe we have when you start a new
project toggle something like local versus production that's one idea like jeff triplett
has explored but curious what you think i think it may be inherently complicated
yeah so there might not be an easy solution i think we as programmers don't like to consider
that option uh i'm probably one of the worst people to ask because i just once i set something
up for production i'm like okay i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do
this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna
do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this i'm gonna do this
and it's set and forget it and well right this is this i mean i cut it up in sound slice like
more than a decade ago the other production site i have running on my blog which i did
probably around the same time yeah i so i personally haven't even faced that in years
yeah i'm definitely a bad person to ask about it okay it does seem like there could be sort of
more framework level
switch between production and development
but yeah i don't have much to say sorry it could be explaining that because that is
you said it and then you kind of go on um eric mathis who's wrote python crash course he's been
working for a while now on this django simple deploy third-party package that links into some
common providers and um just trying to address that so you know mainly from started from his
uh pain point and then he's been working on this django simple deploy third-party package
as an author of you know he would have a different provider each edition every three four years and
you know the free tier would go away or they'd change how they do something and i can certainly
relate to that just with having i've switched between heroku and other and i can't remember
fly.io like you know you write this book and people kind of are like hey this part's broken
you're like that's not even the django part um so i think what's good about django simple deploy
is that each provider has a plugin and so it's a way that that plugin is going to be able to
plug in that becomes the kind of focus point for people in the community who are you know if you're
using that you can contribute to this one plugin so that it there's kind of like a shared knowledge
bank if that makes sense um no it sounds like a great project well yeah it's yeah kind of cool
deployment's one of the perennials right the you know long gone are the days where you could just
run you know mod python and it was it was all taken care of you would have thought that it
but just like sort of for the whole world of web development maybe it's inherently complicated
well but or if you look at if you look at other web frameworks that you know that raise vc money
they just have a hosting platform so like laravel has a hosting option um fast api right they raise
money they're going to do fast cloud you know kind of to address this so yeah i did have sorry
i have actually one more last last question which is you mentioned how you with soundslice you're
putting um django and data pipelines together i feel like this is the the issue i want to try to
get a better story around and at django con us we're talking about how how do we say how django
fits into this ai world because people will misunderstand how things fit together like
there are a lot of people the new generation are python machine learning engineers but they're not
web engineers and so they think okay i just have a fast api endpoint my work is done but
you know so i will get a question and others as well like hey i want the django orm plus fast api
which i feel like the question sort of misunderstands what's going on so i'm
curious if you have a sense of how django can market itself better is like you know okay maybe
on the inference path you don't want django but all this other stuff that you need django's there
for you but this new generation doesn't even know to ask really that's my day
yeah
i so
i have never used django rest framework but i'm going to bring it up
at the risk of being totally ignorant about it because like i said i never used it
i don't understand the point of it what is so difficult about just making a normal django view
that returns some json and that like throws the right http status code if you use the wrong
like http method i don't understand that and i i think there's maybe it's a generational thing
that uh people expect their hands to be held to such an extent where if something doesn't
explicitly have like oh this is the thing for writing json apis that if they if the product
doesn't have that then they're like totally at a loss on how to do it
i think people maybe are scared of going too low level even though low level is laughably still
high level we're talking python here and typing two lines instead of one so i i i guess i i
question the premise of the question if that makes sense uh i maybe it's just a matter of
educating these people like yeah so you're preparing some training data for to train a model
here's how to use the django orm to spit out some database records and create a csv or whatever the
format your training data needs there there's no there there it's just it'll be different for
whatever machine learning system you use like so we have we use like a image classification
model resnet it needs the data in a certain format it's basically like a directory structure
there there's no there there you just have to know yeah put the data in a certain format
the files in this right in this directory name them this way you can use django to do that it's
just writing code so i i'm kind of confused you know like what's the issue
it's gonna help me out well no i mean okay so from your answer i think the the point there
is people that the phrase you said to some people won't need that hands hold maybe it is a kind of
skill level problem like people are expecting just to have out-of-the-box solutions for absolutely
everything and it's like well i don't know i mean i i guess people want out of the on you know the
rest api example people want out-of-the-box solutions for a lot more than just returning
json responses i guess what does rest framework give you it's got permissions it's got um you
use that help help you out it's got you know authentication it's got um rate limiting as part
of it um
i guess people want those kind of things which are perhaps more difficult andrew godwin's once
said to me about the batteries that um jango provides he said the batch jango has to provide
the hard batteries the things you couldn't just write yourself and yeah
okay um but i think you're qualified adrian to say you know back in my day we had to write
our own web frameworks so that's part of the yeah well the thing is that nobody remembers this back
in the day it was a joke in the python community that there were too many python web frameworks
this was before django was open source i remember at a pycon years ago in washington dc there was a
keynote speaker who put a yeah we talked about this on the last podcast well it's okay not
everyone yeah on the the uh the talk python 20th anniversary yeah you mentioned this yeah
there was a slide sorry say it again i was just gonna say if you go to the asgi um asgi ref
website the asgi.readthedocs.com which is the the docs for the asgi spec there's and you go
to implementations there's about you know 15 20
python web frameworks that implement asgi now it's like
it's almost back to the old days where the you know thousand thousand
why why did i bring this up oh because you were saying back in the day you had to write your own
web framework yeah you didn't have to there were so many and we were kind of embarrassed that we
added another one to the list yeah well but you know you need that combination of
self-desire and
maybe i don't know if i'd call you say you're naive but you're just like yeah why not right
like definitely definitely i mean i was 22 23 or something simon simon and i fun fact were born
five days apart um but oh wow we're both like 20 22 or something definitely not yeah still made a
rub
well it is i mean this is a
so a perpetual thing i have and maybe it's inherent to the ecosystem is why isn't there
a javascript batteries included web framework right there's always a new thing and i like
there kind of is but there really isn't there seems to be for each language there's like
you know kind of a jango right like php you have laravel symphony
ruby you have rails i guess java you have spring like it feels like everyone wants to just write
everything in javascript or they used to but there have been efforts but nothing is nothing that i see
has any sticking power as like the yeah we're just going to do it this way in javascript
just to be clear you're talking about server side yeah well maybe that's part of the problem yeah
yeah well this uh gets to the the idea i alluded to earlier where i said i have a whole theory on
javascript that javascript ecosystem that could be a whole separate podcast episode i think at
some point this is already being erased from history
which is kind of sad uh some point it was like 15 years ago before javascript frameworks really
came out before react before all the all those things it was the era of jquery and
the reputation of javascript front-end developers was these were a bunch of clowns they started out
as html people they are not real programmers they don't know how to do any back-end stuff
they were they horrible things are being said about these people uh and i my little pet theory
is that that community got a huge chip on its shoulder and it needed to demonstrate hey we're
real programmers capital r capital p we're real programmers too therefore we're going to abstract
the crap out of everything and make these huge architectures just to show how clever and smart
we are and i think that's what created this generation of frameworks
um why did i bring that up no i was asking yeah i was asked i figured i asked you something
so if you grew up in that environment you don't have the context for you if you're 20 or even 30
now all your professional life you've known javascript web development is using these crazy
over-engineered frameworks and you don't have a sense of the history and like
why why did that come to be not necessarily for good reasons in my perspective i'm just one person
but i've been around i mean i've been a web developer since the late 90s so that that that's
a whole thing that i wish more people were aware of is that the the the world of javascript client
side frameworks is not they they didn't necessarily get created to scratch an itch or they the itch that
was meant to be scratched was not a great itch it was also a big company itch right it was like
facebook size problems google size problems it wasn't another hey let's let's make it you know
for a small group to do i think that's a big part of it you can't say that about all the javascript
frameworks but like i mean carlton i mentioned this you know like their problems are not your
problems so same thing now like with uh chat gpt right they're using what remix now or next js and
so a lot of people are doing it writing blog
posts gets on hacker news and people becoming programmers think that's the way it's done
right like if you go on hacker news every six months there's like oh yeah django's still around
and it works but it's not like out there in the same way as cutting edge stuff which again
is not the problem most people are going to have in their professional life but they
think it is that i mean we're getting into deeper philosophical takes um the world but yeah if
you're loud and
of attract a lot of attention unfortunately you get attention if you're just cool and just doing
your own thing and you don't care to toot your own horn chances you may be you may have the better
solution but just because you don't care to think about marketing you kind of get screwed i mean
it's all what's the tale as old as time right i was just seeing something it was it was like this
i think it was a reddit post about like what's the biggest flex and my favorite comment was the
biggest flex is not caring what other people think exactly which is like great but you know yeah
there's a general there's a generational thing here i think because we talked about like preferring
text to video we've talked preferred to we talked about learning from typing in magazines and then
what was it learning from cop stack overflow and then these yeah 85s i guess okay but that was
before but then you learn from stack overflow and then you now you learn from an llm and
okay this i often think about this long arc of history i mean
using django for a long long long time now and when i see a new framework come up and everyone's
like oh django's in trouble because we're not like you know new hotness i'm like hey take the
long view because in a couple years time you hotness will have faded away and we'll still
have the same fundamental problems and what i haven't quite mastered is how to communicate
that without sounding just like get off my lawn old man you know right we carlton i feel like
we're the two old gut muppets you know up in the balcony a little bit for a number of reasons
you're like you're like but you know there's something to that like were they wrong were
their takes wrong there's some great youtube super cuts of those guys maybe maybe that should
be the opening i've been meaning to add like an opening uh snippet to the video thing i'm like
maybe we should just enough so it doesn't violate copyright well what do we have to do to stay open
to the youngsters like to you know the newcomers into it don't just sound like old thoughts
yeah that's a question for wiser people than me i don't know
the thing is i don't care right because it's good enough for me you know um
yeah no it's fair so i wanted to swing to just ask you about your music because you've got some
albums and you tell us a little bit about you put one out for me just so you can check
yeah definitely i i've uh i've got a full album and i've got an ep the ep was released this year
a year and a half ago it's all my own guitar instrumental guitar music so if you like lyrics
this is not for you it's uh yeah uh the music that i wanted to see exist you know like
a certain combination of melodies and harmonies and instrumentation and aesthetic that i like
that i haven't found as much as i would like to find so it's a matter of being the change you wish
um yeah my own name on all the streaming services and so i think i think we should
plays it while the ci is running on your pr so you can listen to adrian yeah i'm always
it's weird because i don't want to promote the music it's like well i do and i don't is right i
i don't want people to listen to it just because like i'm the django guy like you might not like it
big deal like if it's if it's not for you it's not for you but i i like it you know new stuff
basically every every other evening i'm always recording songwriting arranging so that's kind
of like your other part your third space your other yeah yeah it's so fun just to make something
make try to make something beautiful
well as we go out we've been doing favorite books and stuff but maybe in your honor we should do
favorite jazz guitarists i'd like to go first i'll tell you who i like um i'm a big fan of
howard alden i think because i saw sweet and lowdown i there's that i'm always blowing bubbles
song yeah forever blown so beautiful and i was like who the heck is this and then i think 10
years ago that sent me down the rabbit hole of um
all his stuff and i mean he's one of many but he's just this beast of a guitarist and kind of the
problem is listening to stuff like that i don't have to tell you and then you listen to like a
rock solo and it's like it's kind of different different things becomes less impressive that's
the curse of getting knowledge about anything you know yeah you just realize that your standards
become a lot higher right but at the same time
not every most people don't have that level so they're fine with whatever like you know so my
kids now are always in the car they're like play some music and on the one hand it's a little bit
like i don't want to but now i'm like oh i can like slide in you know a little more mature stuff
that i like and see how they do so um but i'm curious for you uh you must have a if you had
to pick one a modern jazz guitarist must be someone you listen to and go wow modern well
my all-time favorite is django reinhardt sure yeah he's he is nobody no guitarist
could play as beautifully as he did every he could just play one note and it just sounds
beautiful and modern jazz guitar the concept of beauty and and just having a lot of that beauty
is not that prevalent for some reason it's more about the note choice sorry we're getting into
kind of
uh musician talk it's more at some point this is a whole other thing that i have a rant about
at some point jazz became a university subject i think it happened in the 60s or 70s
and then books started to come out and there's certain things that a book can communicate and
there's certain things that a book cannot communicate talking about music a book
when it comes to music a book is really good at communicating the exact notes so the note choice
the pitches how long they're played but it can't communicate things like a bend in a note or
vibrato you cannot communicate that in any way other than listening to a recording so there was
several generations now of musicians who came up learning in that environment where
there's this invisible hand influencing the music and the music and the music and the music and the
music that was created that was influencing them to think about it like a what they will learn from
a book and no one plays like django anymore but anyway so rant over just sorry just another aside
that's why i really love the saxophone is johnny hodges he's like my second favorite musician after
django but there's like a schism jazz saxophone there's like johnny hodges school and then there's
charlie parker school charlie parker it's all about the note choice the the uh
the phrasing but for johnny hodges it's more about like the beauty it just sounds so beautiful
the tone charlie park did not care about that it's totally different dichotomy anyway
modern yeah i can yeah like my my kids are all my wife they're all super musical and they're
old enough now where the lessons it's not about the notes it's all about you know taste or it's
about the things that aren't on the page because everything's on the page but how do you
get to next levels you know they violate at that point because yeah yeah if you're starting out
you want to do that but you don't have the technical capabilities so you're kind of like
it's frustrating yeah but it's hard to yeah get that across right it's not it's like the first
stage is just playing the notes more or less in the time signature and then it's all about
you know the feeling and and all these things and then that's infinite but it's just like
programming yeah i was
yeah a lot a lot of uh commonalities for sure all right so back to this
and uh i would recommend an album by adrian lanyard and rocky grisette's called
well it's in french so i'm going to butcher it
in a horrible american accent is it between octaves or what is it i think it means between us
um entree new
i'll edit we can look it up and sound learned oh between acts what is what is that carlton
i don't know i haven't got the album i haven't got the album um well it's a really beautiful
modern jazz guitar album it's just a duet
oh we see in the chat yeah all right well we could keep talking but i'm worried about carlton's
my big love was um uh miles davis and kind of blue and then the um you know that there was a kind of
series of albums he did uh birth of the call and then through to kind of blue and the the interplay
with him and john coltrane with giant steps and love supreme and that that kind of period there
and it gets later on it all got a bit much for me i was a bit like i haven't you know i have to
have to have a had a specific mix of narcotics before i listen to the latest stuff yeah right
that particular period was just beautiful for me
all right we'll put we'll put links to all that um adrian thank you for taking the time this is
truly when we started this podcast six years ago we were like oh it'd be great to have
the creators you amongst them on and now we've now we've had all three so i feel like we can
quit carlton right yeah we can quit now we can quit we can go and put our feet up on the beach
side quest side quest over yeah
thank you for taking the time and thank you for yeah sharing your perspective i'm i'm personally
glad that you're popping your head up a little bit more and um yeah i understand the desire to
sort of hide out carlton i talk about this all the time but i'm glad you're sharing your thoughts
yeah thanks for giving me a platform to do that yeah it was fun to chat thank you
all right and we're jango chat.com we'll see everyone next time bye-bye bye-bye
thanks again to six feet up the python jango and ai experts you call for the hardest software
problems from scaling applications to simplifying data complexity and unlocking ai outcomes