自分の状況は 向井さんと似てる。つまり Emacs は使ってない。 ただ VS Code もそんなに使ってない。VS Code は他のものがないときの fallback というかんじ。カスタマイズもしてない。 仕事が Andoid アプリなのでそこは必然的に Android Studio. 一時期サーバ側の C++ を書いていた頃は CLion に金を払っていた。 これらは今はリモートデスクトップ越しに使っている。きびしい。
Git のコミットログとかは vim だけれど、それはエディタというより Git の機能みたいな気分で使ってる。まったく使いこなしてない。 2020 になってようやくコピーアンドペーストのキーバインドを覚えた。なにこれ革命的に便利。
仕事だと他に社内の Web-based のエディタがあって、最近は Java 以外だとだいたいそれを使っている。
Web-based なエディタ
その内製 Web-based エディタ、所詮は内製ツールなので VS code みたいな出来のよさには遠く及ばない。補完もなんとなくされるかな程度。 イメージとしては Jupyter Notebook/Lab くらいの編集力。ただレポジトリとくっついてるのでブラウザ上でブランチつくってコミットもとかできるし、ビルドもテストもできる。 コードレビューも出せる、のみならず、レビューコメントがエディタから見えたりもする。
あとコードは CITC という仕組みで
ブラウザ上での編集がなぜか手元にも反映されるので、ブラウザでできないこと (ビルドされたアプリを adb install
するとか)はローカル環境でできる。
サーバ側のプログラマにはこれだけで暮らしている人も割といる。ほんまいかなと思うけど、 いわゆる「コード」だけでなく謎の設定ファイルをいじる仕事が大量にある場合はウェブエディタでも大差ないのかもしれない。 SQL や Python みたいにどのみち IDE の強力な支援が期待できない言語にも同じことがいる。 リモートデスクトップと比べるとキータイプ単位でレイテンシが無いのも良い。不毛な比較だけれど。
Web-based なエディタが存在できる理由の一つは「ローカルの設定」を必要としない monorepo と hermetic build の力かもしれない。 エディタからのビルドは要するに CI をトリガするようなものだけれど、ビルドのたびに環境をつくったら時間がかかって仕方がないし、 状態のキャッシュとかも下手にやるとビルドの安定性を損ねる。そのへんの問題が解決済なので Web-based エディタでもなんとかなる。
あとデフォルトが分散ビルドなので、手元でコマンドを動かしてもクラウドから呼んでも違いがないのはシームレスさに繋がっている。
Github Codespaces
手元に環境をつくらなくていい Web-based エディタの気楽さが仕事の外にもあればと探していた頃、 ちょうど Github Codespaces がリリースされたので試してみた。 けっこう良い。ただ結局ブラウザ上のターミナルで色々やる前提があり、目に見えない状態に依存せざるを得ない。 特に裏で VM を動かす前提なのが残念。
ただそれは Github Codepaces の問題というよりは編集しているプロジェクトの制限に思える。 ビルド作業がより宣言的になり、かつ Github Actions のようなコード実行環境がコミットなしに使えるようになればビルドやテストが severless になる。 そうすれば Serverless Codespaces を実現できるはずで、VM はいらなくなる、かもしれない。今後の進歩を見守りたい。
なおこのブログも Codespaces で書けないかと試したが、ベータ期間中は organization の repo を編集できないらしい。 submodule なり fork なりワークアラウンドはあるんだろうけれど、めんどくさいので保留。
Web-based な「エディタ」
コードはさておき、人々は自然言語もテキストエディタで書いてるのだろうか? Emacs にべったりな暮らしをしていた 20 年前はメモをとるのもメールを書くのもチャットをするのも全部 Emacs だった。 いまはそういうのは全部ブラウザでやっている。このブログは例外だけど、でも下書きはエディタより Gist でやることが多い。
仕事だとメモをとるのは(セキュリティがうるさいので社外のサービスは使えず) Google Docs. タイプ量が多いメール、チャットやバグトラッカーもウェブベースだし、ローカルのファイルに何か書く機会がない。 個人でも Notion なり Wordpress なりが主要なテキスト入力環境なのでやはりローカルのファイルはさわらない。 このテキストは例外的に VS code で書いてるけど、我ながらショートカットとか全然覚えてなさすぎてぎこちなさがすごい。
20 年前に Firefox でテキストフィールドを外部エディタで編集する add-on を使いながら脱 Emacs を夢想していた頃は、 そのうちブラウザのテキストフィールドが進化してガチガチにカスタマイズできる日が来るとか思っていたけれど、 そういうことは一ミリも起きなかった。やや残念。 ただ Google Docs にしろ Notion にしろ WYSIWYG な環境はテキストフィールドですらないので、 カスタマイズ可能なテキストフィールドというアイデアはあまりにプレインテキスト至上主義すぎた。
テキストエディタ愛は kzys > jmuk > morrita というかんじであることが判明。 我々この話題を書くべきだったのが疑問が湧いてきた・・・。 一時期テキストエディタ自作勢だった karino2 はきっともうちょっとなんかいうことあることでしょう。