Jim Carroll
Posts: 7
Nickname: mrmaple
Registered: Jan, 2006
|
|
Turbogears gets my vote.
|
Posted: Jan 28, 2006 8:51 AM
|
|
Hi Guido, I have done php, java (mostly .jsp pages), and zope development. Today I would use Turbogears, because it improves all aspects of my current favorite Zope2 technique.
In Zope, I use a page to show the contents of the database, links to pages that allow editing that pull from python scripts based on some database ID using ZSQL against MySQL, then the editing page has another script as an Action that validates, and changes the dates to MySQL format, then invokes more ZSQL & redirects to the next page. The problem is that any one edit & save operation is spread out against two ZPT templates, two Scripts, and two ZSQL objects... if something goes wrong the error messages don't point to the source of the problem, it takes quite a bit of thinking to figure out where the problem really is. I end up having to help my coworkers with this more often than I should.
Using just the CherryPy part of Turbogears and the Kid templates is attractive because all the things that (in Zope) are spread out across multiple python scripts and ZSQL objects is in one .py file accessing MySQL directly, and the error messages really do point to the problem. The Kid templates polish some of the rough edges of the ZPT templates... I find I don't need as many tal:define statenmenst to set up things to work nicely.
The only reason that I'm not using Turbogears at the moment is that I had trouble deploying it on my Mac Mini. I couldn't get mod_python to compile just right. I want to use mod_python because apache will re-launch my application on the first request after apache starts without having to have a different mechanism to start my Turbogears app.
One reason I don't think Turbogears is the ultimate web app framework is that every request causes Python functions to get interpreted. In the wxPython + C++ work I do my goal is that anything time critical is handled 100% by C++, and the Python is used to wire together the C++ objects at startup time. Someday the high performance possible with python/C++ hybrid programming will create the ultimate web server. The trick is getting the database access and string manipulation to be specified in Python at start-up, but then only touch C++ code during a request.
I'd like to hear what GUI tools you use for Python development at Google. The idea of Google putting resources into wxPython & wxWidgets in an open way (maybe even creating development tools to blow C# out of the water) is something I'd love to encourage.
Thanks for Python, -Jim
|
|