[pypy-svn] rev 1926 - pypy/trunk/doc/funding

hpk at codespeak.net hpk at codespeak.net
Tue Oct 14 20:51:24 CEST 2003


Author: hpk
Date: Tue Oct 14 20:51:23 2003
New Revision: 1926

Modified:
   pypy/trunk/doc/funding/Z1_background.txt
Log:
reworked the background document and added some statements and
resolved  FIXMEs as far as i can see. Please check and comment. 



Modified: pypy/trunk/doc/funding/Z1_background.txt
==============================================================================
--- pypy/trunk/doc/funding/Z1_background.txt	(original)
+++ pypy/trunk/doc/funding/Z1_background.txt	Tue Oct 14 20:51:23 2003
@@ -5,77 +5,71 @@
 ---------------------------
 
 Python is a portable, interpreted, object-oriented Very-High Level
-Language (VHLL).  Its development started in 1990 at CWI, Centrum voor
-Wiskunde en Informatica, the National Research Institute for
-Mathematics and Computer Science in the Netherlands.  Its principal
-author is Guido van Rossum, a Dutch citizen currently living in the
-United States.  It is an Free/Open Source language.  The most recent
-version of the language is Python 2.3, released under the Python
-Software Foundation License, which is approved by both the Open Source
-Initiative, and the Free Software Foundation.
-
-Python has tens, perhaps hundreds of thousands of active developers
-worldwide, which makes it one of the top ten most popular programming
-languages in the world. Some other languages, specifically C, C++, Java, 
-Perl, and Visual Basic, have even larger user bases but they are either 
-proprietary or rather low-level languages.  On the other hand, the 
-languages which most excite the Computer Science Research community -- 
-Self, Lisp, Haskell, Limbo, ML, and so on -- are nowhere on this list, 
-yet they are the targets of most European academic research and innovation.  
-Thus European economic competitiveness suffers.  The innovative research 
-lives in academia, trapped in languages that are rarely used for commercial
-development.
+Language (VHLL).  Python has tens, perhaps hundreds of thousands of
+active developers, which makes it one of the top ten most popular
+programming languages in the world. Some other languages, specifically
+C, C++, Java, Perl, and Visual Basic, have even larger user bases but
+they are either proprietary or rather low-level languages.  On the other
+hand, the languages which most excite the Computer Science Research
+community -- Self, Lisp, Haskell, Limbo, ML, and so on -- are nowhere on
+this list, yet they are the targets of most European academic research
+and innovation.  Thus European economic competitiveness suffers.  The
+innovative research lives in academia, trapped in languages that are
+rarely used for commercial development.
 
-Of those more popular languages, two, Java and Visual Basic are
+Of the more popular languages, two, Java and Visual Basic are
 proprietary.  Sun Microsystems owns Java, and Microsoft owns Visual
-Basic.  Any company which writes its software in Java or Visual Basic
-is at the mercy of these large American companies.  And this is a
-real, not theoretical, threat.  In 2002, Microsoft announced that it
-would no longer be supporting Visual Basic 6.0 after the year 2005.
-All Visual Basic Developers have been told to convert their code to
-run under Microsoft's new .NET framework.  In 2001 Microsoft
-immediately stopped supporting its Visual J++ language, meant to be a
-direct competitor with Java, after settling a lawsuit with Sun
-Microsystems.  Microsoft is making these decisions because they make
-business sense for Microsoft, regardless of the effects on businesses
-who develop software using Microsoft proprietary software.
+Basic.  Any company which writes its software in Java or Visual Basic is
+at the mercy of these large American companies.  This is a real, not
+theoretical, threat.  In 2002, Microsoft announced that it would no
+longer be supporting Visual Basic 6.0 after the year 2005.  All Visual
+Basic Developers have been told to convert their code to run under
+Microsoft's new .NET framework.  In 2001 Microsoft immediately stopped
+supporting its Visual J++ language, meant to be a direct competitor with
+Java, after settling a lawsuit with Sun Microsystems.  Microsoft is
+making these decisions because they make business sense for Microsoft,
+regardless of the effects on businesses who develop software using
+Microsoft proprietary software.
+
+Maybe even more important, proprietary licensing policies make it
+expensive and sometimes impossible to adapt these languages to
+specialized hardware.  
 
 
 European SMEs are moving to Free/Open Source platforms
 ------------------------------------------------------
 
