I feel that this is the right time to expand the wings of my web development skill beyond Drupal, and so I have been looking for a right framework to work on.
Python-based frameworks
Please note that I have very little experience with python, so my opinion here might differ with pythonic (or anti-pythonic) zealots. I gained most of the information here by browsing and reading the documentation of numerous projects, so my view is more-or-less a layman's or newcomer's.
The python language has garnered quite an interest for me: simple and intuitive, pseudocode-like feel, very high level, general-purpose, embraced by open source community. Much better than PHP, IMHO.
The state of web development in python, however, is somewhat disappointing. There are several major frameworks competing in different levels of service, confusing new users and fragmenting the community.
Django is the all-time full-stack old-timer with solid community and proven years of success. Historically it is made for publication houses with tight deadlines and mainly content-based websites, so it is big on admin interface generation. The main drawback is that it was born quite a while ago when python community is smaller, and it implemented everything by itself (namely the routing mechanism and ORM layer). Now that excellent components like SQLAlchemy made their way to the world, Django suffers from "Not Invented Here" / NIH syndrome where certain features won't be there because it cannot integrate existing alternative (and perhaps better) implementations.
Zope, on the other hand, seems to focus on lower level: web servers, transaction manager, framework for frameworks. The splendid Plone CMS built on top of Zope provides evidence that Zope can be used to create web application. However Zope also suffers from the same NIH syndrome, which might be ameliorated by Zope 3 (aiming to reduce NIH) and the Repoze project (providing compatibility layer to WSGI). Zope hype has certainly dwindled recently, and introduction to Grok seems not to help.
Another low-level framework is Pylons. The exact opposite of Django, it strives to universally glue existing python components and call it a "framework". Of course the choice of which ones to glue is left to the developer. Every part of Pylons is designed to be as flexible and pluggable as possible, which can be both good and bad. It has been a good thing for open-minded people who thinks that "one size does NOT fit all". Maintenance can be difficult, however, and the number of dependencies your web application would have is mind-boggling. Pylons itself and many of its dependencies are still in version zero (< 1.0), meaning that the developers have not considered their software to be worthy enough of v1.0. Which scares off new users.
Now we turn to Turbogears. Pylons was considered so good a framework that Turbogears builds on top of it. At least starting from the neonate v2.0. Turbogears is Pylons + Rare Candy: it's higher level and opines more (although due to its Pylons backbone it certainly is possible to replace components Turbogears thought the best).
So which one?
Given the current state, for me there is no clear winner. Actually a winner is not needed as long as there is at least one framework with decent design and community (and better corporate) backing. The trend now seems that certain components have their own project and community, so perhaps in the future, frameworks would behave like Linux distros, packaging components they think are the best and make it interoperable. It's such a good thing, but Django needs to die or shift paradigm before it happens.
No teme
Hello from Russia!
Can I quote a post in your blog with the link to you?
Hi! Yes you are welcome to do
Hi! Yes you are welcome to do so as long as the link is there. Thanks for the visit :)
Considerations
Consider read this article:
http://yeiniel.blogspot.com/2009/11/web-development-in-python.html
Post new comment