読者です 読者をやめる 読者になる 読者になる

テキストエディタの話

これはMMA Advent Calendar 20167日目の記事です。昨日はsu_zu君で、PowerShellでぐいぐいでした。

www.adventar.org

僕はブルーレイプレイヤーを使う時くらいしかWindowsは使わないのですが、PowerShellから.NETが使えたり、最近だとWSLとかあったりして面白そうですよね *1。 他にもsu_zu君はffmpegOpenGL, OpenCV, 3Dモデリングだったりのグラフィックや画像処理系について明るくて、MMAの中でもめずらしいタイプの人で面白いです。


今回はテキストエディタについて書こうと思います。内容は先月部内でEmacsについて発表したときの内容を元にしたものになります。そのときは準備不足で発表がグダグダになってしまったのですが、今回はふわっとした事をつらつらと書こうと思います。

テキストエディタは何を使っていますか?

僕はEmacsを使っています。使い始めた理由はRubyのmatzとかの有名な人はみんなEmacsを使っていた印象があったからです。他にもLispを書くことに謎の憧れを持っていたとかそんな動機だった気がします。あと高校頃の部活の友達がvimを使っていました。

そんなたわいもない理由ですが僕はEmacsを使い始めましたし、使い続けています。皆さんはどんな理由があって、今使っているエディタを使っているでしょうか。

何がいいんですか?

大学に入り、MMAに入部し、気づけば3年生になっていました。その過程で、「テキストエディタ何使えばいいの?」と聞かれたことが何度かあります*2

ここで面白いグラフを見てみましょう。下のグラフはGoogleトレンドでみた過去5年分のEmacs, Vim, Sublime Text, Atom, Visual Studio Codeの各エディタの検索回数の推移です。

最新のデータを見ているのでもしかしたら異なるかもしれませんが、vimSublime Textの人気が圧倒的ですね。AtomVisual Studio Codeは最近ユーザが増えてきた為かまだ少ないですが、それでも確実にのびてきています。一方Emacsは下がりつづけていて下火ですね………かなしい。

また、2004年からの推移を見るとEmacsの検索件数の減少が目に見えてわかります。

単純に検索数 = 人気/利用率と捉えることは難しいでしょうが、自分がエディタ選びに迷ったときに参考になると思います。エディタもプログラミングをするときの道具の一つでしかないので、コミュニティがどれくらいしっかりしているか、ユーザは多いのか、新しいエディタに関しては、この先も開発が続いていくのかなどが気になるポイントかと思います。

僕がEmacsを始めたときにはこのようなことは考えていませんでしたが、昔から人気のあるエディタはユーザも多く、知見や便利にする拡張もそろっており、今もなお開発が継続されているというお墨付きで、外れのない選択だったのかなと思います。

エディタを選ぶときの基準は当然人に依りますが、一般的にコミュニティの規模やユーザ数、パッケージの多さや検索したときすぐにtipsが出てくるか。あとは周りに使っている人がいるかどうかが大事だと思います。このあたりはプログラミング言語の選び方と似たところがあります。

結局何がいいんですか?

Emacsがいいと思います!!!!

最新版の25.1だとXWidgetといって、Emacsのバッファにネイティブウィジェットを埋め込める機能も追加されています!*3 www.softantenna.com 他にも便利なパッケージが色々そろっているだとか、有名なあの人もEmacsユーザだとかEmacs上でだいたい全てが完結させることができるとか色々いい事があります!!!

半分冗談はさておき、本当にEmacsはいいと思いますが、今年入ってきた1年生にはAtomを勧めました。理由としては、始めのリリースから2年弱経っていてある程度利用の実績が出て来たこと、拡張がそろってきたこと、僕自身が触ったことがあることなどが理由になります。VS Codeが良いという話も聞きますが、やはり自分が触ったことのないものは勧めにくいです。

Emacsを勧めなかった理由はキーバインドなど多少の慣れが必要だったり、Windowsで使う知見が無かったりなど色々あげられますが、一番の理由はプログラムを書く前にエディタの慣れが必要になるのは本質的ではないからです。

布教は1年生の方から質問が来たとき、喜んで布教をしようと思います。


つらつらとテキストエディタについて書いてきましたが、この辺りで終わろうと思います。皆さんも自分に合ったテキストエディタを選んで、最高のプログラミングライフを過ごしてください。

明日はid:suwagi6さんで、MMA会則です。

46m44s.hatenablog.jp

*1:他の部員の話ですが、WSLを使ってGentoo on Windows10をやった人もいます

*2:「なんでEmacs使ってるの?キーバインドわかんなくない??」も

*3:だから何だと言われるとつらい