|
Posted by walterbyrd on 08/07/07 17:41
I am considering PHP and Python frameworks. This is what I'd like:
1) Good documentation
2) Active community
3) Easy to set up a CRUD grid
4) Built in ability to handle complex data relations
5) Strong data validation
6) Built in multi-level user authentication
7) Ajax enabled inline editing
8) Easy to deploy and configure
9) Low system requirements
10) Misc.
I have looked at the following frameworks, this is my analysis:
Codeignitor:
Great documentation, good community, very low system requirements,
easy to deploy. But fails on CRUD and Ajax.
CakePHP:
Biggest and most active community of all, low system requirements,
easy to deploy. Several popular PHP projects integrate with Cake in
one way or another: Drupal, Joomla, Mambo, PhpBB. The complaint I read
about, constantly, is the documentation.
Qcodo:
Decent community, system requirements are not too bad (PHP5), easy
enough to deploy. The CRUD and Ajax features are the best I've ever
seen. When it comes to developing a sortable, searchable, inline
editable grid; Qcodo seems to blow away all the others. I am somewhat
concerned about doing anything outside of what is shown in the
tutorials. Also, somewhat concerned about maintainability. For
example, I think Qcodo generates 8 files for every table you create -
seems like a lot.
Django:
The system requirement, deployment, and configuration issues seem
overwhelming. I get the impression that Python framework developers
just assume the user has complete control over the server. Those who
develop Python frameworks seem to have no regard for the realities of
shared hosting. System requirements tend to be sky-high: Apache 2.x,
mod_python (latest version), fastcgi (at least), command line access,
PostgreSQL (recommended). Assuming you can meet the system
requirements, you still have server configuration issues such as
setting up the Path, and maybe the .htaccess file. Then there is the
ongoing configuration: database model has to be synced to database,
configuration file for every application, urls have to be configured
to match your view, webserver has to be restarted every time modify
your code - or touch every file if using fastcgi. Django may be a
great project, but the admin overhead seems excessive. Also, not much
built-in Ajax support.
TurboGears:
System requirements about the same as Django. Better Ajax support than
Django. TurboGears in a bunch of other Python projects glued together.
I have mixed feeling about the "Frankenstein" approach. On the one
hand, I understand the desire to have "best of breed," on the other
hand, I'm not sure I'm comfortable with components being swapped out
fairly frequently. For example, according to wikipedia, TurboGears
components consist of: "MochiKit, SQLObject, CherryPy and Kid." As I
understand it, practically all of those components have been swapped,
or will soon be swapped.
Rails:
System requirement issues again. Also, as I understand it, Rails does
not handle complex data relations very well.
Navigation:
[Reply to this message]
|