[pypy-dev] history of PyPy

Laura Creighton lac at strakt.com
Sun Sep 14 10:14:34 CEST 2003

In a message of Sun, 14 Sep 2003 09:32:15 +0200, holger krekel writes:
>Hello Laura,
>[Laura Creighton Sat, Sep 13, 2003 at 04:51:47PM +0200]
>> Holger wrote something about 'how Armin, Christian and Holger
>> started discussing this on the german python mailing list' for
>> the history of the project.  I've since lost it.  Anybody
>> have that, also the exact dates for the Sprints?
>Here is the posting where i offer to organize the first "Minimal
>Python" sprint which quickly turned into "PyPy".  It is a response
>to Christian Tismer who said in a "P.S." [1] to Gerson Kurz that 
>writing "a totally minimzed python" would be quite interesting. 
>Christian and me involved Armin (in private mails) in the next weeks 
>and we quickly agreed to send out the first sprint announcement and 
>invitation to the "Hildesheim" sprint (containing the exact dates):
>Actually, i came to the idea of doing that sprint because i attended 
>Zope3 sprints and liked several aspects about them.  The problem here
>obviously was that we started out from nothing which is not 
>common but proved to be workable. 
>hope that helps, if not, ask for more detais. 
>    holger
>[1] Never underestimate the potential of a P.S. :-)

Oh man, this is perfect.  They want Agile Methodologies!!!  


New paragraph should be something like:


Meanwhile, on the German Python mailing list,
http://starship.python.net/mailman/listinfo/python-de an unrelated
discussion was about to bear fruit.   FOOTNOTE:
Here's the mail that started it all, 
include full text.

Academically trained Python
programmers were pondering writing an implementation of Python in
itself.  This group included Armin Rigo, author of Psyco
http://psyco.sourceforge.net/introduction.html, a specialising
Just-In-Time compiler for Python, and Christian Tismer, author of
Stackless Python, http://www.stackless.com/ an implementation of
Python which does not use the C stack.  These people knew and were
interested in doing exactly that as part of the design.

It is useful to quote Armin Rigo, stating the goals of Psyco in full,
from its website:

	My goal in programming Psyco is to contribute to reduce the
	following wide gap between academic computer science and industrial
	programming tools.

	While the former develops a number of programming languages
	with very cool semantics and features, the latter stick with low-level
	languages principally for performance reasons, on the ground that the
	higher the level of a language, the slower it is. Althought clearly
	justified in practice, this belief is theoretically false, and even
	completely inverted --- for large, evolving systems like a whole
	operating system and its applications, high-level programming can
	deliver much higher performances.

	The new class of languages called "dynamic scripting
	languages", of which Python is an example, is semantically close to
	long-studied languages like Lisp. The constrains behind their designs
	are however different: some high-level languages can be relatively
	well statically compiled, we can do some type inference, and so on,
	whereas with Python it is much harder --- the design goal was
	different. We now have powerful machines to stick with interpretation
	for a number of applications. This, of course, contributes to the
	common belief that high-level languages are terribly slow.

	Psyco is both an academic and an industrial project. It is an 
	academic experiment testing some new techniques in the field of 
	on-line specialization. It develops an industrially useful 
	performance benefit for Python. And first of all it is a modest 
	step towards:

		High-level languages are faster than low-level ones!

FIXME Footnote to: http://psyco.sourceforge.net/introduction.html

PyPy would be a more ambitious step, of course.  

Also instrumental was Holger Krekel, at TrillkeGut a (what the heck
do you call it?? in Hildesheim).  Holger Krekel was experienced 
in one of the latest in Agile Software methodologies, Sprint-driven
development, from his experience in the Zope   HOLGER

This was precisely what the Python Business Forum members had been
looking for.  Academics conversant in the latest in compiler theory
who were interested in producing the Python interpreter which they
needed.  We began discussing the possibility of collaboration, both
on mailing lists,   FIXME list our mailing list and in our first
face-to-face meeting at Hildesheim, Germany Feb 17-23 2003.

We decided to make a prototype to test the proof of concept, and our
ability to work together.  We would get together every six weeks in
our own time, and work on the prototype in intense work sessions which
are known as 'Sprints'.  FIXME Etymology of Sprint?  After the first
Sprint at TrillkeGut in Hildesheim, we held subsequent Sprints at AB
Strakt in Gothenburg, Sweden, and at the University of
Louvain-La-Neuve in Belgium.

By the time the Louvain-La-Neuve Sprint, which was held June 20-24,
ended, the PyPy project had produced a working prototype.  There
existed a working interpreter and standard implementation of 90% of
the python types, as well as such language features as nested scopes,
generators and metaclasses.  We had begun work on a type inference
engine.  Perhaps most importantly, we had the enthusiastic support of
the Python community.  Guido van Rossum, author of Python, not only
endorsed the PyPy project, but attended our Louvain-La-Neuve Sprint.
No work had been done on actually Optimising the code, so it ran
FIXME  30,000 times(?) slower than existing Python.  But for a
proof of concept, approximately three weeks work total, it was
a success.

It was time to look for funding.

More information about the Pypy-dev mailing list