Python Web Programming - looking for examples of solid high-traffic sites

Matthew Nuzum mattnuzum at gmail.com
Mon May 21 16:42:14 EDT 2007


On May 16, 4:04 pm, Victor Kryukov <victor.kryu... at gmail.com> wrote:
> Hello list,
>
> our team is going to rewrite our existing web-site, which has a lot of
> dynamic content and was quickly prototyped some time ago.
See #3 below

> Our main requirement for tools we're going to use is rock-solid
> stability. As one of our team-members puts it, "We want to use tools
> that are stable, has many developer-years and thousands of user-years
> behind them, and that we shouldn't worry about their _versions_."

> TurboGears, Django and Pylons are all nice, and provides rich features
> - probably too many for us - but, as far as we understand, they don't
> satisfy the stability requirement - Pylons and Django hasn't even
> reached 1.0 version yet.
See #3 below

> And their provide too thick layer - we want
> something 'closer to metal', probably similar to web.py -
See #1 below

> Your suggestions and comments are highly welcome!

Victor et al,

I would propose that you ask some different questions. I propose these
out of personal experience, much of it from making poor decisions and
learning the hard way. Sorry if these sound gruff, I think its hard to
avoid when using bullet points; in my mind, these are all being
phrased as kindly and gently as I can.

#1
Seek flexibility over being "closer to metal." I say this because
whenever I've thought I wanted to be closer to metal, its because I
didn't want to be constrained by a framework's assumptions. I guess
another reason would be the need for raw performance with
computations, but I think you would have said that if that was your
goal. Still, "more flexible" is not always better. "flexible and well
integrated" is slightly better than "flexible to the Nth degree."

#2
Look for projects that deal with updates and security fixes in a way
that is sensitive to users of critical applications. This is better
than programs that change little. For example, does the "vendor"
provide patches containing just critical updates? Do they have good,
clear communication about changes that may break compatibility? How
long are older versions maintained? Asking these questions will help
you find a thriving project that is actively maintained and supported.
(contrast to abandonware, which hasn't changed in ages)

#3
Why haven't you mentioned maintainability or scalability? It sounds
like you're coming from a platform that you have outgrown, either
because your app can't keep up with it's load, or because you can't
enhance it with the features you want. You're not simply refactoring
it, you're starting over from the beginning. How often do you want to
start from scratch? If the answer is, "this is the last time," then
I'd worry *way* more about this and point #2 than anything else you
mentioned.

#4 (optional)
Has your dev team built many python web-apps? I'm guessing no, or
you'd already have picked a platform because of experience. If they
have not, I'd personally also ask for a platform that is easy to
learn, works well with the dev tools (IDE, debugger, version control)
you're familiar with, and has good documentation (dead tree or
online).

The unfortunate news, I'm afraid to say, is that because of the python
culture, you're still going to face tough decisions as there are
several mature products who score high marks in the areas I've listed
above. It seems the python community at large is insanely bent on
doing things the "right" way, so there may just be too many good
options to choose from.

But its better to ask the right questions.

--
Matthew Nuzum
newz2000 on freenode




More information about the Python-list mailing list