Re: Expansion on bootstrap problem w/ Java, Python Ka-Ping Yee (ping@lfw.org)
Thu, 6 Apr 2000 00:07:07 -0700 (PDT)

Hi.

Okay, i know enough to handle the Python questions, so i'll do my best to answer them here.

On Wed, 5 Apr 2000, Jonathan S. Shapiro wrote:
> The reason is that in support of those lovely features, Python has got
> knowledge of lots of things built in to the runtime: sockets, networking,
> file systems, etc. etc.

One of the nice things about Python is that nearly all of the built-in functionality (and certainly the system-dependent parts of the built-in library) are all nicely partitioned into modules. You can tweak a simple setting in a "Setup" file to turn off compilation of any module, and basically pick and choose what subset of the standard library you want.

File objects are built-in. They depend on stdio. I can't think of any other system-dependent stuff that cannot be removed, off the top of my head, at the moment.

Modules written in C that come built-in, which you can turn off:

regex
posix
signal
readline # GNU readline
fcntl

    pwd              # Unix passwords
    grp              # Unix groups

select
socket
errno
    md5              # the hash algorithm
    sha              # the hash algorithm
    rotor            # enigma-style encryption
    new              # magic for creating empty objects
    binascii         # ascii-encoding helper
    parser           # interface to Python parser
    cStringIO        # strings-as-files
    cPickle          # object serializer



> 1. How easy is it to build a python without ANY networking support?

Very easy. Turn off the "socket" module and i think you're basically done.

> 2. Is Python suitable for use on the server-side of a high-load service?

Python doesn't have blazing performance. However, since most of the time network servers seem to be bandwidth-bound rather than CPU-bound, i think it's still okay to use Python as a server.

The Medusa server (the main server behind Zope, a popular application server -- see http://www.zope.org/) is written entirely in Python, and gets its speed from doing everything in a single thread instead of forking. See http://www.nightmare.com/medusa/ for info on Medusa.

"Computers are the tools of the devil. It is as simple as that. There is no monotheism strong enough that it cannot be shaken by Unix or any Microsoft product. The devil is real. He lives inside C programs." -- philg@mit.edu