Django has always had a strong commitment to backwards compatibility, and is used by thousands of developers every day. This means that it's very difficult to make large sweeping changes to Django. This talk is a look at how I'd redesign different components of Django, if I got to do it all over again.
This talk has two parts.
First, identifying the principles we're trying to adhere to, and the problems we're trying to solve by re-imagining every single API.
Second, looking at specific changes to individual APIs.