Emacs vs vim …… の問題じゃない

宗教論争には興味はないが,あまりにも誤解や間違いが多いので念のため突っ込んでおく.

一方、Emacsテキストエディター以上のプラットフォームになろうとしている。

というか,歴史的にはそう言われていたな.「なろうとしている」ではなく「そうだった」が正しい.Emacs,今Eclipse.或いはブラウザ.

しかし,「だから何?」という程度の話.問題の本質ではない.

一方、Emacsは操作しづらい。Emacsの操作は、単一のキーではなく、Ctrlなどのキーと組み合わせて同時に押さなければならない。複数のキーを正しく同時押しするのは、時間がかかる。このため、操作を中断させてしまう。

これは大嘘.

Emacs使いの入力速度を見てれば,これが嘘なのは自明.それにエディタ以外のツールでも,まさか一本指で入力しているわけではあるまい?

これこそが、EmacsとはEsc-Meta-Alt-Ctrl-Shiftの略であるとも言われている所以である。

長年使ってるが初耳だ.それこそ「要出典」レベル.

vimは高速に起動するし、動作も軽快である。vimユーザーは、vimを終了したり、複数実行したりということを躊躇しない。なぜならば、vimは気にならないほど素早く起動するし、メモリ使用量も少ないからである。

Emacsで複数起動しない理由は起動に時間がかかることより,同じファイルを重複して読み込む危険を避けるためだろう.*1

たとえばE1とE2の二つのEmacs(別インスタンス)を開いているとする.E1で編集中のファイルと同じのをE2でも開いて編集し,それぞれ保存すると変更を上書きしてしまう.これはEmacsだろうとなんだろうと,ローカルでバージョン管理ツールでも使わない限りは回避できない本質的問題になる.

特にEmacsでは100を超えるファイルを操作することも珍しくないので,どのファイルをどのウインドウで開いているか/変更したか/保存したか/保存後さらに変更したか/全く変更してないか/etc,を暗記するのは面倒だし,いつか絶対に間違える.そしてその間違いはプログラミングにおいては致命的なバグの原因になるのである.

一方、Emacsは起動が遅く、またメモリ消費量も激しい。

昔の話だけどね.具体的には1990年代初頭か,それより遙か以前の話かな.2000年代にもなって,こんな話を持ち出してEmacs批判をしていたら「老害」と言われることだろう.

EmacsがEight Megabytes And Constantly Swappingとまで言われている事実を知らないようだ。

うん,長年使っているけど初耳.要出典.*2

それに8メガバイトだって?今じゃギガバイト単位のメモリをもってるのに,8MBがどうしたっていうんだろう.

一方、Emacsでは、最初から多くの機能を有効にしている。しかし、万人を納得させることはできないし、特に機能の多くは、ほとんどの人間が不快になるほどひどい設定になっている。

これも大嘘.

たしかに細かい設定をする人は多いけど,それはインストール時に .emacs ファイルをコピペすれば終了なレベル.気にしない人はそれさえ必要ない.

Vimにはモードがある。これは、欠点ではなく利点である。Vimにはモードが存在するので、Emacsのようにキーの複雑極まりない同時押しをしなくても、ほとんどの操作ができるのだ。

これは酷い.

  • モーダルインターフェースはバッドプラクティスで,明らかな欠点.
  • Emacsの同時押しは複雑でもないし,時間もかからない.*3

一般論としてモーダル=インターフェースは,インターフェースにおける有名なバッドプラクティスの一つである.それが原因で旅客機が墜落し,多くの生命が失われたこともある.エディタにおいても頻繁に変化するモードは誤操作の原因になる.*4

とりあえずモーダルインターフェースの議論を勉強すべし.*5

誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)

誰のためのデザイン?―認知科学者のデザイン原論 (新曜社認知科学選書)

ヒューメイン・インタフェース―人に優しいシステムへの新たな指針

ヒューメイン・インタフェース―人に優しいシステムへの新たな指針

http://b.hatena.ne.jp/entry/cpplover.blogspot.com/2012/08/vim-vs-emacs.html

これは,確かにあるある.

*1:その昔だと,複数起動どころかマルチウインドウもなかったしね…….EmacsはXのない環境でも単独で内部にウインドウを開いて複数のファイルを編集し,makeし,実行してデバッグできる,古典的なIDEとも言える存在だった.初期のLinuxにおける,kon+mule も知らないわけか.寂しいなあ

*2:ぐぐると,出るわ出るわ.全部ジョークじゃね? http://www.gnu.org/fun/jokes/gnuemacs.acro.exp.html

*3:学習コストの問題はあるかもしれないが,それは同時押しのせいではない.

*4:Emacsにもモードがないわけではないけどね.textモードとかJavaモードとかPHPモードとかEmacs-Lispモードとか,それこそ数多くの「モード」がある.だが通常これは,一つのファイルでは自動的に設定されれば長時間変更の必要のないもので,その範囲において大きな混乱の原因にはならない.

*5:やりなおし.0点.