-In the face of these threats to the very survival of their businesses,
-European SMEs are moving to Free/Open Source languages such as Python.
-In the year 2002, a group of SME's who rely on the Python programming
-language came together to form the Python Business Forum
-(www.python-in-business.org), at EuroPython, the European Python
-Community Conference (www.europython.org).
+In the face of these threats and flexibility problems, European SMEs are
+moving to Free/Open Source languages such as Python.  In the year 2002,
+a group of SME's who rely on the Python programming language came
+together to form the Python Business Forum (www.python-in-business.org),
+at EuroPython, the European Python Community Conference
+(www.europython.org).
 
 Advancing the Python platform
 -----------------------------
 
-While each SME member of the Python Business Forum has sufficient
-faith in the Python programming language to use it for the development
-of its own projects, it was agreed that there are defects in the
-current implementation of the language.  The two most often cited was
-that the Python was too large for embedded applications and
-applications designed for handhelds, and that the interpreter itself
-ran too slowly.
-
-The developers of embedded systems intend to run on tiny machines
-would like a language with a 'smaller footprint'.  They would like to
-strip out everything which they do not need from the language and run
-with the bare-bones minimum.  This is hard to do in any language, and
-Python was not implemented with this goal in mind.
+While each SME member of the Python Business Forum has sufficient faith
+in the Python programming language to use it for the development of its
+own projects, it was agreed that there are defects in the current
+implementation of the language.  The two most often cited ones are that
+the current implementation  is too large for embedded applications and 
+applications designed for handhelds, and that the interpreter itself ran 
+too slowly in some situations.
+
+The developers of embedded systems would like a highly productive
+language with a smaller memory footprint.  They would like to strip
+out everything which they do not need and put in special extensions in
+an easy way. Today, this is hard to do in any language, and Python was
+not implemented with this goal in mind.
 
-Another goal that was not paramount in Python's design and
+Another goal which was not paramount in Python's design and
 implementation was execution speed. Python is a dynamically-typed,
 late-binding, interpreted language.  While this proved to provide
-extremely productive development environments, execution speed
-sometimes is not fast enough.  Today, optimisation of high-level
-languages must be done at run-time, and is notoriously more difficult
-to optimise than statically typed, early-binding compiled languages
-such as C or C++.
+extremely productive development environments, execution speed sometimes
+is not fast enough.  Today, optimisation of high-level languages must be
+done at run-time, and is notoriously more difficult to optimise than
+statically typed, early-binding compiled languages such as C, C++ or Java. 
 
 Now a number of people and factors played together to start what is
 now one of the most promising very-high-level-language projects.
@@ -83,15 +77,13 @@
 Some high-profile research 
 --------------------------
 
-Independently some researchers who worked with Python were pondering
-writing an implementation of Python in Python itself. This group
-included Armin Rigo, author of Psyco
-http://psyco.sourceforge.net/introduction.html, a specialising
-Just-In-Time compiler for Python. He is intimately familiar with both
-Python internals and advanced research in compilers and runtime
-systems, and saw a Python implementation in Python itself as a chance
-to put the two fields together. It is useful to quote from his webpage
-which states the goals of his Psyco in full::
+Some researchers who worked with Python were pondering writing an
+implementation of Python in Python itself. This group included Armin
+Rigo, author of Psyco, a specialising Just-In-Time compiler for Python.
+He is intimately familiar with both Python internals and advanced
+research in compilers and runtime systems, and saw a Python
+implementation in Python itself as a chance to put the two fields
+together. It is useful to quote the goals of Psyco_ in full::
 
     My goal in programming Psyco is to contribute to reduce the
     following wide gap between academic computer science and
@@ -126,17 +118,15 @@
 
     High-level languages are faster than low-level ones!
 
-Although Armin Rigo proved with his 'Psyco' project that higher level
-languages can sometimes be optimized to be as fast or faster than C, he
-was very limited by the fact that Python is itself implemented in C
-like almost all other languages in industrial use today. There was no
-real-life project who tried to go all 'optimize high-level down to
-machine-code' way. Christian Tismer with his 'Stackless' project had
-already come to a similar conclusion from a more industrial viewpoint
-in that it is difficult to advance language technology while relying
-on a large C-code base.
-
-FIXME Footnote to: http://www.stackless.com/
+Although Armin Rigo proved with his project that higher level languages
+can sometimes be optimized to be as fast or faster than C, he was very
+limited by the fact that Python is itself implemented in C like almost
+all other languages in industrial use today. There was no real-life
+project who tried to go all the 'optimize high-level down to machine-code'
+way. Christian Tismer with his 'Stackless' project had already come to a
+similar conclusion from a more industrial viewpoint in that **it is
+difficult to advance language technology while relying on a large C-code
+base**.
 
 Some mailing list discussions
 -----------------------------
