Windows OSのエクスプローラーやOS XのFinder(ファインダ)など、コンピューター上でファイルやフォルダーを扱う際に欠かせないのが、ファイラー=ファイルマネージャーの存在。今後、コンピューターの使用スタイルが多様化することで、ファイルやフォルダーを意識する必要がなくなる可能性はありますが、温故知新の意味を込めて、古今東西の古いファイラーや最新OSのファイラーまで広く紹介します。今回は「Midnight Commander」を取り上げましょう。
世界のファイラーから
世界のファイラーから - 日本のDOS環境を変えたファイラー「FD」
世界のファイラーから - 海外のDOS時代を支えたファイラー「Norton Commander」
NCクローンとして始まった「Midnight Commander」
第一回でJohn Socha(ジョン・ソチャ)氏の「Norton Commander」を取り上げましたが、同ファイラーはDOS時代のユーザービリティを大きく向上させ、多くのユーザーに愛されました。そのため、ソフトウェアの開発能力を持つユーザーは多くのNC(Norton Commander)クローンが登場しています。さまざまなOSを対象にした独自のファイラーが開発されましたが、それらの中でも多くの使用者を集めたのが「Midnight Commander(ミッドナイトコマンダー)」。メキシコのプログラマー/フリーソフト開発者であるMiguel de Icaza(ミゲル・デ・イカザ)氏が、メキシコ国立自治大学在籍中の1994年に書いたLinux用のファイラーです(図01)。
そもそもLinuxには、決定版と言われるファイラーは存在しませんでした。もちろん強力なコマンドラインツールが星の数ほどそろっているLinux環境でファイラーを使う必要はありませんが、すべてのLinuxユーザーがWizard(魔法使いのように使いこなす)級のユーザーではありません。そのためLinux環境でもファイラーを求める声は小さくなかったようです。その声に応えたのが、後にデスクトップ環境であるGNOME(ノーム)プロジェクトに携わり、.NET Framework互換環境となるMono(モノ)を開発したIcaza氏でした。
当時の開発経緯を知る文献は残されていませんが、同氏が20歳前後だった1994年5月に最初のリリース版となるバージョン0.3を公開しています。同バージョンは非常に原始的で、ファンクションキーを押して実行する各機能はシステムコマンド経由で実行してしました。ユーザーメニューの搭載も次バージョンまで待たなければならず、現在のソフトウェア名に変更されたのもバージョン0.9からです。マウスのサポートや視覚効果の拡張などいくつかの機能が追加されましたが、ポイントはファイル操作機能を内部ロジックとして備えた点。ファイルをコピーする際にcpコマンドを使用せず、内部処理で済ますようになりました。
1994年9月にリリースされたバージョン0.14には、Janne Kukonenko氏が開発に携わっています。同氏の詳細は不明ですが、1995年2月にリリースされたバージョン2.0にも同氏の名前は列挙されており、Icaza氏はもちろん、Radek Doulik氏、Fred Leeflang氏、Mauricio Plaza氏、Dugan O. Porter氏らの名前が並んでいました。この時点で多くのソフトウェア開発者がMidnight Commanderの開発にコミットしていたことが確認できます。
バージョン2.0では、サブシェルと呼ばれる機能をサポートし、Midnight Commanderを実行しながらbashやzshなど好みのシェルを操作することが可能でした。この他にもダイアログボックスマネージャーの採用は、MS-DOSやWindows OSに慣れ親しんだユーザーには高評価を得ています。この時点でオープンソース化したMidnight Commanderには多くの開発者がコミットするようになり、Windows NTへ移植されたのもこの頃でした。なお、現在のWindows OS向けMidnight CommanderはSourceForgeからダウンロード可能です(図02)。
最初にWindows NT版を作成したJuan Grigera氏は、当時のNorton Commander for Windows NTでファイルを操作する際に、ロングファイルネーム情報が失われるというバグがあり、Midnight Commanderの移植版を作成し始めたと当時のインタビュー記事で述べています。1995年9月にはバージョン3.0をリリース。tarファイルを展開せずに操作する仮想ファイルシステムなど多くの機能を実装しました。
1997年になるとIcaza氏は、スペイン出身のFederico Mena(フェデリコ・メーナ)氏と共にGNOMEの開発を開始しています。同じデスクトップ環境であるGNOMEとKDEはライバルのように扱われますが、ここで興味深い文献を一つ提示しましょう。Brazil's Software Livre Forum 2003にIcaza氏が参加したときのレポートがKDEコミュニティのサイトに残されていますが、同氏のスピーチに対する反応として、「彼はKDEを裏切った」というコメントが残されています。この一言に当時のKDEコミュニティが抱いた鬱憤(うっぷん)が込められているのでしょう。
さて、その一方でGNOMEプロジェクトの中心人物となったIcaza氏は米国に移住し、GNOMEプロジェクトに注力する時期を送ります。その中でGUIバージョンのMidnight Commanderとなる「MC Gnomegate(後のGnome Midnight Commander)」の開発に着手しますが、多機能性を実現するために(内部コードが)複雑になったMidnight Commanderの移植(正しくはCUI版とGUI版を両立した新バージョンの開発)は容易ではありませんでした。一時期は「www.gnome.org/mc/」というプロジェクトのWebサイトも用意され、初期のGNOMEにも搭載されましたが、現在はGNOMEのファイラーとしてNautilus(ノーチラス)が採用されています(図03)。
話は前後しますが、バージョン4.0がリリースされたのは1997年6月。Icaza氏がML(メーリングリスト)に投稿した内容が今でも確認できます。この頃、GNOMEプロジェクトに集中していたIcaza氏はMidnight Commanderの開発を、当時副メンテナーだったNorbert Warmuth氏に預けました。この頃のMidnight Commanderはユーザーから高いニーズを求められなくなり、過去の進捗状況と比較すると停滞したように見えます。
それでも2000年12月には、MPlayerの開発者として有名なハンガリーのArpad Gereoffy氏が最初のフォーク(ソフトウェア開発プロジェクトから分岐し、別のプロジェクトを立ち上げる)版が公開されました。バージョン4.1.35をベースに数多くのバグフィックスと機能拡張を行い、一躍人気を博します。この時点で本家Midnight Commanderはバージョン4.5に向けて開発が進められていましたが前述のように開発スピードは停滞したまま。2001年5月にはPavel Roskin(パーベル・ロスキン)氏の手によってGUI版のコードを分離し、元のCUI版に戻したバージョン4.5.55がリリースしています。このような混乱を招いたIcaza氏はMidnight Commander開発プロジェクトから完全に身を引きましたが、開発者間の混乱やさまざまなフォーク版が登場する一因となりました(図04)。
図04 1997年から2012年までの進捗状況や開発者のコミットを資格化した動画。YouTubeで視聴できます |
2004年にはバージョン4.6.0がリリースされましたが、Roskin氏が開発メンテナーから撤退することをMLで発表。同氏とFSF(Free Software Foundation)は代わりにPavel Tsekov氏をメンテナーに指定しますが、その後の数年間は開発が停滞します。そのままMidnight Commanderはアーカイブされてしまうように見えましたが、2009年にSlava Zanko氏が開発プロジェクトへ参入することで、再び息を吹き返しました。
2011年には内部エディターを強化したバージョン4.8をリリースし、現在も開発が続けられています。公式サイトのアクティブな開発者リストによりますと、現在はロシアのAndrew Borodin氏とIlia Maslakov氏、ベラルーシのSlava Zanko氏ら三人の手によってメンテナンスおよび開発が続けられています(図05~06)。
紆余曲折(うよきょくせつ)を経て2013年現在もファイラーとして生き延び続けているMidnight Commanderは、他のファイラーと一線を画す存在でしょう。前述のとおりWindows 8でも動作するバージョンがリリースされていますので、興味のある方は一度お試しください。ナビゲーターは阿久津良和でした。次回もお楽しみに。
参考文献
・Wikipedia
・Softpanorama