Creating a Python newsgroup

Guido.van.Rossum@cwi.nl
Thu, 20 Jan 1994 11:25:55 +0100

Steve Miale has offered to help creating a Python newsgroup:
comp.lang.python. The following is edited from personal email from
him (with permission) and my personal additions. In particular, I
changed the short blurb from the FAQ to a rather long one that Mark
Lutz once posted to the net and which I think is an excellent summary
of Python's string points.

At this point I would like to have feedback on the RFD (which won't be
posted until 1.0.0 is out!). One thing I'm worried about: maybe the
quote is too long. What do people think?

======================================================================

These are the steps required (in case you don't know about the
newsgroup creation process):

First, we need to draw up an RFD (Request For Discussion). This is a
document that tells what the purpose of the group is, and gives a case
for its creation. We post this to relevant groups (comp.lang.misc,
the mailing list, news.groups, etc.) Discussion is held on
news.groups.

Then, after a few weeks, we run the official CFV (Call For Votes).
The votes are then collected over a period of weeks. We need 100 more
yes votes than no votes, and a 2/3 majority, to get the group.

There are some restrictions on the vote taker: [s]he cannot actively
campaign for/against the group during the vote process. So the main
benefit to Steve instead of me running the vote is that I will be free
to campaign for its creation!

The following is our current draft for the RFD.

======================================================================

Request For Discussion: comp.lang.python

Purpose
-------

The newsgroup will be for discussion on the Python computer language.
Possible topics include requests for information, general programming,
development, and bug reports. The group will be unmoderated.

What is Python?
---------------

[quoted from a news article on Python by Mark Lutz]

Python is a relatively new very-high-level language developed in
Amsterdam. Python is a simple, procedural language, with features
taken from ABC, Icon, Modula-3, and C/C++.

Its central goal is to provide the best of both worlds: the dynamic
nature of scripting languages like Perl/TCL/REXX, but also support for
general programming found in the more traditional languages like Icon,
C, Modula,...

As such, it can function as a scripting/extension language, as a rapid
prototyping language, and as a serious software development language.
Python is suitable for fast development of large programs, but also
does well at throw-away shell coding.

Python resembles other scripting languages a number of ways:
- dynamic, interpretive, interactive nature
- no explicit compile or link steps needed
- no type declarations (it's dynamically typed)
- high-level operators ('in', concatenation, etc)
- automatic memory allocation/deallocation (no 'pointers')
- high level objects: lists, tuples, strings, associative arrays
- programs can construct and execute program code using strings
- very fast edit/compile/run cycle; no static linking
- well-defined interface to and from C functions and data
- well-defined ways to add C modules to the system and language

Python's features that make it useful for serious programming:
- it's object-oriented; it has a simplified subset of
C++'s 'class' facility, made more useful by python's
dynamic typing; the language is object-oriented from
the ground up (rather than being an add-on, as in C++)

- it supports modules (imported packages, as in Modula-3);
modules replace C's 'include' files and linking, and allow
for multiple-module systems, code sharing, etc.;

- it has a good exception handling system (a 'try' statement,
and a 'raise' statement, with user-defined exceptions);

- it's orthogonal; everything is a first-class object in the
language (functions, modules, classes, class instance methods...)
and can be assigned/passed and used generically;

- it's fairly run-time secure; it does many run-time checks
like index-out-of-bounds, etc., that C usually doesn't;

- it has general data structuring support; Python lists are
heterogeneous, variable length, nestable, support slicing,
concatenation, etc., and come into existance and are reclaimed
automatically; strings and dictionaries are similarly general;

- it's got a symbolic debugger and profiler (written in python,
of course..), and an interactive command-line interface;
as in Lisp, you can enter code and test functions in isolation,
from the interactive command line (even linked C functions);

- it has a large library of built-in modules; it has support
for sockets, regular expressions, posix bindings, etc.

- it supports dynamic loading of C modules on many platforms;

- it has a _readable_ syntax; python code looks like normal
programming languages; tcl and perl can be very unreadable
(IMHO; what was that joke about Perl looking the same after
rot13..); python's syntax is simple, and statement based;

Of course, Python isn't perfect, but it's a good compromise betweem
scripting languages and traditional ones, and so is widely applicable.
'Perfect' languages aren't always useful for real-world tasks (Prolog,
for example), and languages at either extreme are not useful in the
other domain (C is poor for shell coding and prototyping, and awk is
useless for large systems design; Python does both well.)

For example, I've used Python successfully for a 4K line expert system
shell project; it would have been at least twice as large in C, and
would have been very difficult in TCL or Perl.

Python uses an indentation-based syntax which may seem unusual at
first to C coders, but after using it I have found it to be _very_
handy, since there's less to type. (I now forget to type '}' in my C
code, and am busy calculating how much time I wasted typing all those
'}', 'END', etc., just to pander to 'brain-dead' C/Pascal compilers
:-).)

Python [...] seems suprisingly stable. [...] Python runs on most
popular machines/systems (mac, dos, unix, etc.) It's public domain
and distributable, and can be had via ftp. The distribution includes
examples, tutorials, and documentation.

[end quote]

Python may be FTP'd from the following sites:

ftp.cwi.nl in directory /pub/python (its "home site", also has a FAQ)
ftp.uu.net in directory /languages/python
gatekeeper.dec.com in directory /pub/plan/python/cwi

There's a python mailing list maintained by the language's creator.
Mail 'python-list-request@cwi.nl' to get on it (there's a human
reading the mail, not a LISTSERV process).

Rationale
---------

Currently there is a mailing list with over 120 subscribers.
The activity of this list is high, and to make handling the
traffic more reasonable, a newsgroup is being proposed. We
also feel that comp.lang.misc would not be a suitable forum
for this volume of discussion on a particular language.

Charter
-------

Comp.lang.python is an unmoderated newsgroup which will serve
as a forum for discussing the Python computer language. The
group will serve both those who just program in Python and
those who work on developing the language. Topics that
may be discussed include:

- announcements of new versions of the language and
applications written in Python.

- discussion on the internals of the Python language.

- general information about the language.

- discussion on programming in Python.

Discussion
----------

Any objections to this RFD will be considered and, if determined
to be appropriate, will be incorporated. The discussion period
will be for a period of 21 days after which the first CFV will be
issued.

======================================================================

--Guido van Rossum, CWI, Amsterdam <Guido.van.Rossum@cwi.nl>
URL: <http://www.cwi.nl/cwi/people/Guido.van.Rossum.html>