Wednesday, 4 March 2009

Using Django




The Django Project was released as a framework based on python and is designed to be a
"high-level Python Web framework that encourages rapid
development and clean, pragmatic design."

Here at MARIMORE we use Django as our framework of choice for deploying web applications, and also for processing every other things as well, from data received through email to automatically producing reports and sending them through email.

The decision to use Django has more of a historical reasons than any other; I was trained in C on FreeBSD during my undergraduate days and have my roots in programming and data handling in that environment. Going through training in my first job at Sun Microsystems, we were exposed to many other scripting and programming languages, mainly shell scripts, perl and Java. For some reason or the other, I did not really latched to these languages. I did give Java a try though, but I think what made me lose interest was that it was not really an easy thing to integrate UNIX shell scripting with Java; I need to create some sort of a glue in the middle to make things work. I also find having to work with a lot of XML while trying to get JSP running with Tomcat was also not sexy. I blame all of this to my C background.

Going on board at Yahoo! Japan's Mail team first gave me exposure to Python. They used python for everything on backend operations there. There was 4 of us, 3 (including me) got into python while the other team member was more of a perl girl. The libraries and the web applications itself are written in C/C++ due to performance reasons. I hated that; Imagine having to muck with C/C++ code to change a small bit of output to the browser, and having to check that you've released your pointers and not stepping on someone's else memory.

The first MARIMORE service was Maritex. In it's first version, Maritex had PHP as it's frontend and we had python running in the back, sending and receving messages, talking to the db and parsing the XML. We moved to Django as it's front end engine for Ver. 2.

Currently we run Django everywhere; From the frontend to using it as the backend to automatically process remote emails. We have also created packages that will fit into django's stucture through middlewares and context processing to allow better integration with JP's mobile (read: keitai) environment.

Contact us for your Django needs.