Prothon, a classless Python
mark at prothon.org
Thu Mar 25 17:25:56 CET 2004
I would like to announce a new interpreted object-oriented language very
closely based on Python, that is Prototype-based, like Self
(http://research.sun.com/research/self/language.html) instead of class-based
I have named the language Prothon, short for PROtotype pyTHON. You can
check it out at http://prothon.org.
The prototype scheme makes object oriented computing very simple and
complicated things like meta-classes dissapear. Once you get used to
prototypes, classes seem old-fashioned. You can inherit data as well as
methods and you can switch prototypes on the fly.
Anyone who knows Python can program in Prothon with almost no learning
curve. Prothon is pre-alpha, but runs well enough to give it a spin. Basic
types, the File object, importing, packages, and the Re module are ready to
try. It runs on Linux/Unix and Windows.
Obviously Prothon is not Python compatible, so I have taken the liberty of
implementing many changes that have been imagined for the almost mythical
Python 3.0. Right now I've made decisions unilaterally, but I'm not
planning on freezing language decisions until 7/04, so get on the Prothon
mailing lists and make your opinions known.
Since the Prothon interpreter has been written from the ground up, we've had
the opportunity to make it industrial-strength. We feel this is very
important for high-end hosting applications, and that this is a current
weakness of Python and it's GIL. Prothon has no GIL. Here are some
- Uses native OS threads, even multiple interpreters can run at once on the
- Locking is done at the object level with shared read locks and exclusive
- No recursion limits, Prothon is stackless.
- Garbage collection is mark-and-sweep in a seperate thread.
- C coding is simple. Macros simulate coding at Prothon level. (No
- Ints are 64-bits, internal architecture is all 64-bit.
- Built on Apache Portable Runtime (APR) for stability, ease in porting, and
eventual integration with Apache.
More information about the Python-list