Rust:抽象化とセキュリティ、完全に無料(サラトフOpen-ITミーティングでのスピーチのビデオ)

こんにちは



先週の土曜日、次のSaratov Open-ITミーティングでプレゼンテーションを行いました。そこでは、Mozilla Researchとコミュニティが開発した有望なシステムプログラミング言語であるRustと、それが解決する問題とその機能とインフラストラクチャについて話しました。 私のプレゼンテーションがコミュニティにとって興味深いものになることを願っていますので、ここに投稿します。



(特定のタイムスタンプでは機能しないため、ビデオは<video>タグを介して投稿に挿入されません。期間は約1時間半です)

http://www.youtube.com/watch?v=lmauAUF823k#t=2583







私は約1年半にわたってRustを研究し、コミュニティに参加しています。 一般に、私がプログラミングに携わっている主なプラットフォームはJVMですが、ネイティブに動作するプログラム(Linuxユーティリティ、軽量なクロスプラットフォームプログラムなど)を常に書きたかったのです。 しかし、私は絶対にC ++やCで書きたくありませんでした。 C ++は巨大で非常に複雑な言語であり、多数の機能(新しい標準ごとにその数が増えています)を備えており、強力な自己規律と長い経験がないため、正しく使用することは困難です。 一方、Cは非常にシンプルですが、非常に表現力に欠けています-Scalaのような言語の後では、(匿名関数などの)馴染みのある機能が多くないため、書くのが難しく、優れた標準ライブラリはありませんが、Cは非常に強力ですプラットフォームに関連付けられています-条件付きコンパイルと最下位レベルのOSツールへのアクセスを通じて、プラットフォーム上で多くのことが行われます。



Rustは、低レベル言語と高レベル言語の間のこのニッチを閉じようとしています。 一方では、C / C ++と同じくらいハードウェアに近く、他方では、より高いレベルの言語により近いセキュリティと抽象化を提供します。 これはすべて、強力な静的解析によって保証されます。これは、Rustで作成されたプログラムがメモリで正しく動作することが保証されているためです。 Haskellを学んだ後の感覚は初めてのようでした-コンパイルに合格したプログラムは常に正しく動作するという事実に驚くでしょう:)



C / C ++に対するRustのもう1つの利点は、インフラストラクチャ、特にパッケージマネージャCargoです。 Cargoのおかげで、クロスプラットフォームのRustプログラムは、JavaやPythonなどの言語で作成されているのと同じくらい簡単に作成できます。 Cargoプロジェクトには、そのRust依存関係のすべてと(必要な場合)C依存関係を構築するための規則を記述するマニフェストが含まれています。 アセンブルされたバイナリを取得cargo build



は、ターミナルで「 cargo build



と入力cargo build



だけです。すべての依存関係が自動的にダウンロードされ、アセンブルされ、プロジェクトに接続されます。 サードパーティライブラリの責任をシステムユーザーに委任するautoconfやcmakeなどのツールを使用する必要性と比較すると、CargoはRustプログラムのアセンブリを解釈/動的言語に非常に近くし、単一のコマンドで作業プログラムを取得します。



さらに、最近、貨物パッケージの中央リポジトリをオープンしました。これは、 Rust-crates.ioの周りの将来の安定したエコシステムの中核となります。 すでに400以上のパッケージがあります。 当然、Cargoはリポジトリのマスターブランチを引き続き使用できますが、crates.ioはパッケージの安定バージョンの焦点になります。 セマンティックバージョニングを普遍的に使用することにより、プロジェクトの依存関係を簡単更新できると想定されています。 ちなみに、言語安定化計画については、Rust開発者からのブログ投稿の翻訳で、 こちらこちらで読むことができます



一般的に、今後の言語の安定化に照らして、今こそ開発者のより広いコミュニティでRustの宣伝を開始する時期だと思います。 現在、Rustは最初の安定バージョンのリリースに向けて非常に積極的に準備を進めており、言語およびライブラリの最も期待される機能の多くが最終的な形をとっています。 もう少し、そして言語は産業での使用のために完全に準備が整います。



私のストーリーのサンプルアウトライン(ビデオ内):

  1. Rustは他の言語との位置関係、どのような問題を解決します
  2. 構文と型システムの簡単な概要Rust
  3. Rustの多型、ジェネリック、特性、および特性オブジェクト
  4. データの所有権と借用の概念-Rustセキュリティの基礎
  5. Rustプログラムでのマルチスレッドとデータ競合の欠如
  6. 安全でない操作が必要な場合
  7. 錆のインフラ
  8. Rustの既存プロジェクト
  9. 便利なリンク


謝罪しますが、聴衆からの質問をマイクに向かって話すのを忘れることもありました。そのため、何に答えているのかが必ずしも明確ではありません:(



レポートのプレゼンテーションはこのリンクで利用可能です。



All Articles