2011年4月29日金曜日

Thomas Heller が ctypes メンテナを辞任

原文はこちら: Thomas Heller Steps Down as ctypes Maintainer

Python の開発コミュニティは ctypes メンテナである Thomas Heller から長い間、恩恵を受けています。今月の初め、Thomas は Python 2.5 以来、彼のホームであった CPython プロジェクトの ctypes から 去ることを発表しました

私は Thomas と話す機会があり、彼が Python と共に歩んだ歴史と参加した ctypespy2exe プロジェクトについて尋ねてきました。

Python


1999年に遡ります。Thomas は、Python を学ぶための情報源を探していたところ Mark Lutz の Programming Python を手に入れて、すぐにその言語に夢中になりました。彼は Windows 向けに書いた巨大な C 言語のプログラムの拡張言語として Scheme に置き換えている途中でした。

彼が開発チームに加わった経緯について、彼の最初の CPython (そして、オープンソース一般) への貢献は、 distutils に対する Windows 関連の小さなパッチでした。 distutils への彼の興味は、最終的に Windows インストーラをポイント・アンド・クリックで作成する bdist_wininst コマンドを作成することにつながりました。そこから Greg Ward は彼を python-dev グループに招待し、最終的に彼はコミット権を得ました。

py2exe


多くの Windows ユーザーと同様に、彼も1つの実行ファイルとして包まれた Python アプリケーションをデプロイする必要性がありました。この問題に対する初期のアプローチは、Python の著名人である Fredrik Lundh の squeeze と Christian Tismer の sqfreeze を参考にしました。そして、Thomas は Gordon McMillan の Installer プロジェクトへ複数のパッチを投稿しました。

彼は distutils に興味があったので、パッケージングライブラリの拡張機能に Installer が移植できないかを検討しました。しかし、結局は既存の distutils フレームワークを活用するためにそのソースを書き直すことになりました。最終的に、彼はそのプロジェクトを py2exe というシンプルで分かりやすい名前にしました。

ctypes


ctypes のアイディアは、当時 pywin32 が提供していたものを超える要求から出てきたものです。さらに彼の Scheme での作業は Windows API へのインタフェースを必要とし、それは彼の Python での作業においても全く同じものでした。そのため、彼は自分のプロジェクトをやり続けたかった。

ctypes は、Thomas がそのプロジェクトを公開してほしいという数え切れない要望を受け取ったことから、2003年の Python 2.3 リリースにあわせて最初のリリースを公開しました。彼の Starship ページ には小さな個人プロジェクトに使われているライブラリのように説明されていますが、このライブラリは、たちまちに広く使われるようになりました。

彼はもともと Windows 上でこのプロジェクトを開始しましたが、すぐに Linux 移植の要望を聞くようになり、コミュニティが彼を支援する形になりました。Linux 移植は libffi を導入しました。彼もまた Windows 上での低レベル実装を置き換えるために libffi を使い始めました。

2006年に Python 2.5 の標準ライブラリとして受け入れられた ctypes 1.0 がリリースされました。彼の数年間に及ぶ開発と年間何度もリリースを行う活動の結果、Python と共に提供される ctypes はデフォルトとして広くユーザに使われています。

今日の ctypes が在るのは、多くの人が関わってくれた結果です。Thomas は関わってくれた全ての人に感謝していて、特に Robin Becker へお礼を述べます。Robin は、プロジェクトの初期段階で尽力され、知識と励ましの双方を提供してくれました。

ctypes の新たなメンテナ募集


Thomas が長年かけてがんばってくれた後に、このプロジェクトが停滞するのを我々は見たくありません。あなたが C 言語の経験をもち Python プロジェクトを支援する時間があるなら、コミュニティはあなたの貢献に深く感謝します。新しい 開発者ガイド を調べた上で詳細は バグトラッカー を検索してください。

更新: リンクを修正しました。

0 件のコメント:

コメントを投稿