2009年4月26日日曜日

1996年にMicrosoftが出荷したPythonコード

原文:http://python-history.blogspot.com/2009/01/microsoft-ships-python-code-in-1996.html
原文投稿者:Greg Stein

私のPythonの歴史をここで共有することを受け入れてくれたGuido氏に感謝します。

自分のPythonとの出会いに関しては他の投稿に譲ろうと思うが、自分の仕事とPythonが関係することになったところから話を始めようと思う。私は数人のメンバーと一緒に、1991年にベンチャー企業を共同出資で設立した。私たちの業務は企業と消費者との間で行われる電子商取引を扱う大きなクライアント/サーバシステムであった。カスタムのTCPプロトコルを、古いX.25ネットワーク上で流したりしていた。私の出身はそのようなところである。

1995年には、我々が以前に行っていた予測とは大きく状況が変化し、多くの消費者がインターネット上に出てくるようになった。我々は、顧客(ベンダー)がインターネット上の消費者をターゲットとして使用できるシステムを準備する必要が出てきたのである。私は、どのようなアプローチをすればいいのかを調査するために、プロトタイピングツールとしてPythonを選択した。

最初の問題は、完全にブラウザベースのソリューションへの移行が必要となったことである。我々がそれまで開発してきたカスタムのクライアントソフトウェアはこれ以上生き残る術はなかった。我々は新しいショッピングの体験を消費者に提供する必要があり、サーバインフラはそれを支える必要があった。その当時はウェブブラウザとの通信というと、ApacheかNetscapeのHTTPサーバ上にCGIスクリプトを作成することを意味していた。CGIを使用すると、既存のバックエンドサーバに接続することができ、注文の処理、買い物かごの維持、商品情報の取得を行うことができた。これらのCGIスクリプトは素のHTMLを生成した。1995年にはAJAXはなかった。

このアプローチでは、リクエストごとに新しいCGIプロセスを起動するのに時間がかかるため、理想的な方法とは言えなかった。反応速度が極めて低かったのである。ちょうどそのころ、1995年の12月にワシントンDCで行われていたPythonワークショップに参加した。そのときに、Zopeでよく知られるDigital Creations社の人に、サーバプロセスの中に永続的にプロセスが走り続けるようになるというApacheとNetscapeのモジュールを紹介された。これらのモジュールはRPCシステムコール上のILU(多言語対応インタフェースシステム)を使い、バックエンドの長時間起動しているプロセスと通信を行うのである。このシステムを使用すると、CGIをフォークするオーバーヘッドがなくなり、ショッピングの体験が極めて快適なものに変わるのである。私はプロトタイプを実際のコードに変換していった。プロジェクトに取り組めば取り組むほど、どんどん良くなっていき、多くの人がこのプロジェクトに飛びついてくるようになった。Pythonのおかげで数ヶ月間、作業はとても早く進んだ。

1996年の1月に、Microsoft社が我々の会社を訪ねてきた。社内で電子商取引システムを構築しようと努力はしたものの、うまく道が見えないでいた。そのため、電子商取引に通じていて、機転の利く技術者を必要としていたのである。我々はこの分野では何年もの実績があった。春の間、交渉の間もソフトウェアの開発は続けた。そして、1996年の6月に買収は完了した。

Microsoft社にPythonコードの山と一緒に到着すると、まず行う必要があったことは、Windows NT上に電子商取引のソフトウェアを搭載する方法を理解することであった。Windowsの経験が豊富なチームに合流し、名前付きパイプを使ってバックエンドのサーバと通信するIISプラグインを構築した。このバックエンドサーバは、我々のPythonサーバコードが組み込まれたNTのサービスである。泥のようなスプリントが7月から始まり、我々はMicrosoft Merchant Server 1.0を1996年の10月に出荷することができた。

そう。もしシステムの中を見ることができたら、そこに隠れているのは・・・Pythonインタプリタと、いくつかの拡張DLL、そして.pycファイルの山である。Microsoft社はこの事実を宣伝することはなかったが、もし知っていたら見ることが可能だったのである。

0 件のコメント:

コメントを投稿