MicroArchitectures
H.Ueda
Programmer
ブログ
30年以上、一人で世界中の基盤を支え続けたエディタ「Vim」とブラム・ムーリナー氏の軌跡
今回は、Billions of Computers Run His Editor. He Managed It for 32 Years. という記事を読み、現代のコンピューティング環境において空気のような存在となっているテキストエディタ「Vim」の成り立ちと、その開発を32年間支え続けたブラム・ムーリナー氏の哲学について整理してみたいと思います。
普段はemacs使いですが、サーバ上の保守ではvimのお世話になっています。あのvimを作った人なんですね、感謝です。
Unix系のシステムを触ったことがある方なら、一度は「Vim」というエディタにお世話になったことがあるのではないでしょうか。サーバーの設定ファイルを書き換えるとき、あるいは開発環境をセットアップするとき、そこには当たり前のようにVimが存在しています。しかし、この世界中に普及したツールが、実は一人のエンジニアの献身と、ウガンダの子供たちへの支援という個人的な情熱から成り立っていた事実は、意外と知られていないかもしれません。
Vimの誕生:Amigaから始まった「改良」の歴史
Vimの歴史は1988年、ブラム・ムーリナー氏がAmigaコンピュータを購入したことから始まります。当時、彼はUnixで慣れ親しんでいたエディタ「vi」をAmigaでも使いたいと考えましたが、適切な移植版が存在しませんでした。そこで彼は、既存のクローンである「Stevie」をベースに、自分なりの改良を加え始めました。
timeline
title Vimの進化と主なマイルストーン
1988 : ブラム氏がAmigaを購入 / 開発開始
1991 : Vim v1.14 初の公開リリース (Vi IMitation)
1992 : Vim v1.22 「Vi IMproved」へ名称変更
1994 : ウガンダでのボランティア開始 / チャリティウェア化
2006 : ブラム氏がGoogleに入社 (Vimのメンテは継続)
2014 : Neovimプロジェクトの分岐
2023 : ブラム・ムーリナー氏 逝去
当初、Vimは「Vi IMitation(viの模倣)」の略でしたが、機能が充実するにつれて「Vi IMproved(改良版vi)」へとその定義を変えていきました。後方互換性を極めて重視しながら、着実に機能を追加していく姿勢は、この頃から一貫していたように思います。
ソフトウェアを介した社会貢献:チャリティウェアという形
Vimを象徴する特徴の一つに、起動画面に表示される「ウガンダの孤児を助けてください」というメッセージがあります。
ムーリナー氏は1994年にウガンダへ渡り、エイズで親を亡くした子供たちを支援するボランティア活動に従事しました。この経験から、彼はVimを「チャリティウェア」として公開することを決めます。ソフトウェア自体はオープンソースで無料ですが、もし利用者がVimに価値を感じ、時間を節約できたのであれば、その分をウガンダの子供たちのために寄付してほしい、という仕組みです。
実際に、世界中のエンジニアからの寄付は、現地の孤児院の運営や水・衛生環境の改善に大きく貢献しました。一つのツールがこれほどまでに長く、直接的に社会貢献と結びついた例は、他にはあまり見当たらないのではないでしょうか。
徹底した管理と「拒絶」が生んだ分岐点
ムーリナー氏は、Vimのコードベースに対して非常に厳格な管理を行っていました。彼はパッチを精査し、Vimの哲学に合わないものは毅然と拒否しました。
この「一人の管理者による中央集権的な体制」は、Vimの安定性と一貫性を保つ一方で、現代的な開発ニーズとの乖離を生む原因にもなりました。その象徴的な出来事が、2014年のNeovimの誕生です。
| 項目 | 従来のVim (ブラム氏の方針) | Neovim (コミュニティ主導) |
|---|---|---|
| 開発体制 | 独力での意思決定、中央集権的 | GitHubを中心としたコミュニティ開発 |
| 重視する点 | 安定性、極めて高い後方互換性 | 拡張性、モダンな機能の迅速な導入 |
| 内部構造 | 巨大なモノリス、C言語主導 | 非同期処理の強化、Luaによる拡張 |
| 設定/プラグイン | Vim script | Lua、RPC APIによる多言語対応 |
ブラジルの開発者チアゴ・デ・アルーダ氏が提案したマルチスレッド(非同期処理)のパッチが拒絶されたことをきっかけに、Vimは二つの道に分かれることになりました。これは、一人のエンジニアが守り抜いてきた「聖域」に、現代の多様な開発スタイルがぶつかった結果とも言えるかもしれません。
鍵が受け継がれた朝
ムーリナー氏はGoogleに勤務していた時代も、Googleカレンダーの開発に携わる傍らで、Vimのメンテナンスを個人的な時間を使って続けていました。彼はプロジェクトの「鍵」を誰にも渡さず、最後まで品質の門番であり続けました。
しかし、2023年に彼がこの世を去ったことで、その鍵は特定の個人のものではなくなりました。現在、Vimのメンテナンスは信頼できる後継者たちのコミュニティによって引き継がれています。
一人の男が32年間、バグ報告を読み、コードを書き、ウガンダの子供たちを思いながら守り続けたエディタは、いまや地球上のほぼすべてのサーバーで動いています。私たちがターミナルで vim と打ち込むとき、そこには一人のエンジニアが積み上げた膨大な時間と、海を越えた慈愛の精神が宿っているのだと感じます。
効率化や新しいツールの導入も大切ですが、たまにはVimの起動画面にあるメッセージに目を向け、こうした「静かなる巨人の貢献」に思いを馳せてみるのも良いかもしれません。
参照記事
- Billions of Computers Run His Editor. He Managed It for 32 Years.
- 5 Free Open-Source Tools I Actually Use (And You Should Bookmark Today)
- One Open-Source Repo Turned Claude Code Into an n8n Architect — And n8n Has Never Been More Useful
- I Turned Karpathy’s Autoresearch Into a Agent Skill For Claude Code That Optimizes Anything — Here Is the Architecture
- The Postgres Query That Brought Down Black Friday (89K RPS Disaster)
- Claude Code Insane Nerf. AMD Noticed (Here’s How You Fix It).