連絡先
この言語の定義はおとぎ話のように思えます。これは、以前に利用できたツールが常に速度と信頼性のバランスを取っているためです。 一方、C ++では、割り当てられたメモリの外部メモリへのアクセスの絶え間ないエラー、またはこの時点で別のストリームが書き込むデータの予期しない結果によって、膨大な機会と速度が補償されます。 一方、言語の要塞の一種であるHaskellがあります(「コンパイルすれば、それが機能することを意味します」という原則に従って)、スピードは自慢できません。 中間のどこかで、Java、Python、C#、およびその他の一般的な(実用性のため)言語のバランスが取れています。 錆は、私にとって、C ++とHaskellの最高の特性をうまく組み合わせたものであり、競合他社のレベルで実用性を維持しています。
RustとC ++を統合するもの:
- 使用しないものについては支払いません。 コードの美しさは、パフォーマンスを犠牲にする必要はありません。
- 予測可能なメモリの割り当てと解放( RAII )。
- 機能にわずかな偏りはあるものの、マルチパラダイマリティ。
- C / C ++で記述されたライブラリとの共存:Cコードを呼び出して呼び出される機能。
- 環境(実行時)の最小要件、あらゆるレベルと規模のコードを書く能力。
Haskellで一般的なもの:
- 保証されたメモリモデルセキュリティ。
- 代数データ型 (C ++にはenumもありますが、新しい型をそこに構築することはできません)。
- パターンマッチング 。
- 自動型推論 (C ++では、このためにautoが追加されました)。
- クロージャー (これも新しいC ++にあります)
とげを通して星へ
Rustのすべての魔法は、特定のエンティティの所有者(所有者)、一時的にそれを借りる(変更可能な借り)、および見に来たばかりの(変更不可能な借り)を知っているコンパイラのおかげで可能になります。 C ++またはJavaでプログラミングする場合、わずかに異なる形式ではありますが、この情報を頭の中に保持します。 Rustでは、これは言語構造によって表現されます。これにより、コンパイラーはモデルの正確性を検証し、手間のかからない実行を保証できます。 このようなプログラミングには、これまでとは少し異なるアプローチが必要です。 最初の研究中にあなたをyou迷に陥れる可能性のある主要なポイントを試してみます。
1.継承はありませんが、構造と能力( 特性 )はあります。
2.ポインターは安全でないコード( 安全でない{} )にのみあります。 代わりに、既存のオブジェクトを指すことが保証されている安全なコード内のリンクがあります。
3.何かへの不変のリンクがある場合(不変のborrow = &Object )、リンクが生きている間は誰も値を変更できません。
4.可変ボロー(可変ボロー= &mut Object )がある場合、リンクが有効な間は他の誰もオブジェクトのコンテンツを読み取ることができません。
5.言語開発者はMacと* nixを好むため、WindowsにはGNUが必要です。
Rustには非常に楽しく活発なコミュニティがあります。IRCとRedditではいつでも歓迎します。 すべての良いもののかなりの量がすでに書かれており、プロジェクトの多くはGitHubで積極的に開発されています 。 この言語は、特にゲームおよびグラフィック開発者に人気があります。 オペレーティングシステムの初歩があります 。 将来的には、 Webサーバーとクライアントで実行される可能性も見えてきます。 Rustはどんなタスクにも適しています!
おそらく今日の言語の唯一の深刻な問題は、その急速な発展です。 構文はバージョンごとに変更される可能性があり、場合によっては言語の新しい機能に適応してロジックを再考する必要があります。 この状況は、Rust-1.0が登場するまで、今年もしばらく続きます。 一方、 Rust 'n Stuffsマガジンは今週のルーブリックで、今週のRustでは、過去および今後のすべての変更、新しい記事、および有望なプロジェクトをお知らせします。
私について少し
すぐにRustに切り替えてから2年で、Boo、Dart、Haskell、そしてもちろんC ++を残します。 最初のプロジェクトは、言語の安定版がリリースされるまで延期することにしたゲームでした。 現在、私は積極的にrust-compressとデータコンプレッサーに取り組んでいます。 Rustの明るい未来を信じて、みんなを参加に招待してください!