エディタ戦争
エディタ戦争の最新ニュースをまとめて検索!
エディタ戦争(Editor War)とは、プログラミングを行う人々(特にハッカー文化に属する人々)の間で続いている、どのテキストエディタが一番よいかというテーマの論争である。その中でも二大陣営といえるのは、vi愛好派とEmacs愛好派である。
ハッカー文化においては、愛好するソフトウェアを宗教的狂信とも言える尊敬を持って扱う伝統があり、そのようなソフトウェアの中でもテキストエディタはもっとも一般的である。自らの選択したエディタが最善であると信じるグループ間で数々の論争(フレーム)が発生してきた。もっとも、そのような論争の参加者のほとんどは、からかい半分であると理解している(ユーモアの節参照)。似たような論争はオペレーティングシステムやプログラミング言語にもあるし、コードの字下げスタイルのような傍から見れば些細なことでも論争となってきた。
エディタ戦争においては、vi と Emacs というUNIX系オペレーティングシステムで最も一般的な2つのエディタの信奉者の間で主に行われている。UNIXのユーザーやプログラマの多くは、どちらかのエディタを使用している。また、大抵の人は両方の使い方を知っており、それもあってどちらが良いかを判断できる立場にあると考えている。さらに、これらのエディタは他と比較して急勾配な習熟曲線を持っており、それはつまりこれらエディタのユーザーはその使い方を学習するために多大な時間を要したことを意味している。
ユーザインタフェースの視点で見た場合、この種の話は、単に慣れたもの、習熟したものが使いやすいと言っているに過ぎず、人間工学から見た良し悪しとはまったく無関係である点に注意する。
目次 |
[編集] vi と Emacs の違い
- vi はモードのあるエディタであるが、Emacs にはモードがない。vi ではテキストの変更やカーソルの移動を非常に単純なキー入力のコマンドで行うため、それらコマンドとテキスト内容としてのキー入力の区別が必要となる。結果として、ユーザーはテキスト入力モードとコマンド入力モードを切り替えながら編集を行うことになる。
- vi は小型で高速だが、(少なくとも本来は)カスタマイズがあまりできない。Emacs は低速(特に立ち上げ時)だが、カスタマイズは無制限である。
- vi は通常、テキストモードのコンソール上で使用されるが、GNU Emacs は一般にグラフィカルユーザインタフェース (GUI) を備えたアプリケーションとして動作する。ただし、viの派生版であるvimには、GUIを備えた gvim というアプリケーションが存在する。(参考: http://www.vim.org/download.php#pc)
機能セットと立ち上げ時間の差異により、両者の利用形態にも差異が生じる傾向がある。vi ユーザーは vi の起動と終了を必要に応じて何度も繰り返し、UNIXのシェルからのコマンド入力も併用する。一方 Emacs ユーザーは Emacs を一度起動したらそこに留まり、Emacs でほとんど何でもやってしまう(シェルモードが組み込まれており、必要に応じてコマンドをそこから実行する)。
[編集] vi側の主張する利点
- vi は UNIX系オペレーティングシステムには必ず存在し、POSIX標準にも含まれている。
- vi はある意味で WYSIWYG(訳注:ここでは通常の意味ではなく、「どこにある vi でもほとんど同じ」という意味)である。vi ユーザーはほとんどカスタマイズをしないが、Emacs のヘビーユーザーはカスタマイズを行うことが多く、自分のカスタマイズが使えない環境では不便さを感じる。
- vi は 忍び寄る機能主義 (creeping featurism) に陥っておらず、Emacs よりも小型で高速。オーバヘッドも少ない。
- vi は UNIX の設計思想("do one thing, and do it well"; 1つのことだけをうまくやる)に適合している。UNIX は十徳ナイフを作るものではなく、簡単な仕事をこなす軽いツールを作ることをよしとする。
- vi のコマンドは Ctrl とか Alt といった修飾キーをほとんど使わずに入力できる。これにより腱鞘炎になる可能性が減る。
[編集] Emacs側の主張する利点
- Emacs は vi よりもコマンドが豊富である。
- Emacs はLISPの方言であるEmacs Lispによるスクリプト記述が可能である。
- Emacs には viper-mode という vi 互換モードが含まれている。
- Emacs ではテキスト入力モードとコマンド入力モードを切り替える必要がない。
- GNU Emacs はカレンダー計算ができ、長期暦やDiscordianもサポートしている。これは vi にはない。
- Emacs には40以上のプログラミング言語やマークアップ言語用の編集モードがある(Java、Perl、LaTeX、C、C++、Objective-C、FORTRAN、LISP、Scheme、Pascal、Bashなど)。
- Emacs は英語以外の21の言語の入力と表示をサポートしている(中国語、チェコ語、ヒンディー語、ヘブライ語、ロシア語、ベトナム語、その他)。
- Emacs はテキストファイルからPostScript出力を生成できるし、LaTeXやTeX、さらにはウィキペディア用の編集モードまである。
- Emacs 自身をシェルとして使用でき[1]、各種プラグインを使うことで通常エディタから抜けないと実行できない作業までこなす。例えば、ファイルのマージやdiff機能、更新ログの保守、デバッグ操作、バージョン管理システム、ファイルやディレクトリの操作、Makeファイル作成、gnusを使ったニュースグループ閲覧などである。
- Emacs は Emacs Lisp によって容易に拡張可能であり、vi よりも UNIX の精神をよく表している。エリック・レイモンドらの主張によれば、Emacs は単なるエディタプログラムではなく、必要に応じてモジュールを追加可能な移植性の高いフレームワークである。
- Emacs はQWERTY配列に依存していない。vi のカーソル移動は "hjkl" キーで行われ、これはキー配列に依存している。
[編集] ユーモア
議論においてしばしば、edこそ「標準テキストエディタ」であることが指摘されている。
リチャード・ストールマンは冗談で Church of Emacs(Emacs教会)を設立し、vi vi vi(ローマ数字の6-6-6)を「獣のエディタ」と称したが、必ずしも vi 利用に反対の立場をとったわけではなく、プロプライエタリ・ソフトウェアを悪魔と呼んだ(「viのフリーソフトウェア版を使うことは罪ではなく、苦行である」[2])。同教会は独自のニュースグループを持ち(alt.religion.emacs)、このパロディ宗教の教義をポストしていた。
ストールマンは冗談として自身をSt IGNU−cius(聖イグヌチウス; 聖イグナシアスにかけた洒落)と称した[3]。
vi 信奉者は対抗して Cult of vi を設立し Emacs は vi のよいところを真似ていると強硬に主張した。
vi の入力モード問題について、Emacs 側は vi の2つのモードを "beep repeatedly"(ビービー鳴らすモード)と "break everything"(何もかも台無しにするモード)と揶揄した。vi 側は Emacs のコマンド入力によって手根管症候群が起きると揶揄し、EMACS を何らかの頭字語であるとして様々な元となる言葉を考案した(例えば "Escape Meta Alt Control Shift" など)[4]。ほかにも "Eight Megabytes And Constantly Swapping"(8メガバイトで常にスワップされている)の略だとも揶揄された。これは Emacs が非常にリソースを消費することを指したもので、当時としては 8メガバイトのメモリは非常に大きかった。
[編集] 最近の状況
Emacs は大量のメモリを必要としたため、Emacs 的だがもっと軽いエディタが数多く作られた。また、同時にvimのような vi 系エディタは逆に高機能化を続け、メモリ消費量も Emacs と大差ない状況になっていった。どちらの派生エディタもその祖先となった vi や Emacs の利点と欠点を受け継いでいる傾向がある。
[編集] 参考文献
[編集] 脚注
[編集] 外部リンク
最終更新 2009年11月29日 (日) 06:25 (日時は個人設定で未設定ならばUTC)。
【エディタ戦争】変更履歴

