Mozilla組織は、Rust 1.0プログラミング言語を準備する際にフィニッシュラインに達しました。 開発者
は 、この厳soleなイベントは年末に開催される
と言っています。 ベータテストの後、最終リリースがリリースされます。 その瞬間から、有望なプログラミング言語を戦闘条件で使用できます。コードは将来のバージョンでコンパイルされることが保証されています。
コンパイルだけではありません。 Mozillaは、Rustのデザインが最終的にそのミニマリストの形になっていると考えています。 たとえば、以前はいくつかのタイプのポインターがありましたが、現在は
&T
と
&mut T
残っています。 単純化は、クロージャを含む他の側面にも影響を及ぼし、多くの論争を引き起こしました。
Rustは、CおよびC ++の機能とJavaセキュリティを組み合わせたものです。
全体の設計は、所有権と借用の概念に基づいて構築されています。 当初は、所有権メカニズムを使用して、プロセス間でデータを迅速かつ安全に転送することを目的としていました。 しかし、その後、同じメカニズムを使用して、関数の大部分をライブラリに転送できることを理解しました。 その結果、Rustは、セキュリティを損なうことなく、開発者が予想したよりもさらに低いレベルであることが判明しました。 最小限のRust構成では、オペレーティングシステムのカーネルを記述することさえできます(例:
1、2、3 )!
開発者は、公式リリースの前に実装する必要がある機能のリストも公開しました。 現在の作業は次のとおりです。
- 動的なサイズの型を持つ型。 型付けシステムの拡張により、コンパイル時にサイズが不明なデータ型(配列など)を使用できます。 代わりに、配列またはオブジェクトを含む危険なポインタが添付されます。
- 箱なしのクロージャー。 新しいクロージャの設計では、それらはオブジェクトタイプと組み合わされています。
- 機能のシステムの連想型 (関連型)は、ライブラリの注釈の記述を非常に容易にします。 最初の実装は準備ができています。
- Where句。 基本的な分離の柔軟な新しい形式を導入する予定です。 この関数の作業はすでに完了しており、まもなくメインコードブランチに追加されます。
- 複数の送信を伴う特性(マルチディスパッチ特性)。 特性の機能は、一度に複数のタイプを指定できるように拡張されています 。これにより、より人間工学的なAPIの可能性と、前述の連想タイプの使用が可能になります。
- デストラクタ デストラクタのセマンティクスが改善されたため、メモリをゼロにする必要がなくなり、プログラムのコンパイルと実行の速度が向上します。 これで、メモリをゼロにするための条件の分析が終了します。その後、この部分もメインブランチに追加されます。
- 緑のスレッド (緑のスレッド)は、特定のオペレーティングシステムで効率を最適化するために、メインライブラリから追加のスレッドに削除されます。 これにより、プログラムの実行が高速化されます。
並行して、
貨物パッケージマネージャーが作成され、中央のソフトウェアリポジトリが編成されます。
最近Habréで公開さ
れたStepan Koltsovによる講演から:
「RustはJavaとC ++の問題を解決します。Rustで書かれたプログラムは高速で安全です。 RustはC ++と同じ低レベル(金属に近い)プログラミング言語ですが、コンストラクトは言語に組み込まれているため、使用後の二重使用呼び出しなど、プログラムがメモリエラーを引き起こさないことをコンパイル段階で証明できます。削除、初期化されていないメモリの使用など。
さらに、RustはC ++およびJavaを設計する際に犯した多くの間違いを修正します。 たとえば、C ++とは異なり、Rustのテンプレートは静的に型付けされており、Javaジェネリックの代わりに、Haskell型クラスに似たメカニズムが使用されます。
公式Webサイトの Rust
公式コード例を参照してください。
UPD。
Googolplexの 全文翻訳「Towards Rust 1.0」