Recently I’ve been interested in web dev and web standards after disappearing from the scene for about a decade. Back in ’97 I was enjoying the ride of the web technologies, design, server and client-side programming, browser wars and what not. But all that had to end someday and that day came in mid 2000. I have a performance craze and wanted to dive deep into the world of desktop applications, servers and particularly highly scallable architecture, low-level (read: assembly) optimization and advanced algorithms. So I left the world wide web only to come back and rediscover it a decade later.
Finally interactive-web is here. Finally! Looking back at static HTML and how boring they looked, how hard and complicated it was just to get feedback from users and, even with that much primitive functionality, how incompatible web browsers were, gives me a shiver.
Now I have to cover a lot of ground. So much has changed and so much to catch up with. I have some experience with Python, honestly I love it. I’ve been using it on and off for a few years now. I thought I’d start with Python-based solutions. Some simple pythong http server (web.py). I do enjoy reading code, so I started by reading web.py. Fun stuff.
Django Tutorials? How about one better: Screen Casts! If reading code is good, reading working-site code should be better. Last, but never least, I had to get dirty with some code and created a toy Wiki in Django. I should say, the learning curve was rather smooth. Django has some quirks (queries) and some things must be done is a very specific way (projects/apps, models/views/urls …) but the thing that I find a bit annoying (especially during development) is the lack of support to import/create initial data (in the DB). The syncdb command is handly, but doesn’t work as expected when you change existing models. Probably works for some trivial cases, but add/remove some column, or mark one as index (or remove an index) and it will silently ignore you.
It’s come a long way since ’05 though. So I’ll cut it some slack. Plus, it’s probably the best python web framework. Not to mean that it’s perfected, far from it. Version 1.0 is in the very recent past (current stable version is 1.0.2 with 1.1 beta just released.)
Django and Python, what next? jQuery, JSON and Ajax. Then jump to CSS, Selectors and HTML 5.0. Not that they all work properly on all modern browsers, but exciting technologies nonetheless.