VimにかつてあったBorland C++対応コード
現在のWindows版Vimは、Visual C++とMinGWでビルドできるようになっていますが、かつてはBorland C++ 5.5でもできるようになっていました。しかし、Borlandを使う人がいなくなってしまい、いつの間にかビルドできなくなってしまっていました。Borland C++の後継としては、Embarcadero C++も公開されていますが、これに対応させようという人もいませんでした。そのため、Borland向けのコードをすべて削除することになりました。
- patch 8.1.1306: Borland support is outdated and doesn't work
過去の実装の除去
壊れた実装は不要なものである。正しい。
一方で、過去に誰かがした仕事を足掛かりとして、将来別の誰かが何かをすることもある。
Git上で消えた#ifdef
は、その存在自体を最新版では気づかないことが多い。
Embarcadero C++で実装をしようとする人が現れた時は「ゼロ」からのスタートになる。
(今はC++ BuilderでClang(古いバージョン)も使えるようになっているので、そういう人が現れるか不明ではあるが)
Borland C++の実装(壊れているが)が残っていた場合、その情報を読み解き、「この部分を変更すればいいだろう」と作業が短縮されることもあるかもしれない。一方で、残ることでそれを使わない人にとっては「ソース可読性へ悪影響」でしかない。
難しいところ。
Neovim
上記のように、長い歴史を持つVimのコードの可読性や変更困難性を検討した結果生まれたプロジェクトがNeovimだと認識している。
Neovim is a refactor, and sometimes redactor, in the tradition of Vim (which itself derives from Stevie). It is not a rewrite but a continuation and extension of Vim.
neovimはスクラッチからコードを実装する?(あるいは大規模なリファクタをする?)ことで、長い歴史を持つVimの複雑なコードをシンプルなものへと変えようとしている、と認識している。
neovimが今後どれくらい支持されるか不明であるが、そういう動きもある。