Maintaining a Python web application: heavier vs lighter framework?
- by Tiberiu Ana
Five+ years from now, you are hired to support and extend a data-centric web application written in Python that hasn't been kept up to date. Would you rather prefer it was written in the current version of Django/Pylons at the time, using the available standard components, or kept minimal with something like CherryPy/web.py and a few library dependencies?
Heavy framework
Advantages:
standard approach to application design and structure, as encouraged by framework;
less application code to worry about.
Disadvantages:
requires learning the framework to understand how things work;
broken things in old version of framework difficult to fix;
upgrading to new version potentially difficult due to changing APIs;
finding relevant documentation/help potentially difficult due to changing APIs.
Light framework
Advantages:
most application code is directly "visible";
only needed features are implemented;
architecture should be simpler to understand;
less need to upgrade external dependencies;
easier to upgrade external dependencies.
Disadvantages:
some reinventing the wheel;
non-standard design and structure (with the associated unique issues and bugs).
I will update the list with any helpful answers.