Hi Phil!
Thanks for the very well thought out mail. My reply is in-line :-)
Post by Phillip BakerAll I can say is it is great news and if it no longer needs php for the front end then that is one less hassle set up wise to worry about Terry
Um. Ok, but by far the largest installed base as far as webserver
run-time interpreted code is concerned is PHP. For probably 85% of us,
we're going to be having to add Python to our webservers instead just
to support vexim.
There is certainly no disputing this. You're absolutely right.
Anyone who wants to use Vexim3 will need to install Python and Django.
More below...
Post by Phillip BakerThe apparent version portability issues that Avleen has hinted at
frankly makes me question if Python is suited to long-lived web
applications. The need for an entire framework (Django?) to support a
small webapp also makes me squeamish. The whole plan seems to be
adding layers of complexity to the supporting software - and each of
these layers seems to have known portability issues if Avleen is
already having to consider what version of Python he's going to be
targeting. Suddenly we have to keep track of Python, Django and Vexim
vulnerabilities instead of just Vexim (we already have to track PHP as
our customers use it).
The version portability would exist with PHP also.
For example, there are features of PHP 5.3 which aren't backwards
compatible with 5.1 and 5.2 (which *many* people still have installed as
their only supported or supportable version).
I spent a considerable amount of time testing Smarty, a PHP framework,
to see if that would be suitable and assist in the PHP development line.
Again for the reasons of my own comfort level being able to support and
maintain a PHP app, I had to turn Smarty down.
In any case, I don't think a framework is something to shy away from :-)
It has many advantages for you, the user/admins, as it does for me and
anyone else doing development.
Bugs are arguably easier to find.
Code is simpler (so far Vexim 3 is less than 1/4 the size of Vexim 2).
We get a lot of things "for free", such as more secure authentication.
We actually ended up making a kind of framework with Vexim 2. It was
really messy :-) but it was a framework all the same.
You're right about the vulnerabilities issue. What I can tell you
though is that between them, Python and Django have had far fewer
security vulnerabilities (to the best of my knowledge) than PHP. Python
has been around since the early 90's and is quite stable at this point.
The complexity is a trade-off. There is more complexity in the backend
and framework, yet our code is far simpler which lets us get many more
features out, fix bugs faster, and overall provide a better system.
Post by Phillip BakerI realise that Avleen has to go with what he knows. He (and other
contributors) provided us with a great toolset which we've had a lot
of use out of over the years for which I am very thankful, but despite
its' proponents most fervent wishes, Python has a long way to go
before I would consider it normal to encounter in a webserver
configuration. On that front, we won't be switching to a Python
version; we'll rewrite the PHP version in house if we have to. I don't
have time to learn securing a new interpreter in a web environment.
The web interface is not so advanced in its functionality that it
would take a significant amount of time to rewrite if it did
eventually become necessary.
The PHP version version certainly isn't "going away".
I'll still be making security updates to it indefinitely. If people need
help with it, help will *always* be provided. No-one will be shut out at
all.
Vexim 3 will be used for new features - someone has expressed interest
already in writing some groupware functionality which would be really
cool.
For what it's worth, I spent 3 years at Google writing applications in
Python + Django. May large organizations run this configuration, just as
many places use Ruby. Both of these are becoming more "normal",
alongside PHP.
As an example, Curse Gaming is a popular website for the computer games
crowd. In 2007 they re-wrote their entire site in Django. At that time
they were serving > 500,000 pages / hour. They're much bigger now.
Woome.com (where I also worked) is an online dating site with many many
millions of users. The entire site is Django too.
Post by Phillip BakerI'm not even trying to change Avleen's mind. What we have in the
current version of VExim is more than enough - but I don't want anyone
to labour under the illusion that just because they run and think in
Python that the majority of us do.
I completely respect that :-)
As I said, no-one will be "made" to upgrade in any way (I don't have
that control, nor would I want it!). The PHP version will continue to
exist.
If someone want to fork it and take over the open-source development I
would be more than willing to help you do it.
If someone wants to write updates to integrate, say, LDAP
authentication, I will add it to the codebase, test it and release it.
Thanks Phil!