[Twisted-Python] twisted.protocols.telnet or twisted.conch.telnet?

Magnus Lycka lycka at carmensystems.com
Tue Mar 21 03:50:13 EST 2006

James Schend wrote:

>Look, all I want to be able to do is to write a program that can sit
>on a server for 10 years and run without me touching it.  My users
>won't necessarily be technical and (much more likely) the program
>won't necessarily be maintained, so it is important that the libraries
>used, if any, won't break my code with updates.
As long as noone maintains it, the libraries won't get updated, so
you have nothing to worry about. ;^)

If you have a look at PEP 5 http://www.python.org/doc/peps/pep-0005/
you will notice that "There must be at least a one-year transition
period between the release of the transitional version of Python and
the release of the backwards incompatible version." In practice, it's
typically longer than that, but don't bet on it.

You never have anything near 10 year API stability guarantees in
Python if you update the software. Even basic syntax and built in
operators can change. Changes of the division operator have been
announced more than a year ago, so you already live on borrowed
time if you don't use "from __future__ import division" and make
sure that no libraries you use rely on the old behaviour.

There is no way Twisted can shield you from these Python problems.
It's true that a lot of Python code written 10 years ago still work,
but you have poor timing if you want to project that forward. There
will most probably be core language changes in that time that will
require maintenance work, such as the default behaviour of the
division operator, removal of old style classes, enforcement of new
style class exceptions, maybe even removal of some statements etc.
Don't expect any support for Python 2.x in ten years.

I'm sure you can still run a Python/Twisted app written today in
ten years from now, but don't expect to do it on an updated platform.

If this worries you, don't use Python.

More information about the Twisted-Python mailing list