mod_python は,もともと Httpdapy というプロジェクトに端を発しています.長い間, Httddapy が mod_python と呼ばれることはありませんでしたが,これは Httpdapy が Apache 固有のものを目指してはいなかったからです. Httpdapy はクロスプラットフォームになるよう設計されていて,実際 最初に書かれた Httpdapy は Netscape サーバ向けでした (当時は Nsapy と呼ばれていました. 1997 年).
以下に引用した Httpdapy の README ファイルは,当時の課題と, HTTP サーバへの Python 埋め込みがもたらす解決策をよく解説しています:
数年前,初めて WWW アプリケーションを開発しているときに,(商用のリレー ショナルデータベースであれ,それ以外であれ) RDB に接続する必要のあるプ ログラムを CGI で組むと非常に低速になるということがわかりました. というのも,検索を行うたびに数メガバイトものサイズのインタプリタの実行 形式がロードされるし,データベースライブラリ自体も大きくて,おまけにデー タベースへの接続と認証のプロセスは DNS の名前解決や暗号化,メモリ確 保... といった処理が入るために,オーバヘッドが非常に大きくなるからです.
アプリケーションの高速化に迫られて,私は Python を使い続けるのをほとん どあきらめ,WWW とデータベースの統合に特化していると謳ったツールを探しはじめ ました. MS の ASP を信頼する気には全くなれませんでしたし,Netscape の LiveWire の低速さとバグの多さにはイライラしました.Cold Fusion は有望 でしたが,すぐに html ライクなタグを書くのはプログラムの可読性をアセン ブラ並みにすると気づきました.PHP についても同じです.何よりも,私は Python で書きたいと *心の底から* 願っていたのです.
ちょうどそのころ, Internet Programming With Python という本が出版され, Netscape サーバに Python を埋め込む方法を解説した章に惹かれました.そ の例題を自分のプロジェクトに使ってみて,後にNsapy と呼ばれる, Windows NT と Solaris の両方でコンパイルできる改良版を開発したのです.Naspy は Netscape サーバでしか動きませんでしたが,Naspy はPython の精神に適うと ても洗練された汎用のオブジェクト指向設計だったため,他の Web サーバに 容易に移植できました.
折りしも Netscape 製のサーバは人気を失いつつありました.そこで Nsapy を他のサーバに移植することにしました.手始めにもっとも人気のあった Apache に移植したのです.かくして,Nsapy から Httpdapy が誕生したので す.
... この話には続きがあります.正直なところ,全てのサーバ向けに Httpdapy を書くのは,最初に考えていたよりもちょっと大きな仕事になるし, さして興味も沸かなかったのです.
それよりも,人気の高い Perl の Apache 拡張である mod_perl と同じような (あるいはそれ以上の) 機能をもたらすような Python の Apache 拡張を作るのは とてもワクワクするできごとに思えたのです.
こうして mod_python はできました.最初の mod_python をリリースしたのは 2000 年の 3 月でした.