[Twisted-Python] twisted.protocols.telnet or twisted.conch.telnet?
glyph at divmod.com
glyph at divmod.com
Mon Mar 20 13:07:53 EST 2006
On Mon, 20 Mar 2006 07:40:41 -0800, James Schend <blakeyrat at gmail.com> 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.
If that's all you want, Twisted is the least of your worries:
- MTBF on your hard drive is almost certainly less than 10 years.
- libc won't continue to be compatible with your current build of Python for 10 years.
- It's unlikely that the 10-years-hence version of Python will even _parse_ your code, let alone run it. (Discussion of Python 3k has started in earnest recently... the timeframe looks to be less than a decade.)
- the 10-years-hence version of Linux will probably not work with current builds of Python or libc.
- it is unlikely that the x86 processor architecture will still be en vogue in 10 years, which leads to another set of problems.
A custom-coded project that expects to run with no maintenance programming staff - but to also receive up-to-the-minute security updates! - is unlikely to succeed. I am not aware of any such project.
I can sympathize with your desire for a perpetually-supported platform; I had a similar crisis working on a project about 5 years ago which I just wanted to "write and forget", but the fact is that writing a platform which can weather a decade's changing hardware and software fads is an **immensely** difficult problem, one nobody has really solved yet.
>Maybe those are strange, unheard-of, constraints, but either way it
>looks like I have to write my own telnet server. I'd rather not, and
>I'm sure you'd rather have me as a user, but that's just the way it
Your requirement for a telnet server is that it will be maintained with a stable interface indefinitely, so that libraries can be upgraded for security fixes forever. However, you can't update your application code to any minor changes in the telnet server interface, because you're not going to be maintaining the application code at all. Therefore, rather than packaging a copy of the telnet server for stability (because this wouldn't be updated) you are going to write your own (which you won't update, because you aren't planning to maintain the code, only the installation)?
More information about the Twisted-Python