[Twisted-Python] Fw: Zope and Twisted

Itamar Shtull-Trauring twisted at itamarst.org
Wed Feb 5 11:54:15 EST 2003


This is the first email I got.

--------------------------------------------------------
Begin forwarded message:

Date: Tue, 4 Feb 2003 10:54:39 -0800
From: "Pierre Johnson" 
To: <itamar at zoteca.com>
Subject: Zope and Twisted


Hey Itamar,

I read your 9 Dec 2002 weblog entry. Agreed Zope 2 is kludge. However,
Twisted is kludge too. Say What?

Twisted does not conform well to the OSI model. Each layer should have
an
abstraction and implementation for whatever it is one wants to
implement.
Additionally, one need include a interfaces module that keeps interfaces
separate from implementation.

Here's some sketches about implementations, e.g.,

OSI.Network.py

    class NetworkLayer: # an abstraction

OSI.Network.IP.py

    import OSI.Network

    class IP(NetworkLayer):
         ...

OSI.Transport.py

    class TransportLayer:  #an abstraction
            ...

OSI.Transport.TCP.py

    import OSI.Transport
    import OSI.Network.IP

    class Transport.TCP(Transport, IP):
        ...
OSI.Session.py

    class SessionLayer: # an abstraction
      ...

OSI.Session.DNS.py

    import OSI.Transport.TCP
    import OSI.Network.IP
    import OSI.Session

    class DNS(Session, TCP, IP):
      ...

OSI.Application.py

   class ApplicationLayer: # an abstraction
      ...

OSI.Application.FTP.py

    import OSI.Transport.TCP
    import OSI.Network.IP
    import OSI.Session.DNS
    import OSI.Application

    class FTP(Application, DNS,TCP,IP)
       ...

This kind of abstraction schema allows for quicker programming than the
current Twisted schema as written by the so-called "abstraction
astronauts".
Bear in mind that this is a sketch and by no means the exact why I would
do
it.

Clearly, a perusal of the Twisted code demonstrates that Twisted does
not
separate transport from protocols or at least not cleanly.

Thanks for your time.

Pierre Johnson




More information about the Twisted-Python mailing list