Scribble at 2020-08-29 15:36:28 Last modified: 2020-08-29 15:38:23
さきほど Rust をアップデートして、いまのところ自宅のマシンには上記のような開発道具が揃っている。このようなアップデートの仕組みを実装したりメンテナンスするという作業は、確実に多くの人が利用していながらも、はっきりと感謝するべき相手がわからないか調べる機会も少ないのだが、改めて敬服に値するべき大した仕事だと思う。とかく開発においても何かクリエーティブな成果にばかり関心が集まるものだが、実際には10年前の処理系を使い続けるわけにはいかない以上、誰かがパッチを当てたりアップデートしなくてはならない。
古典の翻訳も、たぶん似たような作業なのではないだろうか。10年は早すぎるとしても、僕らが100年前の明治時代に書かれた翻訳をまともに読む気が起きないのと同じく、100年後の大学生から見ても、僕らの言葉遣いは(たとえ女子高生やラノベ作家が使うような日本語ではないとしても)読むに耐えないものとなっているかもしれない。確かに、そういうものを格調高いだのと言いつつ、あるいはいまどきの大学生はこんな言葉も知らないのかと憤慨しながら読んで見せることはできる。ちょうど、僕らがビル・ジョイの書いた c shell のソース・コードを読むのと同じようなものかもしれない。いまどきのコーダは C 言語も知らないのか、云々というわけである。しかし、C 言語そのものも着実に変化しているし、C 言語で書かれたプログラムも改変されなくてはならない。翻訳に、単なる時代の変化による言い回しの違いだけではなく、誤訳という根本的なバグが残留する可能性は常にあるという事実と同じであり、プログラムにも機能要件とは別の観点で改変を要する点が常に残りうるからだ。fn main() { ; } という単純なコードだけでも、場合によっては危険なものになりうる(たとえば、テストとしてサーバにこういうコードが残っていたとして、外部から加わった不正な命令で稼働中のシステムのソースコードが《これ》に置き換わってしまうかもしれない。もちろん、《これ》をコンパイルして再稼働すれば、システム全体は停止してしまう)。