Django Chat

Django 4.0

Episode Summary

We’re back after a summer break! This episode talks about Django 4.0 alpha release which is now available, what to expect in it, community news, and more.

Episode Notes

Support the Show

This podcast does not have any ads or sponsors. To support the show, please consider visiting or Button.

Episode Transcription

Will Vincent 0:05
Hello, welcome to another episode of The Django chat podcast. We are back from our summer break and in this episode we'll be talking about Django 4.0. I'm Will Vincent joined as ever by Carlton Gibson. Hello, Carlton.

Carlton Gibson 0:18
Hello. Well, how are you? Good summer? Good? Ah,

Will Vincent 0:21
yes. Good summer a little bit of a break, we're back, we're going to be back to our bi weekly schedule. Lots of guests lined up. So we didn't tell people we're taking a break. But we took a little break this summer. And yeah, we're both excited to have new things going. So this episode 4.0, we're gonna talk about a bunch of Django news. Talk about our summers. So maybe just just on the podcast, so yeah, bi weekly going forward. I looked at the stats, we we started this February 1 22,019, after a couple false starts. And there's been over 300,000 downloads, which is a lot or a little depending how you look at it. Currently Episode 98 and reaches a couple 1000 people a week. So very happy with that. No sponsors. But you know, at some point, if somebody wants to sponsor it, or if we get large enough, we'll do that. But that's not really why we're doing this. So just put that in there.

Carlton Gibson 1:18
Yeah. You know, if you want to show money as to but as Will says, it's not really the point is it? Anyway, yeah,

Will Vincent 1:24
yeah, it's really just, it's our time and the hosting costs, which are minimal and, and we get a lot out of it. So what's going on Django. So Django con us is coming up in end of October signups are free. And as online, definitely. We have a link to that if you haven't already. Django 4.0. Just this morning, right? The feature freeze 4.0 point? Well, it's

Carlton Gibson 1:47
just it was a feature freeze. Yeah, that was last week. So last week was the feature freeze. And then and that's that's just like, that's essentially mental. That's the hardest bit of the year is like, because you've got all these things that you'd like to get in, like all these things into this lock, massive, long back list of Oh, wouldn't it be good to remember that and there's only so much time and so much energy, and we had a really good push to get that in. And then Maris bless him. He's released manager this time. So he's, he takes all the slack, he takes all the all the flack, and I just try and pick up what I can around it. And then you know, next time, it will be my turn, and he'll be laughing. I'll be sweating it, but he may actually get out late on, I think, last Monday night, and then yeah, and then that's it. And then now you go out download or run your test suite against Django 4.0 a one. So that's the alpha one, and then there's five or six weeks for the alpha period. And that's when you know, we've really got to find the first wave of issues. And tell us about those. And then we can fix those for the beta. And hopefully, there's a few less things in the beta. But again, we need testing all the way through and the more testing we get during this pre release phase, the better because, you know, then we get to 4.0 final in December. And, you know, there will always be regressions. But, you know, hopefully not no major showstoppers The day after the final release,

Will Vincent 3:09
right? Well, this year, there's there's two releases because the nine month schedule sort of works like that. So it feels like I mean, on my end, just updating the books and stuff. It feels like more, but it's really just, we're in this nine month well schedule, more or less indefinitely until something arises. Yeah.

Carlton Gibson 3:26
So it's a it's it's eight months. So that means that the three releases every 24 months, a month. Yeah, yeah, it's eight months. So they go it goes. I know it goes. August, April, December. August, April, this was a reset.

Will Vincent 3:39
Yeah. Yeah.

Carlton Gibson 3:42
And so yeah, in 2021 is April we had and then there'll be December, as well.

Will Vincent 3:47
Yeah, that math checks out. That's the kind of math problem I've been giving my my oldest daughter and I think she's better than I am. Yeah, no, I

Unknown Speaker 3:54
mean, you know, there's

Will Vincent 3:55
a lot of there's logic ones like, you know, John's taller than Sally. Sally's taller than Tim, who's you know, who's taller? They're just like, yeah, they got my wife's brain on that. So lucky. No, but it's children,

Carlton Gibson 4:06
isn't it? They've got these the kind of the capacity to employ reason that you've sort of lost as a parent.

Will Vincent 4:16
Right? Yeah. So we'll talk about 4.0 and what's involved in there, but Yep, summer, how is your summer we haven't really spoken to be

