Mittwoch, 29. Juni 2011

Thomas Heller tritt als ctypes-Maintainer zurück

Das Python-Entwicklungs-Team schuldet dem ctypes-Maintainer Thomas Heller ein großes Dankeschön. Anfang des Monats verkündete Thomas sein Ausscheiden aus dem CPython-Projekt, das seit Python 2.5 die Heimat seiner ctypes-Bibliothek ist.

Ich hatte die Chance mit Thomas zu reden und er erzählte mir von seiner Geschichte mit Python und seinen Projekten ctypes und py2exe.

Python

Auf der Suche nach Ressourcen um Python zu lernen, fiel Thomas 1999 Mark Lutz' Programming Python in die Hände und er wurde direkt von der Sprache fasziniert. Er war gerade dabei Scheme als Erweiterungssprache für ein großes, für Windows geschriebenes, C-Programm zu ersetzen.

Sein erster Beitrag zu CPython (und Open Source im Allgemeinen) war ein kleiner Windows-bezogener Patch zu distutils. Sein Interesse an distutils brachte ihn schließlich zur Erstellung des bdist_wininst-Kommandos, das "point-and-click"-Windows-Installer erstellt. Danach wurde er von Greg Ward in die python-dev Gruppe eingeladen, wo er schließlich Commit-Rechte bekam.

py2exe

Wie viele Windows-Nutzer hatte er das Bedürfnis Python-Anwendungen als einzelne, ausführbare Datei weiterzugeben. Frühe Lösungsansätze für das Problem kamen von Fredrik Lundhs squeeze und Christian Tismers sqfreeze und Thomas hat mit mehreren Patches zu Gordon McMillans Installer-Projekt beigetragen.

Sein Interesse an distutils führte Thomas dazu Installer als eine Erweiterung der Bibliothek zu portieren. Jedoch endete es damit, dass er den Code umschrieb, um sicherzustellen, dass die existierenden Möglichkeiten von distutils genutzt werden. Am Ende wählte er den einfachen, aber beschreibenden Namen py2exe für das Projekt.

ctypes

Die Idee zu ctypes kam aus dem Bedürfnis nach mehr als was pywin32 seinerzeit bot. Zusätzlich benötigte er für seine Arbeit mit Scheme ein Interface zur Windows API, wie er es auch für seine Arbeit mit Python brauchte, also betrieb er sein Projekt weiter.

ctypes hatte sein erstes öffentliches Release in 2003, etwa zur Zeit des Python 2.3-Release, nachdem Thomas zahlreiche Anfragen bekam das Projekt zu veröffentlichen. Er erwähnte sein ehemals kleines, privates Projekt auf seiner Starship-Seite, aber in kurzer Zeit wurde es zu einer weit verbreiteten Bibliothek.

Ursprünglich startete er das Projekt unter Windows, aber schnell wurde der Ruf nach einer Linux-Portierung laut, die er mit Hilfe der Community umsetzte. Mit der Linux-Portierung wurde libffi im Projekt eingeführt, das er auch unter Windows zu benutzen begann, um die zugrundeliegende Implementierung auszutauschen.

2006 markierte ein 1.0-Release für ctypes, das sich mit der Aufnahme in die Standardbibliothek von Python 2.5 deckte. Nach Jahren harter Arbeit und vielen Veröffentlichungen pro Jahr, war ctypes nun mit Python gebündelt und standardmäßig für eine viel breitere Zielgruppe zugänglich.

Es waren viele Leute nötig, um ctypes dorthin zu bringen, wo es heute ist, und Thomas will jedem danken, der mitgewirkt hat, aber vor allem Robin Becker. Robin war in den frühen Phasen des Projekts beteiligt und steuerte sowohl Wissen, als auch Unterstützung bei.

Ein neuer ctypes-Maintainer

Nach all der harten Arbeit, die Thomas über die Jahre investiert hat, würde er ungern sehen, dass das Projekt zum Stillstand kommt. Wenn Du Erfahrung mit C und Zeit dem Python-Projekt zu helfen, würde die Python-Community Deine Dienste sehr schätzen. Mehr Informationen gibt es im neuen Developer Guide und im Bug Tracker.

Englische Version

Keine Kommentare:

Kommentar veröffentlichen