ラーメンが食べたく

技術的なメモや、僕の気持ちです。

Spacemacsを捨てAtomを再び使うことにした

こんにちは、最近テキストエディタAtomに移行したすずきです。 今この世の中にはテキストエディタがたくさんあります。僕はいま高校二年生でプログラミングを初めて3年くらいしかたっていないのですが、以下のようなテキストエディタ変遷を行ってきました。

まず、僕は最初Unityでゲームを作って遊んでいたのでMonoDevelopでした。途中、変なおじさんにSublimeTextをオススメされたのでMonoDevelopをやめSublimeTextを使い始めました。その後変なおじさんは僕の前から姿を消し、僕はJavaで遊ぶためにそれに適した開発環境を探し、Eclipseにたどり着きました。その後すぐ高校受験という奴がやってきて、僕は一時期プログラミングを辞めていました。でも辞めきれなかった僕はwebプログラミングがしたいということで、htmlやらcssやらレガシーがjavascriptを書き始めました。その時にSublimeTextに戻りました。そしたら変なおじさんがAtomをすすめてきたのでAtomを使い始めました。言われるがままパッケージを入れまくった僕のAtomは瞬く間に軽快な動作を忘れていきました。もうこんな思いテキストエディタは嫌だ!と嘆いていた僕の目の前にvimが現れました。いま考えれば、Atomの不要なパッケージを消してvim-modeを入れればよかったわけですが、当時の僕はその軽さと独特ながら確かな操作性を持つキーバインドに惚れたしばらくvimを使っていました。その後頭のおかしな友人がSpacemacsというテキストエディタを使っているのを見かけたので、おもしろそうだったのでなんとなくインストールして遊んでいました。秒で惚れてしまいました。SpacemacsはEmacsの上で動きますが、vimキーバインドをそのまま使うこともできます。完全に一生お前と生きていくと決めた僕でしたが、使っているうちにじわじわと問題点が浮かび上がってきました。

Spacemacs困りポイント

  • CLIで動かすと結構な頻度で落ちる
    • vimemacsの長所として、CLIで動くというのがあるんですが、CLIでSpacemacsを動かすと結構な頻度で落ちます。落ちる度にSpacemacsが落ちているのではなく、私が上昇しているのだ。と言い聞かせてきましたが、我慢の限界がきてGUIEmacsに乗り換えました。この時点でそれがEmacsである利点が1つなくなりました。
  • 開発の停滞
    • これが一番大きい。Spacemacs自体の開発がほぼ止まっていました。この記事は2017/12/16に書いていますが、直近のコミットは2017/11/2でその前のコミットが2017/9/7、そしてその前が2017/4/7でした。有志のOSSなら仕方のないことで、責めたりとかそういう話では全くないんですが、開発の停滞したテキストエディタを使い続けるのは非常にリスキーな気がしてなりませんでした。
  • Flow
    • 僕は普段Javascriptでreactを書いてるんですが、静的型が欲しくなります。FacebookOSSにFlowというのがあって、それを使うことでJavascriptに静的型を導入することが可能になるわけですが、flow-for-emacsの開発も停滞(というかちゃんと開発する気ない?)していて、しんどさを感じていました。Spacemacsにはlayerという概念があってそれを用いて機能の拡張を行うことができるのですが、flow-layerたるものは当然存在せず上記の「Spacemacsの開発の停滞」というのが響いているのかなぁという感じです。

以上の点を踏まえて移行コストとSpacemacsを使い続けるコストを天秤にかけて考えたら、移行が妥当だろうという結論に至りSpacemacsを捨てることに致しました。約一年間、ありがとう。

なんでAtom

Atomを選んだ理由はいくつかあります。

  • なぜvimではなくAtomか。
    • 別にvimでもよかったんですが、GUIEmacsを使うのに慣れ始めていたのでCLIエディタにこだわる必要が特になかったからです。それに自分は熱心なvim教徒というわけではなくVimScriptでバリバリ拡張を書くタイプの人間ではなかったので、vimを使う選択肢はありませんでした。(キーバインドvimです)
  • なぜIDEではなくAtomか。
    • 使い方を覚えるのが面倒だったから、という逃げの理由です。以前Eclipseを使った時や一時期AndroidScalaをした上での感想なのですが、IDEの使い方を覚えるコストが高すぎると感じました。Scalaのように様々なことが静的に確定する言語ではIDEのちからは存分に発揮され、生産性を生みそうですが、普段動的型付Javascriptばかり書いている僕には使い方のしれてるAtomの方が易しいと思いました。
  • なぜSublimeTextではなくAtomか。
    • オープンソースだから。というのが主な理由です。困ったらソースを見ろ、ができるので。ちなみに仮にSubmimeTextがOSSでもAtomを選んでいたと思います。その理由としては僕がpythonを読み書きできないからです。
  • なぜVSCodeではなくAtomか。
    • VSCodeでもよかったんですが、昔使っていて使い勝手が多少わかっているから、という理由でAtomにしました。今後Atomに大しての不満が募ってきた時に乗り換えるナンバーワン候補です。

で、どうなの

Atom、普通にいいと思います。ショートカットとかで迷う面もありますが、それは慣れの問題であってエディタの問題ではないので、Atom自体は優秀なテキストエディタだと思います。SpacemacsはEmacsなのでelispでカスタマイズできますが、僕はelispが全然書けないので、そこがあまり利点にはなりませんでした。Atomはjsでプラグインが書けるので、個人的に拡張がしやすいというのもあります。ここまで読んだらわかると思いますが、エディタの選定には個人の得意な言語や生い立ちに大きく左右されます。自由に選ぶと幸せになれると思います。