Carlton Gibson 4:25
honest, I need to do this. Like, it's been crazy that it's not just work. It's this whole pandemic ongoing. So it's still 2020 as well as my brain is concerned. And I was struggling, I was like, not struggling, but just the thing I've read, like for years and years always had loads of balls up in the air, and it's been juggling away and over anyway, and I just found myself not able to make progress unless I'm sort of really focused on one thing and just focus on one thing and like, okay, yeah, I can get that done. And then I can focus on the other and that's, you know, if you read Activity textbooks like productivity 101 is focused on one project, put your energy on that, get that finished move on. So okay, so it's not rocket science, but like, it's just for me, it's kind of like a marker of the low level stress that, that just is with this whole Yes, environment background of anxiety. Yeah, it's that if I, if I'm really, if I'm not really conscious about that, I've been struggling. So, you know, to make progress on, you know, 4.0 to get through the feature freeze that was like, Okay, I've got to really head down and focus on that, and, you know, and then, you know, looking at the open source projects that I maintain. So after the 4.0, free feature freeze last week, I was able to spend time getting compatibility with 4.0 provisional compatibility, because, you know, there might be issues that get revealed, but if, you know, for instance, rest framework won't even test against 4.0. It's very hard to, to, for people to test with rest framework. So okay, let's get 4.0 Let's get get rest framework 4.0 compatible, at least on the main development branch there, and I was able to work on that. And then I put out a release for Django filter, which, which is now 4.0 compatible, and a release for Django app comp, which is now you know, there were without context crazy, because there haven't been any code changes for years. But every time the the Trove classifies on pi pi get updated, though, the ones where it says, you know, this is compatible with the Django framework. I get open tickets going, this isn't compatible. I'm like, Did you try testing it? Because it really is there's no code changes, the

Unknown Speaker 6:29
tests will pass but Okay, we'll do it. We'll do such a thing on these things. Well, we'll do a new release with Detroit

Carlton Gibson 6:35
with Detroit classifiers. And so anyway, job. App conference now got official Trove quality classifiers for 3.2 and 4.0, which it was missing. Looked at Janga compressor that's that's essentially compatible. There's a few tests glitches in Ergin, a Jinja two version three that can't get my head round Jinja two three, the issue but other than that, it's it will run you know, be using compressor that will run so I saw David Smith, he put out crispy forms with 4.0 compatibility. So you know, if you're using all these big packages, they should already be 4.0. compatible there abouts. There's no reason why you can't test your code on them to find the bugs. But anyway, the point I was making was I had a bit of time to work on the open source stuff. And now I've got time to work on Daphne. That's next up to Daphne has been waiting for an update for a while, but I just haven't had the capacity to work on anything. So it's very much I'm doing these things kind of series serially at the moment. Yeah. And yeah, I think, as I say that need to do things seriously. It's just been a marker of stress. A marker of Yeah, stress. It's no, it's no other word for it. It's been a really difficult two years. And I think, to acknowledging that it's perfectly okay. Yes. How about you? How was your? How was yours? I

Will Vincent 7:55
agree. Wow. So how honest do I want to be not a lot of work stuff. The goal is to have a couple hours a day, just all the maintenance things that I need to do. So we still have the Django news newsletter that Jeff Triplett and I do we bring that still going weekly. That's not that hard. That's that's a fun project. Because it's not a huge amount of time, it takes two hours a week. If I'm crushed, or Jeff is crushed, we can alternate. That's a fun one. So that's pretty easy to do. Yeah, I've been working a lot on the 3.2 updates from my books I and I've gotten in this pattern where sometimes I'll have just cursory updates, where I just go through the code, make sure everything's fine. And sometimes I have a build up, as you're saying with 4.0. With all these things I want to change. And for 3.2, that's been the case. So I'm going windows first I bought a Windows laptop, I've been doing all sorts of stuff with that, using PIP not PIP m, adding black, just across the board, adding a lot of updates. So it's taken a little more time. And I was really trying to get it done before the summer and it just didn't happen. And you know, the reality is, everything still basically works. You know, Django is quite mature. So there's one or two small things, but it's more of a third party situation. So I'm racing to finish those updates, and then I'll do the 4.0. So that's been good. I mean, personally, yeah, I've had a kid I've had a child during lockdown. And I don't have as many children as you but not yet. Kids in the summer need need. Oh, I'm done. I'm done. Kids in the summer need to be entertained. So you know, lots of lifeforce being expended. Not Not all of it towards Django, but that's fine. DSF we Django Software Foundation, we still done a number of things. So we had the survey. So I helped lead that. We partnered with JetBrains. That's concluded actually so we're waiting on them to compile the results, but we got more responses than last year. I believe. And so that should be great. Yeah, a bunch of dia just DSF Django con EU went off went well, there's a whole bunch of work around that. Super Yeah. So just, I actually I had now that September, I'm back to the CO working space I was at before, still got to wear masks. But the first week back I was I was just like a blob. Like I didn't know what to do without expecting to be interrupted every 15 minutes, which has been the reality working from home with kids in the summer, the past three months, so yeah, but it still feels nice to code still feels great to write. So those are all good things. Yes. And looking forward to, you know, switching my brain just professional things, as opposed to just personal things all the time. So yeah, I name it, you know, and you and I are both, you know, as fortunate as it comes, I think with these things. So just acknowledging that COVID still here, and it's, you know, it's not going away. Yeah,

