Perlを入れたはいいものの
ご存じのように,Perlには,簡単なコマンドであれば,いちいちスクリプトファイルを用意しなくてもコマンドライン上で実行できる-eというスイッチが用意されています。
> perl -e 'print "Hello, world!"'
また,一行では収まらないような長さのスクリプトでも,使い捨てでよければ,perlコマンドをスクリプトファイルや-eスイッチなしで実行することで,コンソールからスクリプトを入力できるようになります。
> perl print "Hello, world!"; ^D
とはいえ,まともにPerlを使おうと思ったら,何らかのテキストエディタが必要になります。Unix系の環境ではviとEmacsの系統がそれぞれ一大勢力を成していますが,Windows環境では,標準添付のメモ帳(notepad)があまりに貧弱なため,たいていの人は自分の好みのエディタをインストールして使っていることでしょう。筆者はもっぱら学生時代愛用していたVZ Editorの実質的な後継にあたるWZ Editorの古い版を利用していますが,国内では秀丸やEmEditor,xyzzy,海外ではNotepad++やUltraeditあたりが比較的よく使われているでしょうか。viやEmacsの仲間を移植したものを使っている人もいますが,Unix系の環境ほど圧倒的な勢力とはなっていません。
このように事実上標準と呼べるエディタがないことは,エディタに自分をあわせるのではなく,自分にあったエディタを使えるという意味では気楽なことですが,業務レベルで環境を構築するときには問題になることがありますし,リソースが分散されてしまう分Perlに特化した機能が用意される可能性も下がりますから,開発効率の点でも得とはいえません。そのため,特にWindowsへの移植が本格化した1997年頃から,おもに業務でWindowsを使っているユーザ向けにPerlの開発環境を用意しようという動きが見られるようになります。
KomodoとVisual Perl
その先頭を切ったのは例によってActiveState社でした。同社がオライリー社と協力して1998年に販売したWindows向けPerl Resource Kitには,Perlスクリプトをexeファイル化するツールや,ISAPI(Internet Server Application Programming Interface)用のライブラリなどのほか,Perlスクリプトのデバッグを容易にするための環境が付属していました。このキットは翌1999年にはPerl Development Kitと名を変え,現在に至るまで開発・販売が続けられています。
また,2000年にはそのPerl Dev Kitをより効率よく利用できるように,MozillaプラットフォームをベースにしたKomodoというIDEの開発が始まりました(2001年4月リリース)。これはMozillaプラットフォームを利用したはじめてのサードパーティ製品としても注目を浴びます。
同社はさらに,当時提携していたMicrosoft社との関係を活かしてVisual Perlと呼ばれるVisual Studio .NETのプラグインの開発にも着手します(2001年9月リリース。これはActiveState社が再独立した2006年に開発終了となりました)。
また,やや遅れて2003年には,EPIC(Eclipse Perl Integration)と呼ばれるEclipse向けの環境も登場しました。
これらの製品はそれぞれ欠点はあったものの,コードの色分けやデバッグ用の実行環境などを備え,一般的な開発を行う分には十分実用的でした。
が,これらは一般のユーザが使うにはいろいろな意味で導入コストが高すぎたせいか,結局いずれもそれほど大きなシェアを獲得するには至らず,Perl用のエディタがほしいという欲求は熾火のようにくすぶり続けます。
そのひとつの発露が2004年に生まれたProton CE,のちのKephraでした。
Proton CE
このProton CEは,1999年に最初の公開版が出たScintillaというソースコード編集用に各種機能を搭載したエディタ向けコンポーネントと,イタリアのマッティーア・バルボン(Mattia Barbon)氏が2000年にサポートを開始したWxを利用してつくられた,Perl製のテキストエディタです。
Scintillaは,もともとはPythonの世界で同じような欲求のもと1994年頃に生まれたPythonWinプロジェクトに付属していたエディタ用コンポーネントの貧弱さを改善するために生まれたもの。
Wx(wxPerlと表記されることもあります)は,1992年に開発が始まったwxWidgets(当時の名前はwxWindows)というクロスプラットフォームなGUIツールキットをPerlから利用するためのインタフェースで,コンポーネントの描画を自前で行わず,環境に応じて適切なAPIを呼ぶという特徴があるため,特にWindows環境では当時よく使われていたTkやGtk,そしてちょうどこの頃切り替えが行われていたGtk2を使った場合に比べてより自然な外見になる,というメリットがありました。
当時のProton CEは,Scintillaのデモ用エディタSciTEの60~70%程度の機能しかなく,それほど注目を集めたわけではありませんが,サンプルの実装としては手頃だったようです。これに目を付けたのが前回も登場したアダム・ケネディ氏でした。
2つの助成金
「(言語としての)Perlの構文はあまりに複雑・動的すぎて,(その実装である)perlでしか解析できない(Only perl can parse Perl)」と言われることがありますが,同氏は2002年にPPIというプロジェクトを立ち上げて,Pure PerlでPerlスクリプトの構造を解析する努力を始めていました。
その目的はPPIのドキュメントにいろいろ書かれていますが,スクリプトの構造が解析できれば複雑な正規表現を使わなくても構文の色分けができるようになりますし,ドキュメントの自動生成やコードの整形をしたり,関数や変数の一覧を用意してコード記述時のヒントにすることも簡単になる,といった具合に,その多くはPerlの統合開発環境づくりを見据えたものとなっていました。
このPPIプロジェクトは2年間の努力の末,最後のラストスパートをかけるために2004年にPerl Foundationから助成金を受け,2005年7月に最初の正式版となる1.000がリリースされます。
氏は再度Perl Foundationの助成金を受けて,Perlでエディタを書くときに使えるようにPPIを拡張しながら,File::HomeDirを書き直したり,File::ShareDirやFile::UserConfigといったモジュールを作成したりといった具合に周辺モジュールの整備にも力を入れます。また,Proton CEをCPANに登録するための準備や,App::GUI::Notepadと呼ばれる実験的なアプリケーションの作成にも協力します。

