I must come across as a bit of a django fanboy, but it just keeps getting cooler the more I work with it… Today I had to launch a massive, bespoke webparts integrated intranet for the firm I work for – the entire thing is written in Asp.Net 3.5 with the AJAX CTP and even makes use of some internal webservices to transport data between apps. The whole thing is modular and runs off core libraries that are pre-compiled into the Global Assembly Cache to increase speed, blah blah blah…
It was so frustrating!
Having to go over Vb.Net code and work with the data interfaces we developed I was longing for the intuitive simplicity of Django’s Model API, I was sitting there wondering why I couldn’t filter my results there and then and the functions I needed to retrieve data had to be hand-coded into a data-layer? Blech!
I guess I could always use LINQ…
The other annoyance was the build cycle – I never realised quite how much time was wasted deploying an application in .Net, debug, compile, upload… I just svn my files to my production server with Python, and bang! it runs!
The argument for speed does not impress me either – yes .Net is compiled to MSIL, and that is faster than an interpreted language, but essentially Python is compiled to bytecode – so in speed comparissons (I haven’t checked, btw) I would say that there probably isn’t much difference.
Anyway, recently I’ve been working on some other projects and I must say that by comparison to Asp.Net’s Ajax interface (which is cool and yes, flexible) – I had a much easier time integrating nifty effects into my test projects (and a lot more fun) than I would trawling through all that ugly markup in VS2008.
It was a simple matter of using the protoculous library and getting all these wizz-bang effects, right there, integrated in a way that seemed natural to the web development cycle. With .Net it’s all about working around the framework to get stuff to work, with Django you just plug it right in…
I realise that writing the Intranet application would have been daunting in Django, but I feel I could probably have managed quite nicely if I knew more about the various free Ajax libraries out there (which soon, I hopefully will!)
The point really is the right tool for the right job, .Net is great for integrated windows apps and web services, but producing smaller, flexible websites is just perfect for Django – in what other framework (apart from Rails) could you put together a site in under a week?
I don’t want this to turn into a Django vs. .Net rant, because both are excellent tools (and people that bash Microsoft about it’s developer support are just idiots) – I just wanted to say that if anyone were to get into web development, then Python and Django are an excellent way to go, it’s simple, quick to understand and intuitive, yet extremely flexible for more advanced work.