Carlton Gibson 11:02
I think I think that's it. I mean, you know, I wouldn't trade, I sort of joke for summers hit the summers in Spain, a very long the kids have 12 weeks off school, which, you know, it's just mental amount of time. And I joke about it being too long, though, am I gonna trade that for what are you at work, now I want to spend time with my kids, and that's fine. And then when they go back to school, then the autumn comes in, and it's like, okay, different routine, that's fine. One thing I want to cut back to was the JetBrains survey, because that's really great. We took over the summer, we had the Google Summer of Code, which went really well. So we had two projects for Django, one on to add a Redis back end, and another working on the internals of the migrations, the migrations engine solar, we rendering models using project state run, you know, blah, blah, blah, it will speed it up, it would be a lot for ob faster, and there's some important steps. So that was a successful project. But the reddest one directly came out of last year survey because we so we did so we do use caching what to use. Okay, so, you know, three times as many people use Redis as any other back end. And it's like, well, we've got three memcached backends. In the core, why haven't we got Redis back end. And so okay, we put that up as a as a Google Summer of Code project. And that's got done by Danielle, and he's done a great job. Nick Pope really helped with the review there as well. And so that, you know, that's directly out of the survey. So having the survey leads right into Google Summer of Code, which leads to improvement of Django. And that's

Will Vincent 12:33
great, too. And that's really great to hear, actually, because I think part of it is there. There's no human interactions, right? So like you and I, there's been no conferences, I see numbers about people who listen to the podcast. But aside from a token email, I don't have a real sense of its reach, or the newsletter or all these things, right. And so that's really gratifying to hear, because the survey last year was quite a bit of time. And that's exactly why we do it. Right. So it's nice to know that there is that link of, you know, finding, finding, because, you know, because we don't track anything in Django, you know, by design. So if not for the survey, we don't know, in any way, you know, how the community is using it, besides anecdotes? Really? Yeah,

Carlton Gibson 13:16
I mean, it's not the sort of thing we're going to put to them. It looks great. So Fine. And just before we move on from go, so I want to touch the mistakes. We had wagtail come in under the Django. org This year, and I had three projects, I think they'd have taken 20 projects as so many. So canes, how many ideas how many mentors available, but they took, they had three projects that they worked on, we have to get dawn on to come and talk about those. But what was really nice is that whitetail did apply to Google Summer of Code before and then Dan got in, but they were able to come in under the jangle sort of org. And we, you know, we've been in, done it more thing every almost every year since Google Summer of Code has been running. And then, you know, hopefully next year wagtail can then apply on their own saying, look, well, we did, we came in under Django, the Django org last year, and we had these races for projects. And, you know, now we go on our own, and then maybe we can do the same maybe for Jasmine, I did mention it to Yanis. But I think we've got to plan it a bit more in advance to see if we if they've got mentoring capacity, and all those things, because otherwise it would just fall upon Yanis to, you know, maintain that he can't do that by himself like it. So it's something that I want to try and at least have a discussion about. But it worked really well having wagtail sort of apply with Django. And so all in all, it's really successful Google Summer of Code, I think. So thanks again to Google for putting that on.

Will Vincent 14:34
Yeah, thank you, girl. Yeah, that's great. Yeah, and all these things are there to be done if and there's funding available if people put the work in. Yep. So speaking of community, so I wanted to bring up again before we get to the 4.0 updates. So one of the things also I caught up a little bit on open source, there's this awesome Jango repo that there was one before and then I started one years ago now four or five years and Jeff joined in a year or two ago, which has been great to help. And somebody submitted a PR saying, hey, you should reapply to put it on the official, awesome list. And during this week I had back in the office in the afternoon, I was like, Okay, I'll do that again. And did that spent a couple hours submitted a PR, it wasn't a perfect PR, the maintainer is, wrote a number of comments, half of which were helpful, and half of which were not helpful. And so the end result is I said, Okay, your, you know, you're football, but I'm not spending time on this again, which was the exact same reaction I had a couple years ago, and I tried to do it. And so it really made me think about the Django and the work that you and Maurice do as fellows because I understand how you can get to the point where this person is that where you just get bombarded with PR that aren't perfect, and you just rage yell at people about it. But at the end of the day, it's open source and you know, if you do that people are gonna you know, for me, I don't care like I'm old I'm experienced whatever but if that was if I was a newcomer, I was new to open source to, you know, the reality is that was hours and hours and hours of time and throwing it off, and then you just get the ball swatted back, not in a Hey, you need to fix these things, but like, you fucking stupid asshole, kind of way. And it's like, well, that that would be really bad for a new person. I think so anyways, I tee that up as how do you and Marius Not, not be like that given? Given all the prs and all the things and all the years? I mean, maybe it means summers, we take a little bit of a break, but I don't think Django is like that. Certainly. I hope Django isn't like that for newcomers.

Carlton Gibson 16:49
Yeah, so first up, sorry for your experience next, even though you're experienced and you know, stick skinned and all the rest are still not

Will Vincent 16:55
playing well, I see why he said it. But it also means I'm, I'm unengaging with the project forever, and it doesn't really matter. But you know, you have a bunch of those micro things over time, and a project will lose.

