Python web app. (advice sought)

Duncan Smith buzzard at urubu.freeserve.co.uk
Sun Jan 14 21:00:38 EST 2007


Hello,
     I find myself in the, for me, unusual (and at the moment unique)
position of having to write a web application.  I have quite a lot of
existing Python code that will form part of the business logic.  This
relies on 3rd party libraries (such as numpy) which would make porting
to e.g. IronPython difficult (I would imagine).  I was thinking LAMP
(the P standing for Python, of course), particularly as I was originally
encouraged to go for open source solutions.

The application will provide some basic statistical analyses of data
contained in database tables and associated plots (R / matplotlib /
graphviz).  There will also be some heavier duty Monte Carlo simulation
and graphical modelling / MCMC.  The user(s) will need to be able to set
model parameters; maybe even tinker with model structure, so it will be
very interactive (AJAX?).

I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone.  I get the impression that Turbogears
will require me to write more non-Python code, but maybe Plone is more
than I need (steeper learning curve?).  Maybe Turbogears will lead to a
more loosely coupled app. than Plone?

The disconcerting thing is that others on the project (who won't be
developing) have started to talk about a LAMP back end with an IIS front
end, .NET, and the benefits of sharepoint.  The emphasis is supposed to
be on rapid development, and these technologies are supposed to help.
But I have no real familiarity with them at all; just Python, C and SQL
to any realistic level of competence.

Any advice would be greatly appreciated.  I have to do much of the
statistical work too, so I need to make good choices (and hopefully be
able to justify them so nobody else on the project makes inappropriate
choices for me).  e.g. I don't mind learning Javascript if it doesn't
take too long.  The physical server will initially be a multiprocessor
machine with several GB of RAM.  But we also have a cluster (I have no
details, I only started the project a week ago).  So any advice
regarding parallelisation would also be appreciated (or, in fact, any
useful advice / pointers at all).  Thanks.

Duncan



More information about the Python-list mailing list