WebApp Frameworks.notes
Thursday, March 24, 2005
TITLE OF PAPER: PyWebOff: Mapping the Python Web Application Frameworks
URL OF PRESENTATION:
PRESENTED BY: Michelle Levesque (ml@cs.toronto.edu)
REPRESENTING:
CONFERENCE: PyCon 2005
DATE: Wednesday, March 23, 2005
LOCATION: GWU Cafritz Conference Center, Amphitheatre
--------------------------------------------------------------------------
REAL-TIME NOTES / ANNOTATIONS OF THE PAPER:
{If you've contributed, add your name, e-mail & URL at the bottom}
Problem: So Many Web Frameworks, scary, intimidating
Enabler: I'll write my own, that'll solve the problem
When ppl keep reinventing the wheel, you block a lot of progress
PyWebOff: What frameworks support what, and what are they good for?
Webware, Quixote, CherryPy, Twisted, Zope, Karigell, CGI (control set)
...more cute stick figures...
Start with a simple problem, Web Lending Library
What is not tested:
* Performance
* Security
* Robustness
* ...
The W. Richard Stevens approach to framework analysis - start from a new user perspective, write everything down, and save your final code in a public repository.
Everything blogged - lots of response
Not talking about Zope, Karigell or the CGI control in this talk
Webware:
MiddleKit - Decide on objects
UserKit
WebKit - All pages are subclasses of the default page
* Your pages can be subclassed as well
Quixote:
Must conform to the Quixote-way of organizing your pages
* Once you do, things work better.. :-)
Best features: widgets
* Fast way to create HTML forms
* Provides an object which displays, and then captures the output
Persistant layers: Durus
Doesn't support session persistence: you do it yourself
Thoughts
* much cleaner code
* took a lot of time to learn
* Serious learning curve, but worth it
CherryPy:
Lightweight, compared to other frameworks
Standard 'form action is method name' paradigm
Has a nice templating system, if you like that sort of thing
Very clean
Thoughts
* Intuitive system
* Template system: cool
* Potential lack of documentation
Twisted + Nevow:
The uber-framework, way overkill perhaps for just a web framework
Useful for Practical Internet Groupware
Powerful, complicated, templating system
* (nbastin) Probably worse than just using XSLT directly
General issues with Python web frameworks
Lack of support
* IRC (not good way of giving support)
* mailing lists (better, but still not the best)
* documentation assumes you already know what they're talking about
* not new-user friendly
Next steps:
* Finish the analysis of the frameworks still on the list
* Add more frameworks to the list...
* Need to have 'official' frameworks, or some sort of stamp that indicates the
one with the best documentation and active development
* Put more effort into the winners
* Do Not create more frameworks
* Need to reduce the framework set to a few simple buckets
* Speed, heavyweight, simple, etc.
Q & A Points:
* Difficult to install a lot of frameworks, also, tutorials are good, but
should not be relied on
* Is it appropriate to add a web framework to the standard library?
* no, but have some frameworks that are "Python-sponsored"
* Book promo spam for "Python Cookbook"
* Is there a mature Python alternative to Rails?
* no single answer
* Is there one that interfaces well with a database (SQL)
* Don't know how RoR does it, but they do all at least interface with a database
* Sean kills the Q&A period
--------------------------------------------------------------------------
REFERENCES: {as documents / sites are referenced add them below}
ml@cs.toronto.edu (Michelle Levesque)
http://pyre.third-bit.com/pyweb (PyWebOff site)
--------------------------------------------------------------------------
QUOTES:
--------------------------------------------------------------------------
CONTRIBUTORS: {add your name, e-mail address and URL below}
Nick Bastin (nick.bastin@gmail.com) <http://www.nickbastin.com>
Linden Wright (lwright@mac.com)
Nate Silva (nate@northwe.st)
--------------------------------------------------------------------------
E-MAIL BOUNCEBACK: {add your e-mail address separated by commas }
--------------------------------------------------------------------------
NOTES ON / KEY TO THIS TEMPLATE:
A headline (like a field in a database) will be CAPITALISED
This differentiates from the text that follows
A variable that you can change will be surrounded by _underscores_
Spaces in variables are also replaced with under_scores
This allows people to select the whole variable with a simple double-click
A tool-tip is lower case and surrounded by {curly brackets / parentheses}
These supply helpful contextual information.
--------------------------------------------------------------------------
Copyright shared between all the participants unless otherwise stated...