DjangoCon.AU Friday, July 5, 13 Hi everyone. I’m very excited to be able to kick off the ﬁrst DjangoCon in Australia, this is a real pleasure, so thanks to all of you for coming out and making this as a reality. So this talk is titled “A divided web and the role of frameworks” and I want to talk today about two things, ﬁrst the direction the web is headed, as I see it, and second about the evolving role of web frameworks, particularly Django.
Friday, July 5, 13 But honestly, a more accurate title would be this. A lot of what I’m going to say is about the history of the web, and of computing as a whole, as I’ve perceived it. I’m wrong about a lot of this stuff, my hope is that I’m wrong in an interesting way that helps you think about these issues.
5, 13 I like my talks to have a clear takeaway message, something I want the audience to have learned, or something I want them to do. Today’s message is: I have no clue what’s going on. So, keep that in mind.
beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move.” That’s a Douglas Adams quote. This was a key step in the internet coming into being.
ﬁve computers” Friday, July 5, 13 Allegedly said by Thomas Watson in 1943 (might just be apocryphal). I don’t think this comment is reﬂective of being dismissive of computing, but rather indicates a very sever- sided approach; we’ll have a few giant computers and everyone will get some time on them.
the Apple II is released, which in my mind, at least, marks the beginning of personal computing. Look at this thing, it could ﬁt on a desk! It cost about 5 grand in 2012 dollars, had 4KB of RAM, and a 1MHz processor.
1990, Tim-Berners Lee invents the web as we know it (for some values of “As we know it”). This includes URLs, HTML, and HTTP. The most important detail of the web is that it wasn’t an application protocol. It was a platform. (SMTP, FTP vs. HTTP)
13 So of course in 2004/2005 Rails and Django were released. They had as their objectives making practical dynamic websites easier to build. If you want a blast from the past, go watch “Snakes vs Rubies” presentations from Adrian Holovaty and DHH in 2005 on Django and Rails.
5, 13 This was a pretty big trend in computing, whether or not the majority of your computing is on the server or the client. We ended up with both for web apps, and this isn’t going to change ever. You want remote so that it works anywhere, and you need locals because of the laws of physics.
ever before. Tons of languages that were popular in the 70s are dead. Stuff isn’t going to die so fast anymore. There are bigger installed bases, more developers who know the tools, more code written with them. EVERYTHING popular today is going to be the COBOL of the 1950s.
is a hugely important. The tools we get don’t make it possible to do things, the ability to do thing, basically comes from the browser. It was over a decade from the creation of the web to Django. They make things easy. And this is where the divide comes in. Django made it possible to build the best websites of the day with a small team in not too long.
July 5, 13 In 2005, when Django was released, this was a thing people were trying (and failing) to do quickly. Django made it possible. It let a 2 developer team do things in a week that giant teams couldn’t do in a year.
Templates XML feeds Datastructure servers Search index External web services Monitoring and reporting API Webhooks Message queue Ofﬂine workers Non-relational database Friday, July 5, 13 And here’s his 2009 version. The green ones are the hold overs. Tons of new stuff, Django itself doesn’t really help with any of these, some of them have great external projects like queues (celery) or search (haystack).
5, 13 And it’s getting more and more disconnected. In 2005 Django did all the things, in 2009 it did some of the things, in 2013 it does even less of the things. And there’s no reason to believe this is going to change signiﬁcantly.
created more “application platforms” then ever before. Different tools for turning your web application into a mobile app, half a dozen different ways to automatically deploy your app, etc. Platforms should be standard (POSIX!), how do we get to there? Are we going to at all?
very general tool. Relational databases are very generalized tools. These were the tools of 2005. Now we’re using increasingly specialized tools it seems to me, and it’s not obvious if this will converge. There’s half a dozen databases to choose from, so many different JS frameworks, etc, etc. Can a general purpose framework compete? Can a developer know just one specialized tool?