春は出会いと別れの季節。入学や就職で、新しい生活を始める人も多いだろう。それを機にPC環境もそろそろ大人への階段を上ってもいいかもしれない。ここでは、はてなという企業でプログラマーとして働くあの人の開発環境を紹介することで、プロが好む作業環境を考える。
わたしははてなという企業でプログラマーとして働いています。はてなは、ブログやソーシャルブックマークなどWeb上のサービスを提供する会社ですが、それらのほとんどはPerlで書かれており、LinuxやApache、MySQLをはじめとするオープンソースソフトウェアの上で動作しています。そんな理由から、開発環境も自然とオープンソースのツールを使うことになります。今回から2回に分けて、そんなわたしの開発環境を簡単に紹介させていただきたいと思います。
本題のツール類の話に入る前に、開発に使っているハードウェアの話を先にしておきましょう。
まず、開発はすべてノートPC1台で行っています。いろいろ理由はあるのですが、一番の利点は自宅でも会社でも同じ環境で開発を続けられる、というところでしょうか。わたしは仕事でサービスを開発する以外にも、プライベートでPerlのライブラリを書いてみたり、オープンソースソフトウェアのプロジェクトに参加したりしています。
こういった状況なので、開発環境が会社と自宅でバラバラですと、ちょっとしたツールの設定を2回行う必要があるなど、何かと面倒です。また、後述するcoLinuxやMac OS Xを使えば、ノートPCの中に完結したUNIX環境が手に入る*ため、ノートPCさえ持っていれば、例えば飛行機の中など移動中でも開発を続けられたりします。実際、先日も国際線の退屈な長時間のフライトで、コードを書いて暇をつぶすことができました :)。
さて、ソフトウェアの話に入っていきます。まずはOS。ノートで開発する、と聞いて例えばWindows向けPCのOSを換装してLinuxなどのPC UNIXをインストールしている、あるいはノートPCをデュアルブートさせてUNIX環境と使い分けている、なんていう姿を想像された方も多いかもしれません。
しかし、いまどきはローカルのPCにUNIX環境を構築するのに、UNIXをインストールするというストレートな方法以外にもいろいろやり方があります。
などがその例です。
図1を見てください。わたしのデスクトップのスクリーンショットです。一見すると何の変哲もないWindows XPのデスクトップですが、中央にはターミナル(Tera Term)が起ち上がっており、どこかのUNIXへログインしてシェルを操作しています。
この、「どこかのUNIXへログインして」がポイントです。普通に考えるとリモートのUNIXサーバにログインしているように思えますが、実はこれはローカルに起ち上がったLinuxにターミナルでログインして操作しています。coLinuxを使うと、Windowsの上でLinuxを動作させることができるのです。つまり、1つのPCの中で2つOSが動いているというわけです。このWindowsの上で動いているLinuxをサーバにして、そこにログインして開発を行う、という感じですね。
わざわざWindowsの上でLinuxを動かすメリットは、
などなどいろいろあります。
わたしはcoLinuxにDebian GNU/Linuxをインストールして、そこにPerlやRubyなどの言語や、Apache、MySQLといったアプリケーションの開発/動作に必要なソフトウェアをインストールして利用しています。
また、coLinux上に構築されたユーザーのホームディレクトリは、Sambaを使ってWindowsからネットワークドライブとしてアクセスできるようにしてあります。これで、Windows上のアプリケーション、例えばテキストエディタなどから、直接coLinux上のファイルを編集できます。こうしてプログラムの編集は使い慣れたエディタで、その動作環境はLinuxでというように使い分けています。
単一のマシンにLinuxをインストールした場合、最近ではGNOMEなどのデスクトップ環境がGUI周りの機能を提供していますが、coLinux on Windowsはそれらデスクトップ環境が、Windowsに置き換わったような使い勝手だと想像していただけば良いでしょう。
coLinuxのようにWindows上で別のOSを動かすソフトウェアとしては、VMware Playerもあります。VMwareは、WindowsやLinux、Solarisなどの上で仮想的にハードウェア環境を提供し、ほかのOSを動かすエミュレータです。もともと有償のソフトウェアでしたが、ライセンス体系が変更され、無償で利用できるようになりました。元が有償のソフトウェアということもあり、非常に安定しており、信頼のおけるエミュレータです。また、coLinuxと異なりLinux以外のさまざまなOSをサポートしていたり、OSのインストールが比較的簡単などのうれしいポイントもあります。
Windows+coLinuxのように「使い慣れたデスクトップアプリケーションを使いつつ、開発環境の下地はUNIXで……」という意味では、Mac OS Xを使うのが手っ取り早いという話もあります。
Mac OS Xは見た目こそ美しくグラフィカルなOSですが、そのベースはUNIXです。Windowsの上でcoLinuxを動作させているときのように、仮想的にUNIXが動いているわけではなく、Mac OS XそのものがUNIXです。従って、ローカルでUNIXのコマンドが使えますし、サーバでも何でもUNIX向けのソフトウェアはたいがいのものが使えます。Windows+coLinuxのように環境が2つに分かれていたりもしないので、デスクトップアプリケーションとUNIXプログラムとで非常にスムーズな連携が行えます。
わたしは1年以上前にWindowsからMac OS Xにスイッチしました*が、開発環境も特に問題なく移行できています。図2の画面はわたしのデスクトップのスクリーンショットです。Emacsでソースコードを書き、Mac OS X標準のターミナルでRubyを実行し、ブラウザでWebを閲覧しています。EmacsもRubyもローカルにインストールされていて、ローカルで動作するので、Webの閲覧以外は、ネットワークにつながっていなくても可能です。
ちなみに一時期まではLenovoのThinkPad X40を使っていたが、その後MacにスイッチしてPowerBookを使っている。
昨年、米国西海岸で開催されたETechというカンファレンスに出席した。ETechは、技術系、特にWeb関連の技術に特化しているのだが、参加者の半数近くがMac(iBookやPowerBook)を使っていたのが非常に印象的だった。Mac OS Xが、Web開発者に支持されていることの表れとも言えそうだ。
Copyright © ITmedia, Inc. All Rights Reserved.