gihyo.jp » DEVELOPER STAGE » 連載 » モダンPerlの世界へようこそ » 第16回 Perl::Dist::Strawberry:何味のアイスクリームがお好きですか?

モダンPerlの世界へようこそ

第16回 Perl::Dist::Strawberry:何味のアイスクリームがお好きですか?

今年のYAPC::Asia,いかがでしたか?

先日開催されたYAPC::Asiaはいかがでしたか? 筆者はあいにくそれほど多くのセッションに参加できたわけではないのですが,この連載ですでに取り上げたもの,まだ取り上げていないもの,そして前回原稿を書いたときにはまだ存在すらしていなかったものを含めて,有意義なセッションがたくさんありました。おかげさまで筆者も当面ネタに困ることはなさそうです。

とはいえ,あまりに旬なモジュールについては,情報の流れが速すぎて,のろまな筆者では追い切れませんので,今回と次回は,筆者が今年のYAPC::Asiaでもうひとつ発表しようかと思っていたネタをしっかりまとめておこうと思います。

ActivePerlの興隆

PerlはもともとUnixで使われていたさまざまなツールのよいところを集めて作られた言語です。だから,Perlのコマンドにはシェルやawk,Cに由来するコマンドが多数含まれていますし,その動作もおおむねUnixに準拠したものとなっていました。

もっとも,PerlはUnix環境でしか動かないというわけではありません。Unixの根底にある機能の多くはPOSIX(Portable Operating System Interface for Unix)の形で多くのOSに採用されてきましたし,そのおかげでPerlもさまざまなプラットフォームに移植されてきました。Perlに付属のperlportを見てみると,PerlはすでにUnix系のものだけで20ものプラットフォームを区別していることがわかりますし,その他のものも含めれば30を越すアーキテクチャを識別できるようになっています。

そして,その「その他」のなかには,最初期のPOSIX 1にのみ対応したWindows環境も含まれていました。

Perlが初めてWindows(や,それ以前のMS-DOS)で動くようになったのがいつだったのかは調べきれなかったのですが(少なくともjperlが1991年当時すでにMS-DOS上で動いていたことは記録に残っています),ことPerl 5に関していえば,Microsoft社が1995年当時カナダのHIP Communications社にいたディック・ハルト(Dick Hardt)氏のチームに出資してPerlの移植を依頼したのがそもそもの起こりだったようです。

氏はやがて売却されたHIP社を飛び出して,ActiveWare社を設立。同社は引き続き当時のPerl 5.003をベースにWindows向けのさまざまなパッチを当てていったのですが,その対応はあくまでも自社内で行われていたため,進化を続けるPerl 5本体のコードベースとの齟齬が目立つようになっていました。

そこで,オライリー社を中心に両者を結びつける努力が始まり,ActiveWare社はActiveState社と名を変え(1997年8月),同時期に独自にWindows向けPerl 5のバイナリパッケージの配布を行っていたグルサミー・サラシー(Gurusamy Sarathy)氏をも迎え入れて,Perl 5.004以降のWindows対応を本家と共同で推進していくことになりました。サラシー氏は1998年6月以降,Perl 5.004/5系列のリリースマネージャ(「パンプキン」)となり,同年7月には同社初のWindows版バイナリパッケージとなるActivePerl 5.004_69をリリース。以降,1999年末までに同社は都合22個の5.004/5向けバイナリパッケージをリリースしたほか,サラシー氏は同じく1998年7月に開発が本格化したPerl 5.6系列(正式リリースは2000年3月)のリリースマネージャも担当することになりました(~2001年)。

また,同社は1999年にMicrosoft社と3年契約を結んでWindows版Perlのサポートを強化するかたわら,従来のWindows版Perlでは動作しなかったforkを移植するため,MS社と共同でithreads(interpreter threads)と呼ばれるものの実装にも取り組みました。この頃の実装はまずActivePerlでテストされていたこともあって,一時期はまさにWindows用のActivePerlこそがPerlの最先端を行く実装だったものです。

また,このMicrosoft社との提携はもうひとつ,PPM(Perl Package Manager)と呼ばれる副産物も生み出しました(そのベースとなったOpen Software Description Formatの仕様は1997年にMicrosoft社らが策定したものです)。このPPMを使うことで,ActivePerlのユーザはCPANモジュールを(Perlバイナリと同じコンパイラでコンパイルした)バイナリの状態でインストールできるようになりました。CPANモジュールをインストールするためだけに高額なMicrosoft社のVisual C++を買う必要はなくなりましたし,わざわざMinGWやCygwinのコンパイラをインストールする必要もなくなりました(※1)。「ActivePerlさえインストールしておけば,あとは何も入れなくて大丈夫」という手軽さが,Unix系のディストリビューションに比べて圧倒的にユーザベースの多いWindows環境でライトユーザの獲得にどれほど貢献したかは説明するまでもないでしょう。

※1