Carlton Gibson 17:06
Yeah, I mean, with momentum, so I mean, something I'm really conscious of, of Django is that we still have a very male, and largely white contributor base. And part of that is economic privilege. But you know, part of it is just open sources and very welcoming. And so you know, to be to make sure that you're doing everything you can to not put off potential contributors is, is to make your project more sticky is to make it a better project is to make it more open to contribution. But that's not always easier, you know, a contributor comes and maybe he is terrible, perhaps and it's like, this just isn't right, and how can I, how can I respond in a way which is, is suitable and you just First of all, you have to be lined up and wired to give that response. So you have to, you have to want to give that response. And if you don't want to give that response, and perhaps you should, you know, step away from, you know, triaging, because that's going to be a part of it. And that, you know, there's just no way around that it's No, I don't think there's any room anymore in open source if there ever really was, but there certainly was a culture of it, but a culture of, you know, just harsh responses. I don't think there's any room in open source for that anymore. And so if you're not prepared to be opening and welcoming, then you know, step back. Sometimes does it get too much? Yeah, I mean, sometimes we'll get a difficult contributor and Marisol say late cotton. Can you take this one? Or I'll say tumeric. Maris, can you take this one, and we're very conscious of what the other ones doing. And we try and look after each other. And sometimes you just have to let an issue lie. But the last thing is, the last thing you do is come, you know, not deliberately escaped the harsh response. And some, you know, sometimes, oh, that was a bit too harsh. It's Oh, okay. Well, it's a misunderstanding of language or, you know, you know, the tone could have been friendly, or or Yeah, there

Will Vincent 19:06
are some, there are some cultural things sometimes.

Carlton Gibson 19:09
But you just have to try to be honest. And I feel sorry, yeah, I feel sorry for the guy who's in a position where he feels he needs to respond. That way.

Will Vincent 19:16
I can see how you can get to that way with a project. I mean, just the awesome Django repo itself. I had a backlog of prs. And I felt like I couldn't handle it. And I was gonna step away until I talked about I mentioned it to Jeff, and he said he would come on and he was able to do stuff for a couple months. And so now I have the space again. So yeah, I can't imagine running, you know, that thing among others solo, but I think there is that awareness of, of how you do it. And you know, but to speaking about Django and how we make it more approachable, that is something you've spent a huge amount of time and I don't know how we right now, it's really just an add on to Django cons when they happen when we can, but figuring out if there's something that DSF or others can do to make it Easier to contribute to Django, you know, because the code is relatively mature, there's all these doc stuff. I don't know the answer to that of working group, but no 22 things normalize, doing something around that would be important

Carlton Gibson 20:15
thing we'll want to do that been on the list for a while is recognizing the contributors better. So before point i hoping to put a bit of time in over the autumn, David Smith has been taking an interest in this as well, in just drawing it together as well as we can, without putting too much work into it a list of you know, people have contributed and trying to call out some of the contributions and you think, why does that matter? Like, can we just get on with coding? Well, no, because you know, saying thank you, that's that, that in itself is a good thing. But also, you know, new contributors that to call out their contribution, skip them something objective to point to that, that really helps contributors, you know, it's alright, if you're experienced contributor, I really don't need any one particular pull requests to put on my CV. But if I'm a new, a new contributor, especially, you know, one who hasn't not necessarily gotten all the time in the world to donate to open source until they get recognized, then having some kind of objective recognition is important. But then there's also so much sort of hidden work that goes on, I did an awesome workshop over the summer, whose name totally escapes me, but it was about on this very topic. I'll put it in the show notes. I could I really can't remember it right now. But, you know, like, I don't know, the people who run the insolence, internationalization localization list and the translation? Because what do they do? What do they even do? Like, you know, there's all these hidden jobs that they do. And so if we can call out what they do, and say, Thank you, then that becomes the basis of kind of like a how to like, because there's a list of jobs that all need doing. And then it also becomes a kind of the basis of a volunteer call for volunteers who say, look, there's all these jobs that need doing, and they're in the hands of two people who've been doing it for a decade, and one day, those people are gonna need to step away or just need a break. Right? And can can we just Can we make that into something that's more addressable. And so recognition is not only important for itself as like, what kind of morally the right thing to do. It's also about maintaining the sort of stability of the framework as we go forward. As the as the, as the people who've been doing all this invisible work, need a break, or need to step away or, you know, move on to other things? Can we replace them? Do we know what they're doing? Can we replace them? Have we got easy addressable jobs? So a new volunteer comes along, says, Hey, I'd like to help with the localization, what can I do, and it's like, Well, to be honest, short of going, you know, the contributor guide is there and you can go and try it. And that's, that's quite a hard thing to get we, it's quite a hard thing to get going with what we don't have is like these clear, identify jobs that a new contributor can take on. And so part of the recognition effort is, is about identifying those jobs and making them addressable to new contributors. Yeah, and

Will Vincent 22:59
it's just extra work for the people already doing the work is part of the issue. But at the end of the day, recognition is easy to provide, I mean, the internet, the internationalization, they've moved to the forum, the Django project forum off of Google Groups, because that's something the DSF emails people can write in, on the forum. A lot of them are around someone saying, I want to translate it into this to that language. And they, you know, they didn't, they weren't able to find where the internationalization group is. So we got a couple of those a month. And yeah, why don't we do it before? Okay. But the dope to have someone from that team on to talk about the work that they do, because it is completely invisible to 99% of Django users?

