習得する能力の種類の違い

 

VimEmacsが最強って意見に落ち着くケースが多いですよね。

なんでですかね、いつも偏りが強いなあと感じます。

確かに、VimEmacsも軽快でカスタマイズ性も高くてどんな環境でも使えます。使いこなせればとても強力だと思います。そう、使いこなせればね

エディタを使う時って無視できないのがそのエディタを使用する際の導入コストだと思います。すぐに簡単に使えるように環境構築できるかって大切です。

因みに、リッチテキストエディタならVimとかで頑張ってカスタマイズした内容がだいたいデフォルトで搭載されてます

それでいうとVimEmacsは学習コストが高いので、僕は他のリッチなテキストエディタをオススメしたいです。確かに、動きは遅かったり(言うほど遅くないけどな)、リモート開発では一工夫必要ですが、だとしてもGUIで直感的に使えるって素晴らしいと思います。インストールすればなんも設定しなくても最初から開発し易い環境が整ってます。

 

最高のコードエディターは何だと思いますか? - Quora

 

 vim を使ってカスタマイズしてできることを他のエディタならカスタマイズしなくても元々できる。確かに正しい。これは emacs でもいえる。確かに機能だけ見れば概ねできる。ただし、それでも emacsvim の名前が出る理由があると思う。手段と目的が異なっているのだ。

 そう逆なのだ。エディタで得られる機能が目的なのではなくその過程で得られる本人のスキルが重要だから。 vimemacs はあえて言えばダンベルの類のツールであって、これをしたらこんなに楽になるなんて言う類のツールではないのだ。ダンベルを使うと得られる筋力の方が意味があるんだと思う。

 

vimの場合

 個人的にな認識では vim の優位性は別に vim でできることではない。 vim を使う事で使用者が学習する内容に vim の優位性があるのであって、vimの機能自体に優位性があるとは実は思ってない。むしろ vim じゃなくても何でもよくてあのキーバインドを自分が覚えさえすればおそらくその学習コストは結構効率がいい。つまり、 vim で手に入るのは使用者の鍛錬とその結果習得するスキルであって vim を使いさえすれば誰でも何か高機能な機能が使えるというそういうものじゃない。

 CUI で操作をする機会が増えるのも同じで、便利でもあるがそれ以上に使用者の総合的な理解が深まるだろう。その習得を強制するので操作する時の負荷も高い。そのめんどくささがかえって長期的に見た場合ベースとなる知識を増やす。なにより emacs や vi の標準キーバインドかなり効率がいいので、あの変なキーバインドに慣れたらもうやめれない。これはemacs より vi の方がさらにその傾向が強い。

プログラミング言語だけの能力を見たらもっと手っ取り早く言語の習得に時間を掛けた方が速い。

  

emacsの場合

 emacsで得られるものも別にすごい機能の方ではない。vi よりは多機能でカスタマイズ性が高いが、emacsで習得できるモノは自分でカスタマイズしていく過程で得られるスクリプトを使う能力と文字列操作の能力。これは emacs じゃなくて vi でも当然同じことができる。 vi の場合なら自分が使っている別のスクリプトワンライナーの文字列操作をするわけなので、十分に習熟した人なら文字列操作の得意な perl などを使って似た様なことが起きるはずだ。ただ emacs の場合はそれをエディタ自体の持つ lisp でやり、それがエディタの機能に簡単にアクセスできるので使い込むと自分の好きなようにエディタを改造していける。何しろエディタ自体が elisp で作られているので手を入れていけばどこまでも自分の好きなソフトになる。

 つま り emacs で得られるのは何かの機能というより lisp という言語のちょっとしたプログラミング能力とそれを使った文字列操作のノウハウ。そして vi よりユニバーサルなキーバインドの。キーバインドの方は Ctrl+C とかを覚えるようなものなので vi を使ってても bash とか動かしたら emacs っぽいキーバインドを使う git 動かしたら似た様なキー設定になってる。だから結局みんなどこへ行ってもこれを使う。別に必須の知識じゃない。 Windows だって別に Ctrl+C なくても確かに作業はできるけど、あったら便利。だからみんなそれを押している。 vi と違うのは emacsキーバインドはそういう類の共通性がある点。

 

 逆説的に言うと

 vs code とかでも問題ない人もいるはず。例えば vi のキーバインドがあれば vim 育ちの人は違和感がないだろう。そして CUI のツールを使いこなしていない、または vs code の機能で似た様な事をした方が速いという条件の人なら全く問題を感じないはず。emacs と違い vi 系統の場合は本当に習熟していた人たちは文字列操作を CUI 外部のスクリプトでおそらく処理をしているはずなので、別の窓を立ち上げて別に操作をしているだろうし、CUI のツールに習熟していなくてキーだけ vi で覚えたなんちゃって vi 養成ギブスで育った人は vs code の元の機能を使うだけなので CUI の操作自体を必要と思わないかもしれない。

 emacs の不幸はその辺が全部エディタにくっ付いているので キー設定だけの問題とは言えない部分にあって、それが使用者の減少を招いている気がする。