ホーム ja-os Android が開発用プログラミング言語として Rust を正式にサポート

Android が開発用プログラミング言語として Rust を正式にサポート

C と C++ は依然として最も使用され効率的な言語の 2 つですが、メモリ管理の問題でも有名です。実際、Google 内の Android 開発とメンテナンスを担当するチームは、C および C++ のメモリ安全性の欠陥が引き続き Android コードの対処が最も難しいエラーの原因であると表明しています。

これが、Googleが以前からJavaやKotlinなどの言語の使用を推進しているだけでなく、現在ではAOSP(Androidオープンソースプロジェクト)がオペレーティングシステム自体を開発する言語としてRustをサポートしている理由の1つです。

オペレーティング システムには Rust、アプリには Kotlin

さび

Android 向けアプリケーションを開発する場合、 Google は Java や Kotlin などの言語が最良の選択肢であると説明しています。これは、これらの言語が使いやすく、移植可能で、安全であるように設計されているためです。

さて、オペレーティング システム自体の場合、Java と Kotlin はオプションではありません。これは、Android のより深い層では C、C++、Rust などのプログラミング言語が必要となるためです。つまり、システム リソースや低レベルのハードウェアへのアクセスを提供し、リソースが少なく、パフォーマンス特性に優れた言語です。より予測可能です。

C および C++ の場合、開発者はメモリの有効期間を管理する責任があります。残念ながら、特に複雑なマルチスレッドのコードベースでは、これを行うときに間違いを犯しやすくなります。

Rust は、オブジェクトの存続期間や所有権を強制するコンパイル時チェックと、メモリ アクセスが有効であることを確認する実行時チェックの組み合わせを使用して、メモリの安全性を保証します。このセキュリティは、C および C++ と同等のパフォーマンスを提供することで実現されます。

これは、Rust が C/C++ に置き換わることを意味するものではまったくありません。また、明らかに、新しい言語のサポートを追加しても、他の言語にすでに存在するバグは解決されません。 Android エンジニアは次のように説明しています。数千万行のコードを書き直すことはまったく現実的ではありません。

ただし、Rust を追加すると、将来のバグの数と密度が減少し、Android でのサンドボックスの有効性も向上し、結果としてバグ検出も向上します。 AOSP チームは 18 か月間 Rust のサポート追加に取り組んできており、今後数か月以内に共有するプロジェクトがいくつかあると述べています。これをシステムのより多くの部分に拡張することは、数年にわたるプロジェクトであり、まだ始まったばかりです。

これは、Rust 言語の人気の高まりをさらに後押しするものです。Rust 言語は、比較的知られていなかった言語から、 多くのプログラマに最も愛される言語になりました。この言語は、Microsoft 社内で C および C++ をまったく同じものに置き換える可能性すらあります。 Android がそれをサポートしている理由、そしてそれを Linux に導入する動きさえ生み出しています。

【2022年最新】スマホアプリ開発のためのプログラミング言語・技術9選!特徴別に解説!

C と C++ は依然として最も使用され効率的な言語の 2 つですが、メモリ管理の問題でも有名です。実際、Google 内の Android 開発とメンテナンスを担当するチームは、C および C++ のメモリ安全性の欠陥が引き続き Android コードの対処が最も難しいエラーの原因であると表明しています。

これが、Googleが以前からJavaやKotlinなどの言語の使用を推進しているだけでなく、現在ではAOSP(Androidオープンソースプロジェクト)がオペレーティングシステム自体を開発する言語としてRustをサポートしている理由の1つです。

オペレーティング システムには Rust、アプリには Kotlin

さび

Android 向けアプリケーションを開発する場合、 Google は Java や Kotlin などの言語が最良の選択肢であると説明しています。これは、これらの言語が使いやすく、移植可能で、安全であるように設計されているためです。

さて、オペレーティング システム自体の場合、Java と Kotlin はオプションではありません。これは、Android のより深い層では C、C++、Rust などのプログラミング言語が必要となるためです。つまり、システム リソースや低レベルのハードウェアへのアクセスを提供し、リソースが少なく、パフォーマンス特性に優れた言語です。より予測可能です。

C および C++ の場合、開発者はメモリの有効期間を管理する責任があります。残念ながら、特に複雑なマルチスレッドのコードベースでは、これを行うときに間違いを犯しやすくなります。

Rust は、オブジェクトの存続期間や所有権を強制するコンパイル時チェックと、メモリ アクセスが有効であることを確認する実行時チェックの組み合わせを使用して、メモリの安全性を保証します。このセキュリティは、C および C++ と同等のパフォーマンスを提供することで実現されます。

これは、Rust が C/C++ に置き換わることを意味するものではまったくありません。また、明らかに、新しい言語のサポートを追加しても、他の言語にすでに存在するバグは解決されません。 Android エンジニアは次のように説明しています。数千万行のコードを書き直すことはまったく現実的ではありません。

ただし、Rust を追加すると、将来のバグの数と密度が減少し、Android でのサンドボックスの有効性も向上し、結果としてバグ検出も向上します。 AOSP チームは 18 か月間 Rust のサポート追加に取り組んできており、今後数か月以内に共有するプロジェクトがいくつかあると述べています。これをシステムのより多くの部分に拡張することは、数年にわたるプロジェクトであり、まだ始まったばかりです。

これは、Rust 言語の人気の高まりをさらに後押しするものです。Rust 言語は、比較的知られていなかった言語から、 多くのプログラマに最も愛される言語になりました。この言語は、Microsoft 社内で C および C++ をまったく同じものに置き換える可能性すらあります。 Android がそれをサポートしている理由、そしてそれを Linux に導入する動きさえ生み出しています。

【2022年最新】スマホアプリ開発のためのプログラミング言語・技術9選!特徴別に解説!

最新記事一覧