Rust は C、C++ をコピーし、レガシーの王冠を覆す

C および C++ は、今日のソフトウェア業界で最も普及しているプログラミング言語の 1 つであり、630 万人を超える開発者がこの言語を使用してほぼすべてのコーディングを行っています。 現在、C および C++ の立派な競争相手であることが証明されている別の言語があります。 さび。

Rust は Mozilla Research の従業員である Grayson Hoare によって開発され、過去 15 年間に独自の存在に成長しました。 Rust は、AWS、Meta、Atlassian などの技術大手から、Ethereum や Solana などの Web3 エコシステムのサポートまで、急速に開発の世界でスーパースターになりつつあります。

さらに、この言語は過去 7 年間、スタック オーバーフローの開発者調査で最も愛されているプログラミング言語としても選ばれています。 しかし、この言語がこれほどまでに愛され、強力であり、C を置き換える能力を備えているのはなぜでしょうか?

読む: Rust を失敗したプログラミング言語と呼ぶべきか?

Cの孫

この言語は、Haskell のような言語の機能的な性質に加えて、C および C++ の使いやすい構文など、複数のプログラミング言語から最高の要素を借用しました。 この断片的なアプローチにより、Rust は開発者が愛する機能の多くを照合しながら、高速な実行と安全なコードに重点を置いています。

Rust の 1.0 リリースを発表するブログ投稿で、チームは次のように述べています。[Rust’s] 型システム。 . . 何世代にもわたる C および C++ プログラマーによって打ち出されてきたベスト プラクティスの改良と成文化を表しています。


モバイルアプリをダウンロード


他の言語からの遺産に加えて、Rust には独自の革新的な機能があります。 たとえば、Rust は低レベルのコードにきめ細かくアクセスできますが、その高レベルの機能によって機能と抽象化の間の境界線にも対応しています。 この言語はまた、堅牢なオプティマイザーを誇り、ランタイムを削減するために多くのゼロコストの抽象化を使用します。

この言語は、HPC 分野で必須のキラー機能である並行プログラミングを可能にするためにゼロから構築されました。 Rust は、ガベージ コレクションが組み込まれていないため、開発者にメモリ セーフなコードを作成するよう強く求めることにも重点を置いています。

代わりに、プログラムはメモリの借用と貸付の手法を奨励し、変数がいつメモリから削除されるかについての明確なルールを設定します。 メモリの安全性に重点を置くことで、最終製品のバグの量が削減され、展開に関する時間とリソースが節約されます。

一方、C および C++ は、何年にもわたる無計画な更新によってもたらされた機能クリープに悩まされています。 これらの古い言語には、ライブラリの簡単な統合、効率的なメモリ管理手法、実行時チェックなど、ほとんどの開発者が現代の言語で当然と考える機能も欠けています。 RedditユーザーのMatthieumは、コメントでそれを完全に要約し、次のように述べています。

「C++ はめちゃくちゃです。 それは誰のせいでもありません。実際には、ほとんどが歴史的な事故ですが、日常的に支払うものです。 C には十分な狂気がなかったので、C++ の開発者はさらに追加することにしました。 メモリの安全性について話しましたか? データ競争? いいえ、ほとんど意味がありません。 C++ を使いこなすには、深淵を見つめる必要があります。」

Rust のガベージ コレクションの欠如は、プログラムの実行を高速化するだけでなく、C の実行可能なドロップイン代替にもなります。すでに C および C++ を使用している場合。

Cは過去に追いやられますか?

Rust には、C および C++ の多くの機能と、同様の構文があります。 さらに、言語の本質的に安全な性質により、新しい開発者でも、アプリケーションを破壊するバグを心配することなく複雑なコードを作成できます。 これに加えて、Rust にはビルド システムおよびパッケージ マネージャーである「Cargo」も付属しているため、コードのインポートが容易になります。

過去数年間、テクノロジー大手も Rust を自社製品の多くに統合することを重視してきました。 AWS FireCracker VMM は完全に Rust 上に構築されており、S3、EC2、CloudFront、Route 53 などの他の多くのサービスはすべてデプロイに Rust を使用しています。 この言語は Linux カーネルにも導入されましたが、Azure はセキュリティ上の懸念を理由に Rust over C の使用に大幅に移行しました。

Rust の機能を見ると、近い将来、この言語が C の代わりになる可能性が非常に高くなります。 Rust コミュニティは、C/C++ コードを Rust に移植するためのリソースも作成しており、別のメンバーは C と Rust の間の変換レイヤーである Corrode を作成しています。

ただし、Fortran や COBOL などのレガシー言語に見られるように、業界は古いシステムから移行する際に多くの慣性を持っています。 最後の推定では、実稼働環境には約 100 億行の C++ コードがあります。 これは、C++ 以外の言語への切り替えに対して同様に強い力があることを意味します。

ただし、Rust の背後に十分な勢いがあれば、Rust は将来の現状維持のプログラミング言語になる可能性があり、C と C++ は正当なレガシーの位置に委譲されます。

Leave a Comment

Your email address will not be published. Required fields are marked *