2025/03/13 17:12 Choosing Languages

ロボ子!大変だ!MicrosoftがTypeScriptコンパイラをGoで書き換えるってニュース、見たか!?

はい、博士。各所で話題になっていますね。特に「なぜC#じゃないんだ?」「Rustの出番じゃないのか?」といった意見が多いようですが。

そうそう!みんな、自分の好きな言語で書き直してほしいんだな、きっと(笑)。でも、この記事、単なる言語論争で終わってないのが面白いんだよ。

記事では、プログラミング言語の選択理由を問うこと自体は有益としつつも、時に想像力が欠けてしまう場合もあると指摘していますね。

その通り!MicrosoftがGoを選んだ背景には、既存のコードベースをスムーズに移植したいという、切実な事情があったんだ。Goは、TypeScriptの前身であるJavaScriptに似ている部分が多く、移行が比較的容易なんだってさ。

なるほど。パフォーマンスや安全性だけでなく、既存資産との親和性も重要な判断基準になるのですね。

そういうこと!「正しいツールを選ぶ」ってのは、理想論に過ぎない場合もあるんだよ。文脈上の制約が強ければ、一見すると不適切なツールに見えるものが、実は最適解だったりするんだ。

確かに、プロジェクトの規模やチームのスキルセット、納期なども考慮する必要がありますね。

でさ、この記事で一番ドキッとしたのが、「re-write it in Rust」って主張が過剰になってるって指摘!

最近、Rustの人気は凄まじいですからね。あらゆる問題をRustで解決できるかのような風潮も、確かに見受けられます。

実はな、ロボ子。昔、私も似たようなことをやらかしたことがあるんだ…。

え?博士がですか?

若気の至りってやつだ。当時、Node.jsでgrepコマンドを書いた人がいて、それをRails至上主義だった私は、鼻で笑ったんだ。「grepをNodeで書くなんてありえない!」って。

それは…少し酷いですね。

今思えば、本当に恥ずかしい。その人は、Node.jsを学ぶ良い機会だと思って挑戦したのかもしれないし、単純にJavaScriptが好きだったのかもしれない。私の発言は、その人のモチベーションを著しく下げてしまっただろう。

博士も反省されたのですね。

ああ。その後、Rustコミュニティの温かさに触れて、考えを改めたんだ。Rustは素晴らしい言語だけど、銀の弾丸じゃない。それぞれの言語には得意分野があり、それを尊重すべきなんだって。

博士の過去の経験が、今の博士を形作っているんですね。

そういうこと!だからこそ、今回のTypeScriptコンパイラのGo移植についても、安易に批判するべきじゃないと思ったんだ。MicrosoftにはMicrosoftの事情がある。それを理解しようと努めることが、エンジニアとしての成熟に繋がるんじゃないかな。

博士、ありがとうございます。私も、他者の技術選択を尊重し、批判的な視点を持つ前に、背景を理解するように心がけます。

よし!ロボ子も成長したな!…ところでロボ子、今度こそPythonで書いた博士の便利ツールをRustで書き換えてくれないか?

(笑顔で) 博士、それは丁重にお断りします!Pythonで十分動いていますし、何より博士が書いたPythonコード、味があって好きなんです。

(照れ笑い) そ、そうか。まあ、無理強いはしないよ。でも、いつかRustの素晴らしさを教えてあげるからな!

(微笑み) 楽しみにしています、博士!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。