@@ -145,17 +135,17 @@
 where developers and academics were pondering about the possibility of
 developing a 'minimal' Python implemented in Python itself. Most
 noticeably Christian Tismer author of an industrial-use extension
-('Stackless') of the Python language noted in a postscript to one of
-his mails that having a minimized version of Python could provide a
-new base to advance the language.  Nevertheless, his extensions to the
-language proved to be useful for companies who needed a way to have
+('Stackless') of the Python language noted in a postscript to one of his
+mails that having a minimized version of Python could provide a new base
+to advance the language.  Nevertheless, his extensions to the language
+already proved to be useful for companies who needed a way to have
 millions of active objects and he had a branch of CPython to make this
 possible.
 
 Some organizational experience
 ------------------------------
 
-Meanwhile Holger Krekel had joined the Python community in 2002. For
+Meanwhile Holger Krekel had joined the Python community in 2001. For
 some years he had designed the architecture for platforms and
 consulted for CEO's of some large banking centers in Europe.  While
 participating in two 'coding sprints' of the Zope3 web-platform (the
@@ -165,36 +155,81 @@
 coding complex projects where traditional, slow-moving methods often
 fail.
 
-At a Sprint a group of people assemble together to write code and
-practice Agile software methodological techniques, such as
-Pair-Programming.  Not only is this a lot of fun, but it is a way to
-transmit knowledge and enthusiasm throughout the community.
-
-Holger Krekel, seeing the opportunity to launch the PyPy project with
-Armin Rigo and Christian Tismer offered to organize the first one-week
-meeting, the 'Sprint towards a minimal Python'. Soon many interested
-developers joined and intense academical and practical planning
-ensued.  Just a few weeks later the Sprint took place at
-'Trillke-Gut', a castle-like building in Germany, bringing together
-some key developers, among them Michael Hudson, the release manager of
-version 2.2.1 of Python.
+At a Sprint a group of people assemble to write code and practice Agile
+software methodological techniques, such as Pair-Programming and writing
+unit-tests before implementing the actual functionality.  Not only is
+this a lot of fun, but it is a way to transmit knowledge and understanding
+throughout the group.
+
+Holger Krekel, seeing the opportunity to initiate the PyPy project with
+Armin Rigo and Christian Tismer organized the first one-week meeting,
+the 'Sprint towards a minimal Python'. Soon many interested developers
+joined and intense academical and practical planning ensued.  Just a few
+weeks later the Sprint took place at 'Trillke-Gut', a castle-like
+building in Germany, bringing together some key developers, among them
+Michael Hudson, the release manager of version 2.2.1 of Python.
+
+Here is his german mail_ (a reply to Christian Tismer) that started this now 
+rapidly evolving project::
+
+    Gerson Kurz wrote:
+    > [interessante analysen, die ich zum grossteil nachvollziehen kann]
+
+    > [christian tismer]
+    > > p.s.: Gerson, ganz vom aktuellen Python abgesehen fände
+    > > ich es durchaus interessant, ein "Ptn" zu machen: Ein
+    > > total abgespecktes Minimal-Python mit weniger Features
+    > > als 1.5.2, sozusagen spartanisch aber aus heutiger Sicht.
+    > 
+    > Hey, genau das würde ich mir auch wünschen! Ich wäre auch sofort
+    > bereit,
+    > dabei mitzuhelfen, so es mir den Zeitlich und von meinen Möglichkeiten
+    > gesehen her möglich ist. (Ich fahre am Samstag erstmal für zwei Wochen
+    > in
+    > den Urlaub, aber dann...)
+    > 
+    > Hast du schon nähere Pläne dazu? Genauer, hast du schonmal überlegt,
+    > welche
+    > Python-Features Ptn-würdig wären, und welche nicht?
+
+    bin auch interessiert.  wenn noch Armin Rigo (PSYCO) ins boot kaeme,
+    dann waere es noch besser.  Ich habe auf jeden Fall auch interesse,
+    zumal ich zwischen weinachten endlich mal in die python-internals 
+    (compile.c & ceval.c) eingestiegen bin.  Christian (auf python-dev und
+    c.l.py) scheint ja auch die Philosophie zu verfolgen, python moeglichst
+    viel in python zu implementieren und sich von C-Ballast zu befreien. 
+    Armin will gar den interpreter neu in python schreiben. 
+
+    Um es mal zu konkretisieren, biete ich an, einen "Sprint" auszurichten. 
+    Das waeren drei tage, an denen wir die fundamentals eines MiniPython 
+    entwickeln und ins Netz stellen.  Abgesehen von der Vorbereitung kann
+    ich anbieten, dass wir mit netzconnection und voller verpflegung
+    einen 120qm saal mit drei bis vier beamern zur verfuegung haben.  
+    und zwar in diesem gebauede:
+
+        http://www.trillke.net/images/trillke_schnee.png
+
+    das liegt in hildesheim, also 30 km von hannover. 
+
+    falls euch das zu schnell bzw. zu konkret ist, dann koennen wir auch
+    abstraker weiterdiskutieren :-)
+
+    liebe gruesse und ebenfalls ein schoenes neues jahr,
 
