DiscourseはなぜRustで書き直されないのですか?

Discourse はメモリ安全です。Ruby はメモリ安全な言語であり、ガベージコレクションされる言語はすべてそうです。この点に関して Rust との主な違いは、安全チェックがいつ実行されるかということです。Rust はコンパイル時にチェックを行いますが、Ruby は実行時にチェックを行います。

Rust は、主に C++ のガベージコレクションの欠如によって引き起こされる、ごく一部のエラークラスに対処します。ポインタで理論的に可能なパフォーマンス上の利点を維持しながら、それを行う方法を見つけたことは確かにクールですが、ユーザーが見るような種類のバグを防止するものでは決してありません。たとえば、結果としてオフバイワンエラーが発生するような状況で、<= を意図していたのに < を使用した場合、Rust は私を救ってくれません。アクションが完了した後に成功メッセージを生成し忘れた場合、Rust は私を救ってくれません。

実際にバグを防ぐのは、Discourse がすでに展開しているようなテスト駆動開発です。マスターから直接デプロイして安定性を期待できるプロジェクトは非常に少ないですが、Discourse はそのうちの 1 つです。

「最新プラットフォーム」は、バックエンドとフロントエンドに JavaScript を使用して、あちこちで次々と登場しています。Ruby は Rust よりも人気が 2 つ下です(Kotlin がその間にあります)ので、現時点では珍しい言語ではありません。確かに、あと 10 年すれば状況は異なるかもしれませんが、Rust への書き換えでさえ 10 年後には技術的負債になるでしょう。

その発言がいかにナイーブであるかを伝えるのは難しいので、みんなその考えに笑っているのです。私は開発者が 3 年間コードをリファクタリングしているのを見てきましたが、彼らは wxWidgets/ShuttleGUI から Qt/QML への移行に取り掛かろうとしているところです。これは、文脈からすると、C++ から C++ への移行ですが、UI ツールキットが異なります。コードの動作が同一であることを保証しながらコードを変換するのは、単に難しいことです。12〜16 日というのは、誰かが着手する前に計画だけで必要となる時間でしょう。

「いいね!」 15