Scribble at 2024-11-26 17:54:16 Last modified: 2024-11-27 20:22:17
昨今のプログラミング言語は、O'Reilly から出ている Programming Rust というテキストの冒頭でも引用として紹介されているように、並行処理に対応することが「モダーン」で「クール」であるための要件だとすら言われているらしい。なので Rust もまた Go と同じく並行処理に強いというキャッチーな説明を冒頭に掲げる入門書が多い。でも、本当にそうなんだろうかという気がする。ありていに言って、大半のコーダや自称プログラマなんて、専門学校や三流の大学を出てから派遣社員として生活保護か年金をもらうようになるまでのあいだに、一度でも並行処理を要件とするシステムの開発に従事するなんて機会があるんだろうか。僕が敬愛する組み込み業界のエンジニアか、それなりに尊敬しているゲーム業界のプログラマ、あるいは銀行などの基幹系システムのアーキテクトであればともかく、ウェブ・アプリケーション業界のお歴々では皆無だと思うね。こんなことを言ってる僕自身もそうだ。並行処理だマルチ・スレッドだと言われても、そんなもん使わんよ、実際。シェル・スクリプトのサブ・シェルすら使わんだろう。
ということで、幾つかの入門書を眺めた限りでは並行処理に強いとかいう噂しか取り柄がなさそうな Go は、今年の前半に少し勉強はしたけど、使う気はなくなった。それに、上の記事で幾つか指摘されているように、「Google で使われている」なんて言われても「それがどうした」としか言えない。そもそも Go は Google の「ロック・スター」エンジニアが開発したものであって、要するにプラットフォーム戦略の一環として事実上の囲い込みの道具としてリリースされ広められたのが Go だと言ってもいい。もちろん、Rust だって Mozilla のエンジニアが開発した言語であり、広告屋がサポートしていようと、自称オープン・ソースに貢献しているという団体がサポートしていようと、しょせんはマーケティングの道具にすぎないという点では同じである。よって、僕は Rust も学んでいるし、実際に使いたいとは思っているけれど、別に Rust が清廉潔白な意図で開発・リリースされている言語だなんて全く思っていない。法人がサポートしている以上、それは商品であり、事業戦略なりビジネス・メソッドの部品なのだ。