-
Website
http://blog.dhananjaynene.com -
Original page
http://blog.dhananjaynene.com/2008/06/whyhow-i-ended-up-selecting-python-for-my-latest-project/ -
Subscribe
All Comments -
Community
-
Top Commenters
-
washort
1 comment · 1 points
-
danfairs
1 comment · 1 points
-
Paddy3118
2 comments · 3 points
-
dipankarsarkar
1 comment · 1 points
-
Dhananjay Nene
52 comments · 3 points
-
-
Popular Threads
This is a very good demonstration that for any project, one should take some time to think of the best tool to use (not necessarily the one we're used to).
Rails may "seem" limited, but I don't think it is and coupled with Ruby, the sky's the limit. You can mix-out pretty much anything and there are many other libraries which meet needs and "roll right in".
Nice post. Thanks!
By cies on June 9th, 2008
i\'d like to second the \'dude\' poster.. maybe you want to look at merb + datamapper. it is addmittedly not as tested as django but the setup of this framework makes a lot of sence (re-using ruby\'s gem framework for it\'s components and plugins, very loosly coupled, you can choose stuff like HAML and fly, many deployment options (including mod_passenger now more to come (jruby?)), ruby syntax all the way, super small mem footprint, eventbased, thread safe, ok i stop now) anyway, django looks nice as well nice write up.
Maybe maglev will change all this. Hope so :)
-R
I recently went through a very similar process, coming from a Java background. I also settled on Python and Django for similar reasons.
If you are interested, I wrote it up here:
http://jetfar.com/django-python-frameworks-and-...
Although perhaps not as succinctly as yourself.
BTW: I'm very happy with the outcome.
{I can understand one of your concerns about Ruby and doing justice to the language, getting caught in re-factoring, etc. Actually, I think we all go through that with Ruby by its very nature. However, its expressiveness and meta strengths keep us. We all need to exercise a little self-discipline…}
I just might be able to get the self-discipline ... if only I had the time to get there :). As I move towards dynamic languages - python seemed more manageable a shift in the given time frames than Ruby. I loved Ruby syntax and especially all its nifty features but found Python easier to read.
{Rails may “seem” limited, but I don’t think it is and coupled with Ruby, the sky’s the limit. You can mix-out pretty much anything and there are many other libraries which meet needs and “roll right in”.}
My assessment was that everything was doable .. but the cost factor here was much higher compared to hacking through django.
{Nice post. Thanks!}
All the encouragement helps. Thanks.
Ahh ! I skipped that bit about Pylons - didn't I ? I didn't find anything worrisome about Pylons - but what I knew for certain was that I would need an extended admin interface and would need to hack through the models. Pylons does not really get into those spaces much. Django offered a more comprehensive set of capabilities all nicely interdependent on each other (especially admin and models).
I preferred the everything in one box capability of django. I would like to keep framework changes to the minimum, and rather than having to study multiple frameworks and figure out how to change these in an appropriately interdependent way - made sense to have a single framework with all capabilities. Just makes it a little easier I guess.
Nice post. The contrasting between mod_python and fastcgi in the context of hosting environments is quite helpful. Glad to know you liked the post.
SQLAlchemy is by far the weapon of choice for serious applications, and Pylons is as pythonic as you can get when it comes to frameworks.
These two together offer a control and explicitness which far surpasses the rest.
And pray what would be the non-primitive UI that would be on offer from Pylons and/or SQLAlchemy ? Maybe I need to be educated but I did not see a another good UI forms tool in python which helps automatically generate forms (even if primitive per your characterisation) from the object model.
No disrespect to other frameworks - but isn't it just too naive to disregard something for being primitive when that at least helps you get half way. I am grateful for everything that helps me move forward and I try to move further down the road myself from that point onwards.
Most interesting is that the "traditional" web-language (PHP) seems no longer leading the pack of NEW apps by a great lead, and instead is constantly challenged by both python and ruby.
Thanks, I'll check out Xapian.
A very interesting peek into the thought process of arriving at the choice of tools for a particular implementation. This must be the same even if it is your first site or the latest one because these frameworks are bing actively developed. I noticed many people are thinking of using pylons and web.py, I hope my recent writeup on Python Web programming frameworks might help: http://www.arunrocks.com/blog/archives/2008/06/...
Cheers
I very recently underwent a very similar process to Dhananjay and ended up on Python/Pylons.
Django was cut out because it simply isn't built with the same philosophy as Pylons. This difference does matter to me and the complex applications I build. Basically, Django = Rails and Pylons = Merb. If your app is truly complex, Pylons loosely-coupled architecture of components will be quite a plus. Django's pluggability is useful to get to market quicker if you aren't doing anything innovative. If you want to whip a site up for blogging, just plug it in.
Lastly and more specifically, for most complex online apps I build, the idea of "automatically generate...forms from the object model" happens rarely. Often, the UI is as complex as the underlying layers and automated form generation is simply not feasible except on a few CRUDish pages on the fringe of the app. My guess is you may think your app is complex, but it actually isn't, from the UI POV. (The underlying layer(s) may be, but then Django's admin cruft doesn't matter.)
In the days since I realised more some of the issues you've pointed out wrt django and pylons a little bit more.
wrt the gui, I have in the past had the opportunity to build a complex gui on top of an object model. Its an exceptionally complex task. Which is why I do not believe django as is is going to work at all ... what I was saying is that django gives me a much stronger starting point to start introducing all the additional complexity.
You have got it right!
I performed a fairly thorough evaluation of the Python web frameworks and also concluded that Django would be best for a particular project I've been working on. This project required a comprehensive and powerful full-text search engine, as well as a javascript/ajax driven pdf-like browser. Hardly any of it used simple plug-ins (no blog drop-ins here.) Django very easily handled all of the "extra" stuff I threw at it. For example, there is nothing in Django's ORM that natively handles PostgreSQL's tsearch2 full-text engine. But writing the code inside of the Django framework to make this work was intuitive and easy.
I'm delighted with my choice, and look forward to using Python/Django for most future web applications. BTW, writing this application in Python with Django took FAR less time, code, and complexity than would have been necessary with PHP. My code is actually a pleasure to read! (for me, anyways ;)
Thanks for the post!!