I am now using Django (a python web MVC framework) for several web development I am involved. I have been questioned several times for the reasons of this choice. In this post, I will try to explain the reasons that lead us to work with Django.
We had to develop several web applications, and we do not want to start from scratch, we wanted to use a framework. As I am working in a firm specialized in Java, and some of my mates are Java developers, we first consider using a Java framework: Cocoon, Srping and others had their chance. Due to framework complexity and lack of time for learning the framework, we had to resign. Moreover, interactions with system were not easy (like for creating accounts, we wanted for that to make both command line interface and web interface available). I could add that Sun JDK was not free, and more complicated to setup.
Then we were in the “Rails boom”. We gave RoR a try! We had a script language, free with lot of library. Rails looks great, develop really fast, quite easy to learn, BUT, how difficult it is to deploy in a production environment. I ever made a post about that, I will not add anything to my old post.
Due to my Ubuntu love, and love from Ubuntu guys to Python, we give python framework a try. We tried Django. It was easy to learn (as I am not a good coder, this was necessary for me ;-)), easy to deploy, and we things we enjoyed:
- instead of generating the web site like RoR (you never use because it is too generic), Django have an administration website. This “super” phpMyAdmin can edit entities
- templates: in Django we have templates, you can define a generic one (for header and footer for example) and get it included in other parts of your website. For us, this was THE concept.
- we had a lot of python module available in Ubuntu, for all sort of interactions
Sure, the fact that we all use Ubuntu and that python is something very well maintained in Ubuntu biased our choice. We now have several projects that are going on, and we have no regrets regarding choosing Django.
Django 0.96 with newforms has just been released. You should give it a try!