Scribble at 2024-01-17 21:24:38 Last modified: 2024-01-18 13:17:34
さきほど Rust の本をジュンク堂で物色していて止めたという話を書いたのだが、まだ僕は Rust を学ぶ値打ちを感じている。
とは言え、2年くらい前のバカみたいな出版ブームで騒がれていたほど、Rust には実績が積み上がっていないという、新しいプログラミング言語に共通の問題がある。C が普及したのは UNIX の標準言語だったからだし、COBOL が特定の分野で普及したのも勘定系の計算に強かったからだし、Perl が普及したのは標準的な CGI のスクリプト言語だったからだし、PHP が普及したのは標準的な CMS のスクリプト言語だったからだ。JavaScript のように、ブラウザの実装言語として殆ど最初から競合がなかったような処理系は例外として、それ以外は全て「使う値打ちがある」という強力で誠に当たり前の理由があって普及したのだ。
しかし、Rust はいまのところケーパビリティの前評判だけが爆発的に先行してしまい、却って実績が着いてきていないせいで、騒いでいた人たち自身が過大評価したのではないかと疑い始めていたりする。やれ Linux のカーネルは Rust で書くようになるとか、簡単に言えば C を置き換えるなんていう野望ばかり軽口で語るやつがあまりにも多かった。でも、C++ ですら C を置き換えるには至っていないという明白な事実が示しているように、機能がどれほど先進的であろうと、それだけのことで道具を簡単に変えたりプロジェクトの方針が簡単に変更されたりなどしないのである。そいういう意味で、気の毒だが Ruby なんかも、しょせんファンの多いマイナーな言語の一つだと言っていいだろう。書店でも、Perl や Go と並ぶマイナーな言語の一角に押し込められているのが現実だ。
そもそも、そういう目立つ事例として知られているソフトウェアの開発プロジェクトというものには、数多くのエンジニアが関わっている。したがって、その状況で別の処理系での開発に置き換えるとなると、最低でも構成員の全てが新しい処理系のエキスパートである必要がある。大半の構成員がマニュアルを手にしながら既存のプロジェクトから移管したり、あるいは現行のコードを移植するなんて、そんなバカな管理手法など無い。すると、あの「プログラミングを独習するには10年かかる」という Norvig の有名な論説で知られているように(Norvig は人工知能の教科書の著者としても知られているわけだが)、処理系の入れ替えなんてタスクは、やろうと決めてからでも数年で終わるような話ではない。ましてや、カーネルやウェブ・サーバなどクリティカルな用途の開発に採用する処理系そのものの信頼性を検証する必要があるのだから、仮に今年の1月に Linux のカーネルを Rust で開発しなおすというプロジェクトが正式に採用されたとしても、移行が終わって僕らが利用するレンタル・サーバなどで当たり前のように使われるようになるには、どんなに早くても10年はかかると思うし、それくらいの時間をかけるべきでもあろう。
ただ、そうは言っても Rust は既に10年以上も前からあるわけで、そろそろ何か大きなプロジェクトが採用してもよさそうではある。最初から Rust で開発していることをキャッチ・フレーズにするなんていう、たいていは子供の遊び同然のベンチャーが手掛けるような、些末なソフトウェアの動向なんて、僕らにはどうだっていいのだ。