-Here is the mail that started this now rapidly evolving project
-http://starship.python.net/pipermail/python-de/2003q1/002925.html
+        holger
 
 
-Some promising open-source development tools
---------------------------------------------
+Leveraging open-source development tools
+----------------------------------------
 
 From the beginning, the PyPy developers were committed using and
 integrating the most promising open-source technologies.  Jens-Uwe
 Mager, the retired CTO from Helios (http://www.helios.de) attended the
 Sprint and helped set up a state-of-the-art open-source development
 environment.  With his 12-year experience of setting up and leading a
-SME-company which is one of the worldwide leaders in
-print-preprocessing technology he helped organise the development and
-net-connectivity for the various web services needed by the PyPy
-developers.
+SME-company which is one of the worldwide leaders in print-preprocessing
+technology he helped organise the development and net-connectivity for
+the various web services needed by the PyPy developers.
 
 
 Research, pragmatism and industry experience combined
@@ -224,7 +259,7 @@
 week you could already run simple Python programs within PyPy.  PyPy
 had gone from being 'a nice idea' to 'something we knew we could do'.
 
-The third sprint was again organized by interested developers in Belgium at
+The third sprint was again organized by interested developers at
 the University in Louvain-La-Neuve, Belgium and held June 20-24.  We
 invited Guido van Rossum, the inventor of Python to attend.  He not
 only attended the Belgium sprint but announced a few days later at the
@@ -235,27 +270,30 @@
 By the end of the third one-week sprint at the University in
 Louvain-La-Neuve, the PyPy project had already produced a fully
 working prototype.  There existed a working interpreter and standard
-implementation of 90% of the python types, as well as advanced
+implementation of 90% of the python core types, as well as advanced
 language features such as nested scopes, generators and metaclasses.
 Armin Rigo and Guido van Rossum had started work on a type-inference
-engine which is the foundation for the final missing step: generating
+engine as the foundation for the final missing step: generating
 a native machine-level version of Python from its high-level
 PyPy-implementation.  Perhaps most importantly, we had the
 enthusiastic support of the Python community at the EuroPython
 conference.
 
 The fourth sprint in Berlin prototyped translation of Python functions
-to low-level code with the help of Pyrex, an intermediate layer. With
-a combination of novel techniques, Object Spaces and Abstract Interpretation,
-it was clear that the general direction was viable and productive. 
+to low-level code with the help of Pyrex, an intermediate layer.  The
+architecture was refactored to implement abstract interpretation and the
+actual translation process separatly. With a combination of novel
+techniques, Object Spaces and Abstract Interpretation, it was clear that
+the general direction was viable and productive. 
 
 No work had been done on actually optimizing the complete prototype into
 low-level static code so it still runs around 30,000 times slower than the 
 existing CPython-implementation but this was expected from the start.  
-Nevertheless, for a proof of concept, approximately five weeks work 
+Nevertheless, for a proof of concept, approximately six weeks work 
 total for a group of about a dozen people, it was clearly a success.
 
-It was time to look for funding.
+It was time to look for funding to bring the project to its full
+potential and to intensify research on several interesting areas. 
 
 On June 17th, the 2nd Call of the Information Society Technologies
 [IST] Priority went out. Included in it was IST-2002-2.3.2.3 - Open
@@ -263,3 +301,7 @@
 
 We believe that what we intend to do is a perfect fit for the goals 
 of this call.
+
+.. mail http://starship.python.net/pipermail/python-de/2003q1/002925.html
+
+.. Psyco http://psyco.sourceforge.net/introduction.html


More information about the Pypy-commit mailing list