Carlton Gibson 23:41
Yeah. And like, the contributor guide is great. And it is, in a way everything's it's kind of there, but it's, it's so dense and so unapproachable, that people have repeatedly report like, people like I can't get started. And there's no good science keeps saying, well, it's in the contributing guide, because the contributing guide just isn't working. So I mean, it is we it's only FM, you know, it is it is working, but not to the scale we want and not, you know, the number of times a potential contributors come up, and then why have you got an easily addressable thing that I can take on? And the answer is no, not really. And that kind of breaks my heart every time I have to say it, because it's like that, that's not Django being easy to contribute to where it could be.

Will Vincent 24:24
Well, we have these conversations both to have them and also so others can hear what it's like in our positions and the things we're trying to, to do. So for right now, is there anything else you want? Or can we move on to what people should expect and for

Carlton Gibson 24:39
Yeah, we just talked about for banana like, so. I mean, the big thing for me then was with removing two zones, we're changing the timezone implicate implementation so for years we've been using parties, and parties everything installed when you install Django and Python 3.9. The added to the standard library was this, this sown info module, which is kind of a was the timezone implementation and that from 4.0 that's the default timezone implementation in Django. So if you're doing everything in UTC, like, you know, the docks, I use UTC in your database and do all the calculations in UTC and then just localizing templates and forms and things like that, it'll all just work perfectly. But if you're using the pi t Zed, localize or normalize API's where you know you, you want to convert it into a time zone, then do some arithmetic, and it might have gone over a date time, you know, a DSP transition. So you have to, you have to normalize it again, if you're doing all that stuff, then you'll need to audit your code. And there's a there's a transitional settings. So you can set this transitional used deprecated party said setting, and then there's a party set deprecation shim package, which you can use to, to wrap around zone info and give it a party's Ed like interface. And then when you call that in your code, it will raise a warning and that enables you to find your warnings. So that's, that's super, that's

Will Vincent 26:13
a big deal. That's one of those things, I think time seems not complicated until you get into programming. And then you realize, Oh, my gosh, and I did want to call out, we'll put a link to it. Russell, Keith McGee had a great talk 2018 all about time, and Django and Python. So learning about time, that's one of the things for students for newcomers thing, it's a great rabbit hole to go down. It's like, well times easy. Is it, you know, like, what? No, I mean,

Unknown Speaker 26:41
it's seems like it should it's,

Carlton Gibson 26:43
it's, it's just, it's far too blocked for words and the like, you know, and so that this is abstract ka te Zed info. And then there's, there's in the standard library, there's date, time, type timezone, and then there's party said, and then there's now the zone info, implementations of this, and none of them are really compatible, they don't compare against each other. And it's just, it's a weird and wonderful world, shall we say. But anyway, it's one of the really important reasons for you to test during the pre release period is like, you know, this should all work, you know, if you're doing the right things, it should work. And if you are using the, you know, if you are using the party said API's, you're just going to have to adjust your code. And the party said deprecation shim package has a really great migration guide that shows you, you know, how to adjust your code. But if any, if there are other issues that come up, and we need to know about them, because zone info is the future of time zones in Python. So it's time for us to make this change. And that will be the transitional settings available all through four point x, the four point X series, so till Django 5.0, you can use this, but ideally, you would get you would migrate sooner rather than later and drop using that deprecated party said, and use an empire. So that's, that's one big thing. Functional, unique constraints in the database. So you can, you know, have kind of computed constraints. So you know, that there's only one that's less than this or something like that, you know, I try to think of an example merited very excited about those. The Redis Cache back end we've talked about so that's, that's not as complex as the, you know, is perhaps Django Redis, perhaps, which is, you know, that that has more options. But if you're, if you're just want to spin up a Redis Cache with Django, you don't now need to reach for third party package. And

Will Vincent 28:43
right, and I did want to Yeah, I met was mentioning this to a couple people who are programmers, but not in the Django world. And it is important to note, this just means official Django support. It's not that Redis is now downloaded with Django. No, instead of having to reach for a third party package. I had a couple people make that confusion. So I just wanted to mention that it's, it's more just, yeah, there's an official support and Django Redis is still an awesome package. And hopefully over time, if we need those things, they'll be moved in.

Carlton Gibson 29:10
Yeah, I mean, so the thing with so like, with the LRM, for instance, we support my MySQL, Postgres, SQL lite Oracle. And so the ORM needs to capture what's common to all four, and it needs to abstract over differences. Same with the bait with the with the cash back end, you know, we've got the M cache memcached back ends, we've got the Redis back end now. You know, it's a local file cache, but they offer a kind of unified API. And then it's beyond that API. It's open to third party packages to go further. So you know, there's lots of Postgres add on packages that you know, make more use of things that Postgres can do, which perhaps sequel lite Oracle can't and, you know, so there's always going to be room For Django Redis package, which goes beyond what we're going to offer in core, but I remember I remember spending a day two days, trying to work out which Redis cash package I should use out of the options and how to configure it. And, you know, all these bits, and then, you know, a couple of years later, when I need to do again, I had to spend that same day.

Unknown Speaker 30:26
Ah, like, what did I decide last time? I can't remember?

