Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Django: Impressions from a Non-Web Developer (benkane.wordpress.com)
11 points by benkane on Jan 31, 2009 | hide | past | favorite | 9 comments


I would agree with the article that django has lowered the entry barrier but thats it. Problem with django is, it is easy to do 70% of the work but rest 30% would make you cry... as long as you have clearly defined problem, like newspaper cms or todo list etc., django is a pain to work with and the django ORM is a toy...


At DjangoCon, Mark Ramm warned against Django's "Z shaped learning curve". And, he's exactly right. Getting Django installed, pointed at your database, and opening up the admin is a joy. After, that, you have to roll up your sleeves and start learning.

It really takes a while to get used to the work-flow: Design a URL, created your model, created a view to push the data through to the template, design the template. Then, there's the Generic views, which are a whole other language to learn. After you get up to speed, it makes development a whole lot easier, but from the bottom of the "Z" to the top of the "Z" it takes a lot of struggling.


On the contrary with other pythonic frmeworks, the curve is not that difficult. Currently we are using the combo of cherrypy and dejavu in python, and the learning curve was surprisingly small.

Anyone who tried hands with sqlachemy or storm ?


We're using sqlalchemy here and it's been nearly painless so far. It scores on maturity (despite the 0.5 version number), great documentation and a very active and friendly community. The learning curve is steep (as with any ORM) but very rewarding because the pieces constantly fall into place. Everyday tasks are idiomatic and syntactically sane, plus even complex joins and subqueries can be constructed using the standard building blocks. So far we have not run into any limitations, unlike with the django ORM which gave us constant headache at some point. The latter really feels like a toy when you have tasted the real thing.


That is why I still prefer web.py over django any day. With mini frameworks such as these, you have a sense of what is going with your application. You know what gears are moving and what you need to do to get them to do something.

Django's willingness to do 70% of the work for me has always left me a bit uneasy. Too much automation happening under the hood. However I do applaud the effort of the Django community in building a rather comprehensive framework + libraries to stuff done. But as a builder I'd rather work with a minimal but effective set of tools. I'm old school like that.


Valid, or at least plausible, point - these are just first impressions and thus I've barely scratched the surface. I don't know where Django stands compared to other web development frameworks, but it's proving sufficient for my admittedly basic needs at the moment. Future projects will undoubtedly expose the rough or missing edges.

This isn't a good place to raise the discussion, but I'm curious as to what the alternatives bring to the table (and will be reading up on it). Django certainly isn't the end-all solution, but I am content that it's at least got me interested in finding out what's available and how they stack up.

(Er, meant to be in response to vivekkhurana)


For python, if the work is simple, we use web2py and if we need something scalable or complex we build the stack ourselves based on the combo of dejavu and cherrypy. Lots of components are available in python for different segments of a web application.

For web server/dispatcher/controller I think cherrypy beats them all. Cherrypy alone can take you a long way. For ORM there is sqlachemy, dejavu and storm. For forms there is formencode, for json you have simplejson... let me know if you need something else...


I also need:

* Django admin

* Django ModelForms

* Django Middleware

* Django ContentTypes

* and someday maybe GIS


Django admin is a blender, albeit a nice one. When the auto-admin covers your entire use-case then that's great. But beware when you run into its limitations (which happens quickly) - then you're in hell.

The other stuff can be easily had in any other python frameworks.

* Modelforms => WTForms or toscawidgets

* Middleware => Built into cherrypy (called "tools")

* ContentTypes => I'm not sure what to make of that. Looks like some really nasty hack on top of their ORM to me, I can't even understand the use-case. I guess you wouldn't need such a thing with a real ORM like sqlAlchemy or dejavu.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: