Perl の開発環境

人力検索でPerlの開発環境はどんな感じ?という質問があがっていて、にわかに盛り上がって(?)いますね。僕も回答してみました。

一般的にPerl使ってる人はWindowsで開発する人が多いんですかね?サーバにログインして、ターミナル上で開発をする人って結構少ないのかなぁ。
自分なんかローカルで一応Active Perlをインストールしているけど、ほとんど使わないし…。普段はサーバにログインしてそこでemacsで開発、ローカルでやるとしたらcolinuxにログインしてそこで開発って感じです。Windows上にソースを置くということはしてませんねぇ(あ、colinuxはWindows上か…)

その感想として Emacs とか vi 使わないの? っていう話。mixi なんかを見てても僕の周辺で同じ感想を持ったひとが多かったようで。

やっぱり Perl は PC-UNIX を含む UNIX との関係が非常に強い言語なので、UNIX サーバにログインして Emacs or vi っていうのが一番効率の良い開発の仕方、というのがちょっと前までのあり方だったと思うのですが、これだけ開発環境が多様化してきた昨今ですと、意外とそういうやり方をしている人は少数派、というかちょっとオールドなのかもしれないと。

僕も学生の頃はメインに使用していたマシンがデスクトップPC + Linux でその上に環境を構築して開発してたのですが、最近はノートを持ち歩いてそれで全部を済ませるようになっているのでもっぱら Windows です。

が、mod_perl を含めた開発環境となるとやっぱり cygwin や Active Perl なんかでは環境を作るのがなかなか難しい。そこで出番なのが Meadow + ange-ftp とか tramp ですよ。エディタはやっぱりローカルにあった方が何かと便利。例えば ChangeLog メモを取るにもふとしたときにネットワークがないとか、一旦ターミナルにログインするのが、というのでワンアクション取られるのがめんどくさかったりするので。かといってやっぱり Emacs がないと始まらないし、というので Meadow でリモートにあるソースをあたかもローカルのように扱える手段が重宝します。

人力の回答にもちょっと載せましたが、colinux を入れて colinux に samba を入れて Windows のドライブに mount させると、ソースをローカルに持ちつつ Meadow からそれをいじり、colinux で立ち上げた Apache で開発とか、colinux 上の Perl と CPAN モジュールでほげほげみたいなことができるので、Windows PC でもほぼ違和感なく作業できます。ソースがバーチャルな環境にのみあるのがちょっと気持ち悪いのですが、それは CVS (最近はみんな Subversion っぽいけど) はリモートの環境においておいて適宜 commit すれば ok。colinux 上の環境ならセキュリティとかもほとんど気にしなくていいですしね。(欠点は Emacs shell でソースが実行できないとか、Emacs から直接 syntax チェックがかけられないとかあるんですが、その辺は使わなきゃ使わないで問題ない感じ。)

これでメーラーとかブラウザとか Office とか、Windows でよく使うアプリケーションと開発環境を混合させることができます。今まで試した方法の中ではこれが一番しっくりくるかな。一時はリモートのホスティングに置いたソースを ange-ftp で直接いじってたけど、ネットワークがちょっと遠かったりすると保存やその他でちょっとラグがあって少しストレスになるし、cvs-mode や pcl-cvs なんかがちゃんと動かないという欠点もあったり。samba ならローカルのファイルと全く同じに扱えるのでその辺も問題ないと。

まあ、これもかなりマニアックかつオールドな部類っぽいのだけどw

あ、あと人力の回答にも書いてますが Emacs に慣れた体で Windows + xkeymacs を更に加えるともうやめられません。