Will Vincent 30:30
Well, that's like me with Heroku deployments for the book, because Heroku has not updated their docs in years on the matter. And I've done it so many times. And every time it's like, What a waste of Yeah, what a waste of time, this is. Okay.

Carlton Gibson 30:47
And then the other button down, though, well, hang on, hang on. One more feature I wanted to mention for 4.0 is, I mean, there's the whole load and minor feature, but the other one is template based form rendering. So you know, we've got your form as as P or your form as table reform as ul, or, well, that's all now move to the template subsystem. So a few years ago, we moved the widget rendering template system and you could customize the widgets. But who's customizing the actual widget? No one really what people wanted was to customize the sort of the HTML that's generated when you when you get in your template, and you just go for, you know, like, output the form. And now that's, so the default kind of proxies to as table but if you, you can override the, the default template template, and you can have it as you want it. So this is going to really, it's going to be interesting how this interacts with the likes of crispy forms and floppy forms, because those libraries, they then they may be that they're not needed anymore, or, you know, aspects of them aren't needed anymore, that they can drop away. But that's quite exciting. Because say you want to have forms that just by default render under no, using your your fancy, you know, CSS framework that you've you've got, you can create the templates to match that framework.

Will Vincent 31:58
Well, that those defaults, like, around templates, forums, those are very confusing to newcomers, that's something that I have, like a paragraph to sort of say, Hey, this is this is just a part of Django that you need to know, why does dash whatever, you know, dash p work. So that's good. I mean, so make sure I'm accurate for four point.

Carlton Gibson 32:20
Yeah, so I mean, ideally, you'd people would stop using as table as, as p as ul, and what what they use instead,

Will Vincent 32:31
what goes now you're just putting the view, right, you would wonder no, you're normally you would change

Carlton Gibson 32:35
you just use the string randomly. So you know, we've got double on the string, the string method that where you would just output the form and that's always proxied to the table, it's always the same output as table by default. But if you wanted to customize that, you would just customize the default template, you'd overwrite the default template to have how you want the form to appear. And then instead of going in your template, curly bracket, curly bracket P, you just go for and then you just however, whatever the default string representation of the form is, it would render the template that you've configured for your project and then those methods they can eventually be deprecated more that because there's accessibility problems with Yeah, you know, it like the P element in HTML, it's not allowed to have other block level elements inside it. It's just not valid HTML Yeah, so every time you're using SP you're outputting invalid data it's not a great thing and then there's there's accessibility issues with tables and these kinds of things that we can make we can try and make those those templates the better but ideally you kind of craft your your this is how I want forms to look in my project and you know be very easy for third party package to just come along and say look in his some form this is a default form template for you know, tailwind or for bootstrap or for you know,

Will Vincent 33:54
well that sounds like something I should I'm gonna play around with that and maybe have a tutorial or two for 4.0

Carlton Gibson 34:00
So anyway, that was the full book there's loads in it it's another it's To be honest, it's another massive release they just keep coming the community is amazing and it literally you think, you know, there won't be much for the next one and then there's just this huge list of awesome features plus a billion bug fixes plus and it just works and you know, you update pip install daxue Django pi test to go five minutes late, you know, it passes deployed, and it's, you know, Django is just amazing is yet another blinding release.

Will Vincent 34:38
Yeah, well in Python still taking over the world. I think. It's officially or pretty close to officially the most used language

Carlton Gibson 34:45
now. Soon, it's gonna take oversea and incredible

Will Vincent 34:50
Yeah, so you know, we'll wait for it when 4.0 comes out. I'll send you the Hacker News link saying oh, wow, Django. Django is still a thing. I know you love the Hacker News. Reddit conversations. Just

Carlton Gibson 35:05
don't even get me started. But like you get down to like, comment to why why are they using? Are they using j s framework hotness of the

Will Vincent 35:13
Well, I just don't know what the what the current default hotness is. Because back in my day, it was rails and then it explodes. Like there is still right. It's fast API, like what is

Carlton Gibson 35:23
still rails and still Django, you know, because if you, you know, in the real world away from hacking us away from it in the real world, like, it's these these mature frameworks. And then the exciting one in Python world is fast API, lots of people using fast API. And that's super nice. Great. And that's, that's awesome. And then flask has just done a big update. And you know, so that's, I mean, it's a really vibrant time with Python he co system. But that's a different question from, you know, these threads on, you know,

Will Vincent 35:55
yeah, well, boot boot camps. I mean, just as a quick aside, I mean, there was, yeah, let's go into this. So boot camps are struggling. Yeah, team, treehouse is having some problems, among others. But there it remains, I think of this because I teach, you know, there remains this problem of how do you get people into coding, and it's just hard. I think at the end of the day, there's only so many people who can pay out of pocket and have the time to teach themselves. You need even if you had the perfect curriculum, people need a company to sponsor them, they need to be able to take it in the United States take out loans to go study this stuff. It's just a really hard problem. And there's not that many people who can pay $30 a month and get very far. And so all these companies you see if they take outside funding, which they usually do, they veer towards being internal training tools for corporations who say, you know, General Electric says let's skill up 1000 people to be engineers, as opposed to something else. And it's so it's a hard nut to crack. There's Free Code Camp, which is amazing. And then there's kind of nothing else as I see it out there. So if anyone has any answers, that's something I think about a lot. How do you I you know, aside from saying you just need to keep it small, keep it solo solo, keep it sustainable. And over time, provide these materials. Giant, it's a little and then what do they teach? No, I don't know of boot camps to teach Django maybe they teach flask I still think they're all JavaScript d 12. Week things. You know, you have a crud Javascript app, and then you're released into the wild and it's kind of sink or swim.

