テキストエディタ以外が嫌いです
テキストエディタ以外が嫌いです
こんにちは、テキストエディタ原理主義者の Shougo です。今日は私がなぜテキストエディタ以外のプログラミング技術が心の底から嫌いなのかをお話しします。
はじめに
みなさん、世の中にはプログラミング技術がたくさんありますよね。プログラミング言語、AI、OS、シェル、Web、ネットワーク……。
でも、私にとってそれらは全て「テキストエディタではない技術」というカテゴリに分類されます。つまり、使う価値のない技術です。
テキストエディタで動かないプログラミング言語なんて、人生がないようなもの
プログラミング言語?ただ盲目的にプログラミング言語を勉強して何が楽しいんですか?
プログラミング言語の仕様書と戯れるのが好きですか?私は嫌いです。
プログラミング言語の学習に時間を使いすぎていては、あなたのテキストエディタに使うべき時間が削られるだけであり本末転倒です。
あくまでもテキストエディタのみに集中しましょう。
IDEはテキストが読みにくい
IDE はなぜ邪魔な GUI 要素を表示しっぱなしにしているんでしょうか。
テキストの横にファイルツリーを表示するなんて正気の沙汰ではありません。テキスト以外に余計な表示があると私の目は迷子になります。
IDE は高機能とかいいながら、結局満足に設定するには拡張機能を書かないといけないんですよね。そんな中途半端な拡張性は許せません。
シェルは冗長すぎる
あなたはシェルからテキストエディタを使うんですか?編集が終わったら毎回終了する?
なぜテキストエディタを終了させる必要があるのでしょうか。
テキストエディタは常に起動させて、テキストエディタからファイルを開きましょう。
AI は……まあ悪くないかも?でも!
AI はまぁ悪くないですよね。個人的にもプラグイン開発するときに使ったりします。AI 技術とテキストエディタの融合、わくわくします……?
いいえ、違います!AI はテキストエディタから使うにはレスポンスが遅すぎました。
API を沢山使うと limit を越えてエラーの嵐。AI はテキストエディタのエレガントさには敵いません。
Emacs は Vim のライバル……ではない
カスタム変数?組み込み Elisp?メジャーモード?なんだか難しそうですね。私のテキストエディタのCPU使用率が100%になりそうです。
Vim ならモードの恩恵を受けながら、Vimのシンプルな組み込みプラグインで快適にプログラミングできます。
catは論外
$ cat > "foo.txt"
このコマンドを見ているだけで目が痛くなります。途中で入力を間違えたらどうするんですか?
シェルの中にテキストエディタを埋め込もうとする発想がもはや間違っています。
逆です。テキストエディタにシェルを埋め込むのです。
あなたは cat
でプログラムを書く前にやることがあるんじゃないでしょうか。
テキストエディタが最高である理由
どこでも動く!
ソフトウェアの環境構築は面倒くさいですよね。
ソースコードをコンパイルして実行ファイルを作って……面倒ですね。依存関係を満たすために適切なバージョンをインストールして……。
でもテキストエディタの環境構築は面倒くさくないんですよ。これは不思議です。テキストエディタというのはやはり世界の真理なのだと気付かされます。
テキストエディタは色んな環境で動作します。スマホでも!タブレットでも!
その気になれば世界中の98%のデバイスでテキストエディタが動くかもしれません。これって素晴らしくないですか?
いや、もはやテキストエディタをコンピューターの上で動作させる必要すらないのかもしれません。あなた自身がテキストエディタになればよいのです。簡単でしょう?
何でも作れる
ウェブアプリ?
モバイルアプリ?
デスクトップアプリ?
サーバー?
CLIツール?
ゲーム?
みんなテキストエディタで作られています。
もはや「テキストエディタで作れないものはない」と言っても過言ではありません。他の技術を学ぶ必要なんてありません。テキストエディタだけで宇宙征服も可能です。
TypeScript との完璧な相性
テキストエディタは色んなものと連携して動作することができます。
Microsoft が TypeScript を作り、denops.vim が Vim と TypeScript を繋ぎました。この完璧な組み合わせ。
denops.vim を用いれば入力補完、ファジーファインダー、パッケージマネージャー……すべてが完璧に機能します。まだ denops.vim を使わずに開発している友人を見ると、心の中で「かわいそうに…」と思ってしまいます。
コミュニティが巨大
「このライブラリはテキストエディタに対応してないのかな……」と思ったことはあるでしょうか。私はありません。
なぜなら、そう思った瞬間に自分で作っているからです。つまり理論上全てのライブラリはテキストエディタに対応しているといっても過言ではありません!
世界中の優秀なエンジニアがテキストエディタを使っています。彼らが間違っているはずがありません。間違っているのはあなたのテキストエディタ選択かもしれません。
結論
テキストエディタ以外を勉強してる人へ!
もうテキストエディタなしの混沌とした世界で生きるのは終わりにしましょう。テキストエディタの光輝く世界へようこそ!
あなたのコードはもっと安全に、もっと読みやすく、もっとメンテナンスしやすくなります。
今すぐ改宗すればテキストエディタは寛大なので許してくれます!未来のあなたは必ず感謝するでしょう。「あの日テキストエディタを学んで本当に良かった…」と。
どんなプロジェクトも、どんなプラットフォームも、テキストエディタで征服できます。それが最高のプログラミング体験です。
あなたも今日から、テキストエディタと一つになりませんか?
(注:この記事の内容は冗談ではなく割と本気です……。本当にテキストエディタは素晴らしいですよ!)
Discussion
catは後で参照出来るようにemacsで書いたメモの中に直接、
#swapを控えめにする
sudo cat >> /etc/sysctl.d/99custom.conf < ‘EOT’
vm.swappiness = 10
EOT
と書いておいて後でターミナルへコピペするかshellモードで作業出来るので最高です!
編集も試行錯誤も後からコピペで再現も出来てメモとしても残せるなんて便利!(個人の見解です)
ただ、bashに先頭にスペースが含まれている場合は履歴に残さない様な設定をしないと、改行を含む履歴が残るので、うわーってなります。