July 27, 2007
Before I express why I chose Turbogears, I must confess that I am essentially a business application developer and not an expert in python or web technologies. I do not claim my choice to be the right one, and comments are most welcome.
In the beginning of 2006, I had to explore some rapid application development tools. That time I was a jack of all trades and master of none, and was thinking to consolidate myself on .NET.
But, to my surprise, I was totally knocked down by the development productivity some FOSS RAD frameworks were offering. The potential of the MVC frameworks on dynamically typed languages (Python and Ruby) affected me so much so that I did not mind leaving everything else.
So, I planned to practice one such framework, leaving .NET.
The crucial task before me then was to choose the framework to focus on. Although people say that it should depend on requirements, being a beginner, I did not have that skill and time to learn unfocused.
There were a lot of MVC frameworks, and my rough search hinted me that the leaders were RoR, Django, Turbogears, Pylons and Zope.
I tried using Zope for a couple of weeks, but it seemed too complex to me, and then I left it and switched over to RoR.
I was happy evaluating RoR, until I found out that the default ORM of RoR does not support certain things like composite primary keys, and hence it might be difficult for me to integrate to existing enterprise databases, or develop complex applications.
Then I pondered over Django. But I quickly discovered that although it seemed as the most popular framework on Python, it was having the same ORM problem as RoR.
This left me with Turbogears and Pylons. Among these two, Turbogears seemed more complete, having many readily available/integrated components like identity management and widgets [1]. I felt that if I went with Pylons, I might still have to write some top level layers or plumbing code, which Turbogears could readily provide. Also, Turbogears was much more mature and popular, having a big user group, from which I guessed that development and debugging would be faster.
So, I chose Turbogears.
Today, I feel happy to be with Turbogears. With some experience, I had further discovered the following points to support my choice:
Comments are most welcome here.
Footnotes
| [1] | As of this writing, I think Pylons has identity management and widgets, although in some early stage. |