Carlton Gibson 37:31
Yeah, I think the point you made about like, people not having the capacity to teach themselves like because it takes ages right? It takes it just takes you've got to have so much time to sit at the keyboard being confused that very few people have that time and they're all the same demographic and that ties back to the contribution problems we're

Will Vincent 37:49
talking about well right that's that's the Coursera and all these places you know where people are taking 100,000 people sign up for a Master's Course on AI it's like yeah, well they already all have a master's and went to Stanford you know it's that's not the anyways as an aside that that was unfortunate. I don't like to see a tech companies not do well. But Soviet

Carlton Gibson 38:10
to button what our thoughts are button. Button buttons button. No, yeah. That's coming. That's it's always been it's been coming for ever. But this juggling balls and then COVID issue. So that's been that's coming on really well it's it's coming together really nicely. I've got the first users on board, solo and team, you know, starting to play with it and make sure the edges are right. works just as it's it's you know, it's a it's a principle keep it simple. It's, you know, a guide, how to it's a community of people doing it the same way. And it's, it's some tooling. And the question is just my capacity to put it out, and because I'm not super, you know, I'm not funded to do that. It's very much what I can fit in this bed around, you know, following that, and other work around my children around my family around all those things. So it's gone slower than I would imagine, but then, you know, everything's gone slower than I would imagine. So I'm, I'm, I'm really happy. I'm really excited. It's coming very soon. Very soon, in real terms, like, you know, over the next period. And yeah, I, the people I've got using it are saying, Yeah, you've thought of everything that I'm concerned about. And that's what's nice is it's not you know, that's what you that's what I set out to do. That's what I said I do, because it's not it's not you know, if you're already an ops expert, it's not for you, it might be for the people you're provisioning for, right? Instead of you, you know, building this platform for them to be able to provision on you might just be, hey, just use button. But if you're already an expert, it's not for you. But if you're not interested in all that, or you haven't got the time to learn it or whatever, then, you know, maybe it will be an option so that I'm quite pleased. It's coming.

Will Vincent 39:54
Yeah, well, it's something you, you can't get wrong. I mean, if someone's deployment doesn't work, that's a real problem. It's not Not a typo in documentation? It's, you know, yeah, the bar is a bit higher. And with your project then yeah, and also I

Carlton Gibson 40:08
want to be, I want it to be easy to use, right? There's no point having a simple deployment, that's just as hard to use as a hard one. And so it's got to be, you know, you guys will just do the hard deployment, then, you know, I don't want to give you yet another come online thing where it's horrible, and you've got to remember these incantations and if you can't get if you don't get incantations wrong, it gives you an Paik error. I don't want that. And so, okay, if it takes it's taken a little while because of COVID. And because of, you know, life stresses, then that's totally fine. That's totally fine. Let's get Yeah, it's, it's,

Will Vincent 40:42
that's exciting. I'm ready. I'm ready for it. When you when you're ready.

Carlton Gibson 40:45
I'm so ready for it. Like, it's such a, it's so like, just like, Oh, I just want to get this stuff done. But, you know, life has had other things to say over the last couple of years. So that's okay, slowly, slowly catching monkey. It's, it's it's, it's, it's long haul bootstrap. They're not VC, you know, fancy. So,

Will Vincent 41:04
yeah, well, every time I update my books, I spend more than half my time on Heroku and sendgrid, which are the only two things I haven't been able to strip out. And it's just a pain. So I would love for, you know, something so

Carlton Gibson 41:21
Okay, so it will help you when you rewrite into the 4.0 versions. We've got. We've got something for you to point do you

Will Vincent 41:27
think well, by December? Yeah. Do you think Yeah,

Carlton Gibson 41:28
yeah. I mean, I'm, like, I'm, I'm there. Like, it's all works. It's all there. I just don't know. But I just, I'm ready, I just literally got to wrap up the bits in an order that I can deliver them. So, you know, I'm so bored of having inventory sat on the shelf with it, that it's coming. And it's just a question of how I can wrap it up in the nicest way. That's all.

Will Vincent 41:53
Yeah. Well, on my end, I have finally, in some earnestness started a Python book, which is sort of when I get flustered in my Django stuff. So this is I've been talking about to myself and a couple other people for a long time. And I bought the domain name, so it's gonna happen, right? I spent the $12.

Unknown Speaker 42:13
Yeah, yeah, there you are. They all look forward to your dog. It's official, it's like, by the by profit. What's B?

