

Django: Impressions from a Non-Web Developer - benkane
http://benkane.wordpress.com/2009/01/31/django-first-impressions-from-a-non-web-developer/

======
vivekkhurana
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...

~~~
iamelgringo
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.

~~~
vivekkhurana
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 ?

~~~
moe
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.

------
benkane
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)

~~~
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...

~~~
bandris
I also need:

* Django admin

* Django ModelForms

* Django Middleware

* Django ContentTypes

* and someday maybe GIS

~~~
moe
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.

