ライナス・トーバルズが約束したように 前回の Open Source Summit で、彼の言葉を守り、包含を遅らせる可能性のある詳細は避けました、Rust for Linux を 6.1 カーネルに含めることを推進するようになりました。
この変更には、 31年後、Linuxは第二言語を受け入れる カーネル開発用。 これにより、Rust 言語がもたらす利点を考慮して、C を破棄して Rust 言語を支持する可能性について、関連する議論が再び発生します。 ただし、少し明確にします。現時点では、Rust は個別のモジュールまたはドライバーの開発を可能にする公式 API のみを取得します。
C 言語を破棄する可能性の問題について、C 言語の作成者は、この方向への取り組みが失敗する可能性が高い理由をいくつか挙げています。
最初のものは C 言語ツールチェーン
C 言語は言語そのものであるだけでなく、この言語用に開発されたすべての開発ツールでもあります。 ソース コードの静的解析を行いますか? – C のこのトピックに取り組んでいる人はたくさんいます。メモリ リーク、データ競合、その他のエラーを検出するツールはありますか? あなたの言語がよりよく装備されていても、たくさんあります。
なじみのないプラットフォームをターゲットにしたい場合は、おそらく C を使用しているでしょう。今日のコンピューティングの共通語としての C の地位は、ツールを作成する価値があり、多くのツールが作成されています。
誰かが機能するツール チェーンを持っている場合、言語を変更する危険を冒す必要はありません。 「より良いC」は、新しいツールチェーンのセットアップに費やす時間を動機付けるために、生産性を大幅に向上させるはずです。 これが可能かどうかはまだ分からない。
新しい言語の不確実性
言語が成熟する前に、言語のセマンティクスの問題に対処するためにバグが発生したり、大幅に変更されたりする可能性があります。 また、文言は広告と一貫していますか? 「例外的なコンパイル時間」や「C よりも高速」などを提供できますが、言語がすべての機能を追加する場合、これらの目標を達成するのは困難です。
そしてメンテナー? 確かに、オープンソース言語をフォークすることはできますが、多くの企業が、後で維持することを余儀なくされる可能性のある言語の使用に関心があるとは思えません。 新しい言語に賭けるのは大きなリスクです。
その言語は C の本当の問題点に対処していますか? C の弱点について、人々は必ずしも同意していないことが判明しました. メモリの割り当て、配列と文字列の管理はしばしば複雑ですが、適切なライブラリと優れたメモリ戦略があれば、それらを最小限に抑えることができます. この言語は、上級ユーザーがあまり気にしない問題に対処していませんか? その場合、実際の値は予想よりもはるかに低くなる可能性があります。
新しい言語の経験豊富な開発者の不足
新しい言語は当然、経験豊富な開発者の数がはるかに少なくなると言われています。 中規模または大規模の企業にとって、これは大きな問題です。 会社が利用できる開発者が多ければ多いほど、会社は有利になります。
また、会社が C 開発者を採用した経験がある場合、彼らはこの新しい言語を採用する方法を知りません。
カーネルのバージョン 6.1 に Rust for Linux が含まれるというニュース これは、Rust 言語に対する Linus Torvalds の見方が変化する中で生まれました。
Linux カーネル開発の Rust サポートは継続され、 これは、「より安全な言語でコントローラーを記述できるようにするための重要なステップ」と考えられています。
Mozilla Research の Rust は、基本入出力システム (BIOS)、ブート マネージャー、オペレーティング システムなどのコードを書く人が使用する一種のプログラミング言語です。 興味がある
知識のあるオブザーバーの意見では、それは C 言語ではなくシステム プログラミングの未来であり、実際、専門家は、C/C++ よりも優れたソフトウェア セキュリティ保証を提供すると述べています。