なお,この辺Windows環境でPerlを使わない方からはよく誤解されるのですが,ActivePerlであっても,MSVCやMinGW環境を適切に設定すればCPANから直接モジュールをインストールすることはできます。PPMはあくまでもコンパイラの設定やリンクするライブラリが異なることによるXSモジュールの不具合を防ぐため,クライアントのアーキテクチャにあわせてコンパイル&テストされたモジュールをインストールできるようにする仕組みであって,牧大輔氏の『モダンPerl入門』にあるような「PPMレポジトリ形式になっていないとモジュールをインストールすることができません」ということはありません。

ActiveState社の買収

こうしてPerl界にさまざまな貢献をしてきたActiveState社は,前述のサラシー氏や,LWPなどのメンテナとして有名なギスレ・オース(Gisle Aas)氏だけでなく,Inlineの作者として一躍名をはせたインギー・ドット・ネット(Ingy döt Net,当時のBrian Ingerson)氏らも合流し,当時のPerl界における一大勢力となっていました。

ところが,同社が主導したPerl 5.6系列は,Unicode対応などを謳ってはいたものの不十分なところが多いということで早々に仕切り直しの動きが始まり,2000年9月には早くも最初のPerl 5.7系列(5.8系列の開発版)が登場。2年間の開発を経て,2002年7月には正式にEncodeをフィーチャーしたPerl 5.8がリリースされます。

サラシー氏は2001年4月リリースのPerl 5.6.1を最後にリリースマネージャを降り,2002年にはMicrosoft社との契約も切れて,ActiveState社の時代はひとつの節目を迎えることになりました。PPMクライアントも2002年7月を最後にCPANには登録されなくなり,Programmer's Package Managerと名前を変えた新しいPPM 3系列のクライアントは,独自のライセンスで保護されるようになります。

それから1年。ActiveState社はアンチスパム界での実績を見込まれ,2003年9月には同業界のSophos社に吸収合併されてしまいます。Sophos社は当時100人以上もいたActiveState社の従業員には手をつけず,ActiveStateのブランド名も残し,Sophos社の一部門としてオープンソースへの貢献も続けていく旨表明したのですが(※2),それまでのめざましい活躍振りに比べると,やはり同社の活動がやや鈍ったように受け止められたのは致し方のないこと。ActivePerlのリリースは公約通りSophos配下になっても年2~3回の割で続けられたのですが,それまでに比べてPPMの管理に人員や時間を割けなくなったためか,コンパイラが必要でもっともPPMパッケージ化する価値の高いXSモジュールの多くが同社のPPMリポジトリからインストールできない状態が続き,MSVCなどの開発環境を持たないライトユーザ― ──とりわけ長年Unix系の環境で経験を積み,たまたまWindows環境でもPerlの仕事をする必要に迫られたタイプのライトWindowsユーザをいらだたせていました。

※2

http://www.sophos.com/pressoffice/news/articles/2003/09/pr_uk_20030924activestate.html

著者プロフィール

石垣憲一(いしがきけんいち)

あるときは翻訳家。あるときはPerlプログラマ。先日『カクテルホントのうんちく話』(柴田書店)を上梓。最新刊は『ガリア戦記』(平凡社ライブラリー)。

URLhttp://d.hatena.ne.jp/charsbar/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

2010年版SEO体得講座

本連載では,いまや企業サイトの戦略の1つとして欠かすことのできないSEOについて,最新トレンドからすぐに使えるTipsまでを紹介します。

小型Linuxサーバの最高峰 OpenBlockS 600活用指南

搭載メモリの増加,CPUクロックの向上など,あらゆる面が強化された期待の新モデルOpenBlockS 600。この記事ではOpenBlockS 600の紹介から,活用するためのさまざまなノウハウを紹介していきます。

はじめMath! Javaでコンピュータ数学

プログラミング言語入門者向けに,知っていると役立つ数学的トピックスを紹介します。簡単な演習問題と解説で,即活用できる知識を目指します。

教科書には載っていない ネットワークエンジニアの実践技術

ネットワークエンジニア,インフラエンジニアのトラブル対応には,時には「教科書通りにいかない」テクニックが必要となります。資格試験では得られないこうした実践的な技術について,実例を元に紹介します。

Googleケータイ,世に現る

2008年9月,Googleが中心となって開発されている「Android」を採用した携帯電話「T-Mobile G1」が発表されました。本連載ではT-Mobile G1を中心にGoogleケータイに迫ります。

モバゲーオープンプラットフォームに挑戦!――面白法人カヤック流モバゲーオープンプラットフォーム企画と開発のイロハ

2010年1月にリリースとなったモバゲーオープンプラットフォーム。その制作企業であるカヤックが,アイデアを企画に落とし込み,開発までのノウハウを紹介します。

プロトタイピングツールSketchFlowを用いた,Silverlightアプリ開発

SketchFlowプロトタイプ作成からアプリケーション開発までをExpression Blend 3を使って実践的に解説します。

Ubuntu Weekly Recipe

Ubuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス

最近のコメント