Will Vincent 42:24
Yeah, collect underpants. But it's, it's actually it's really fun. It's really fun to write something new. I love doing the Django books, but they first came out three years ago, I think. So it's a different thing to rewrite them as opposed to something new. And, you know, there's so many good Python books out there. I mean, Eric Mathis is Python Crash Course, for example, is a fantastic book. So I'm having to think a lot about like, well, what would I do that's different, you know, besides my voice, so you know, I'll talk about it when I have stuff to talk about but cool, very fun for me to do. It's been educational just to go and revisit to think about what levels introduce things. How can you incorporate projects and maybe multi step units, you have a Mad Libs and then that's a basic thing with variables and strings, but then maybe you can add in functions and logic and you know, how do you make a progression for people? So that's a fun project and I can't put a timetable. I'm excited to have something else to know that sounds

Carlton Gibson 43:18
really exciting. I mean, I think the Python Crash Course and then the other one is automate the boring stuff, right? I mean, I think those those are the two Yeah, those are the two those are the two if you you know, so if you if you canonical you're sort of looking at them and saying well, well what different Can I offer? They're not you know, it's an interesting that's an interesting thing to be thinking I think

Will Vincent 43:36
Yeah, and then you know, when you get more advanced there's, you know, fluent Python is among the best and I think he's got it he's got an update coming out. Yeah, I'm so excited. So that's an amazing, he's gonna work out that's an amazing, you know, next tier book. So I'm really interested to see so it would, yeah, the one there's a lot out there, but give me an excuse to buy even more Python books and you know, see what I like and don't like and how its presented and

Carlton Gibson 44:01
what I picked up recently was David Beasley he's done Python distilled

Will Vincent 44:07
which is just it's just I know who he is I didn't realize how Yeah, so

Carlton Gibson 44:10
he did the Python central reference years ago and was sort of updating it and I think over the course of it being updated it became this Python distilled so you know if you if you know cuz

Will Vincent 44:22
he does all the compiler course Yeah, it's

Carlton Gibson 44:23
really exciting stuff and he dogs on typing the whole time. So you know, I'd like to get him on and

Unknown Speaker 44:29
see. See if we'll talk to us about

Will Vincent 44:32
Python. No, no Python Dario?

Carlton Gibson 44:34
No. Python typing, typing

Will Vincent 44:37
on typing. Wow. What did that just came out like a couple days ago. As ever, Carlton you're an aspiration to me So anyways, I think that's it we have, right Is there anything else beyond we have a whole number of guests scheduled? So I won't just be yammering on it'll be Yeah.

Carlton Gibson 44:59
I like it. When we go We haven't you haven't done in private for ages?

Will Vincent 45:03
Yeah, that's true. And you know what? We don't have any sponsors. So

Unknown Speaker 45:06
yeah, we do we do like to say,

Carlton Gibson 45:11
the dimension to people to download the 4.0 alpha and test against datecode. Did I mention

Will Vincent 45:17
that it'll be the top link? Please do that if you're listening? That's very important. And yeah, I think thank you for mentioning the the Redis survey thing is a small thing. But honestly, that's exactly the example of like, it's hours and hours of time, kind of in the dark. And just just knowing that makes me feel justified. And all the time on the the two surveys, because I didn't really know that did much. Yeah, no, I think frankly, I it's something I want to get off to a new board member next year, when we have a new board saying, Get You know, Anna, and I have a list of things saying, okay, there's a number of things we're doing now. And, you know, that's one of them. I think it'd be better to have someone fresh, but also, yeah, it has helped I mean,

Carlton Gibson 46:00
if you've done it, you can outline the steps that are involved, at least then you've got that how to, which is the, you know, who's gonna volunteer to do this? You know,

Will Vincent 46:08
right. Well, and you know, Tim Graham, had done the last 1656 years before. And so the one last year was a Google form, I got a lot of feedback from you and Marius and, and Jeff and some others. And then this year was quite a bit easier, there were still 20% new, and we removed some things. So I think it's been a rough refining stage, which I think is an easier place, but a better place. And with this AI component that JetBrains have the kind of long form answers, we can decipher that we can do a lot more than just check the box. And so I'm interested to see, because that's that's what they do with the Python survey. They're able to do stuff around that. So they had a number of questions around tooling and other things. And they can, we will see, but they say they can, you know, analyze that, okay, nobody's in a way that obviously a Google forum

Carlton Gibson 46:55
is not nice. I mean, you know, they've already got that capacity, but it's nice for them to learn that capacity to help us and maybe they do, we are the

Will Vincent 47:05
they're the biggest sponsor to Jango. And actually, one thing for next year, actually, this is an important point. translations, so we didn't have time this year to translate the survey, but that's something I really want to do for next year. And I will have the time so that we can put it out there and either JetBrains or we can ask the community to translate it so it's available in other languages, not just English. Okay, let's call it quits. lovely to see you Carlton. Congratulations to Mrs. On 4.0.

Carlton Gibson 47:32
Yeah, well, that's my name. Nice. Congratulation. Marriage is he's been driving,

Will Vincent 47:37
as ever. @chatDjango on Twitter. And we'll see everyone in two weeks.

Carlton Gibson 47:43
Join us next time. Bye bye.