Rust:新しいシステムプログラミング言語
5472 ワード
これは、メディアに作られた古いポストです.
どのような錆がわからないあなたのそれらのために、ここで迅速かつ短いイントロです
RaustはMozilla ResearchのGrydon Hoareによって元々設計されました、はい、Mozillaウェブブラウザを作る会社.RaSTはパフォーマンスと安全性、特に安全な同時実行に焦点を当てたプログラミング言語です.錆はゴミ箱コレクションを使用せずにメモリの安全性を提供します.それはシステムプログラミング言語であるので、Cと時にはより速く走ることができます.
さびはなぜ
C/C +が我々が知っているすべてを動かす世界では、何が我々をさびにもたらしますか?ここでは考慮すべき例を示します.
このグラフを見てください.
マイクロソフトの遭遇のセキュリティの問題の70 %は、メモリの安全性のためです.なぜこれが起こるのか?メモリセーフコードを書くのは難しいからです.これらの問題は生産やテストの際に放置されているわけではありませんが、その理由のために、エラーを書いたりキャッチしたりするのはとても難しいです.そういうわけで、PythonとJavaScriptのような言語は、これらの複雑さを抽象化して、より多くの開発者にものをつくるために力を与えるためにつくられました.しかし、彼らはパフォーマンスの罰則と実行時のオーバヘッドと来る.ここは錆が入る場所です.
私がさびが好きである理由
私がさびについて好きであるもののリストは、ここにあります
構文:Rustは非常に賢明な構文を持ちます.そして、それを理解するのが簡単で、速く、そして、多くのものの上で抽象化しています.しかし、それはPythonほど簡単ではなく、Cと比較して、それは非常にクリーナーです.それは現代のプログラミング言語と多くの類似点を共有します. 例:変数の宣言
パフォーマンス:パフォーマンスに関しては、疑いがなければなりません.錆はコンパイルされた言語ですしたがって、実行可能なバイナリを吐き出します.CPUのレジスタをマルチスレッドにアクセスすることから、錆はコンピュータのあらゆる部分からパフォーマンスを押し出すことができます.
メモリ:Rustの主なセールスポイントは、コンパイル時に、あなたのアプリケーションがヌルまたはダングリングポインタを参照することから安全であることを保証するということです.錆もメモリをリークすることが困難になりますが、それは保証ではありません.それは所有者の原則で動作し、誰がメモリとその値の所有者であるかを定義し、この基本原則に基づいて、錆はメモリの安全性を保証することができます.どんなエラー/警告もコンパイル時に報告されます.
パッケージマネージャ:はい、PythonやJavascriptのようなすべての最新のプログラミング言語のように、Rustもパッケージマネージャを持っています.あなたが貨物で言及するすべてのパッケージをダウンロードします.tomlファイルと最終コンパイル時にプログラムをコンパイルします.バインディング:Rustはほとんどすべてのプログラミング言語で優れたインターフェースを共有します.したがって、これは大幅にあなたのパフォーマンスを高めるために既存のプロジェクトの錆を統合することがはるかに容易になります.
コンパイラ:ちょうど心のこもった驚くべき、私を信頼してください、さもなければ、あなたはそれをインターネットであなた自身で捜すことができます.そのコンパイラは、簡潔な説明、問題を修正する方法についての提案、およびエラーコードがそれについての詳細を読むには、単一のエラー間違いを指摘するコンピュータの先生のようです.そして、それはすべてではない、それは詳細な警告、どのようにそれらを修正するには、潜在的なランタイムエラーやスタイルガイド、どの言語があなたのコードにそのような素晴らしいフィードバックを提供する私に教えてくれます. 以下にコンパイラの不満の例をいくつか示します
ソース:グーグル
ソース:グーグル
ソース:グーグル
私がさびについて好きでないもの
それは学ぶのが難しいです:他の言語と比較して、それは錆から始めるのが非常に難しいです.私はRustが私が私のコードを編集する前にC/C +で「良い実行」としてゆっくり学習していることの多くを学ぶことを強制したことを発見しました.私は、錆は、2、3日で学ぶことができるだけでなく、ハード/技術/良い練習のものに対処する言葉の種類ではないことを強調したい.あなたはすぐに厳格な安全性を学ぶことを強制され、それはおそらく最初に不快に感じるでしょう.全体の概念メモリの所有と借入Rustは、オプションと結果(JavaScriptの約束のような)のような機能を持つ初心者のための学習曲線を増加に焦点を当てています.
コンパイラ:Rustは、ランタイム性能コストをほとんど持たない高レベル言語に対してはるかに共通の抽象化レベルを提供する言語であるため、コンパイル時にある程度それを支払う必要があります.コンパイルが遅い.
フレームワークと生態系:Pascal、Fortran、C/C +、古いツールチェーンとソフトウェア開発ワークフローを持つ高速プログラミング言語のようなシステムレベルのプログラミング言語について考えるとき、あなたの心はどうなるでしょう.今、Python、JavaScript、偉大なツールチェーンのサポートと現代言語を考える.錆は、両方の世界の力を兼ね備えています.それは現代のツールチェーンを持つ高速なシステムレベルのプログラミング言語です.カーゴ、Rust ' s Package Managerは、開発者が錆の中でプロジェクトを始めるようになっています.なぜなら、今ではライブラリをリンクしている時間を無駄にしていないし、環境変数を追加する必要はありません. Rustはすべての分野で驚くべきフレームワークを持っています.ロケットは、フラスコとルビーに類似したWebフレームワークは、最初の公開リリースの3日後に生産に置かれた、それはあなたのプログラムが任意のエラーや警告なしでコンパイルし、すべての制限テストケースを渡す場合、それはほとんどの戦闘の証拠と生産準備ができている場合のみ可能でした.フレームワークは、極端なパフォーマンスが容易に達成されることができる点で速く進化しています.
業界養子縁組は、さび世界で起こっているすべてのリスト です
Mozillaはその量子エンジンでさびを使用します.マイクロソフトは、「安全なシステムプログラミング」で、産業界の最高のチャンスであると言います.マイクロソフト:我々がKubernetesアプリ の上でウェブアセンブリのためにGoの上にプログラミング言語Rustを使用した理由 Googleは、Androidの部品を交換するために錆を考慮しています. アップルは、最もネットワークパーツでCからさびに移行します. AWSラムダ機能をRust を使用して書くことができます
Amazonの爆竹はAWSラムダとファルゲートを動かす仮想化技術であり、完全に錆で書かれている.フェイスブックは、さびにおいてLibraを作りました
ノードの置換、 デコは、それを電源に錆を使用します. 不調和は、Goからさびまで変わりました ドロップボックス同期のための錆を使用します. 安全で安全な生態系をつくるために、さびを使っているCloudflare.それは、それがネットワークと組み込みシステムの世界で最初にC/C++を交換する将来のシステムプログラミング言語です.
閉じるこの動画はお気に入りから削除されています.
どのような錆がわからないあなたのそれらのために、ここで迅速かつ短いイントロです
RaustはMozilla ResearchのGrydon Hoareによって元々設計されました、はい、Mozillaウェブブラウザを作る会社.RaSTはパフォーマンスと安全性、特に安全な同時実行に焦点を当てたプログラミング言語です.錆はゴミ箱コレクションを使用せずにメモリの安全性を提供します.
さびはなぜ
C/C +が我々が知っているすべてを動かす世界では、何が我々をさびにもたらしますか?ここでは考慮すべき例を示します.
このグラフを見てください.
マイクロソフトの遭遇のセキュリティの問題の70 %は、メモリの安全性のためです.なぜこれが起こるのか?メモリセーフコードを書くのは難しいからです.これらの問題は生産やテストの際に放置されているわけではありませんが、その理由のために、エラーを書いたりキャッチしたりするのはとても難しいです.そういうわけで、PythonとJavaScriptのような言語は、これらの複雑さを抽象化して、より多くの開発者にものをつくるために力を与えるためにつくられました.しかし、彼らはパフォーマンスの罰則と実行時のオーバヘッドと来る.ここは錆が入る場所です.
私がさびが好きである理由
私がさびについて好きであるもののリストは、ここにあります
構文:Rustは非常に賢明な構文を持ちます.そして、それを理解するのが簡単で、速く、そして、多くのものの上で抽象化しています.しかし、それはPythonほど簡単ではなく、Cと比較して、それは非常にクリーナーです.それは現代のプログラミング言語と多くの類似点を共有します.
let variable: i64 = 2147483748;
// defining datatype is optional
Declaring functions:
fn logger (x: String) -> String {
// some functionality some_string
// don't have to explicitly write return}
パフォーマンス:パフォーマンスに関しては、疑いがなければなりません.錆はコンパイルされた言語ですしたがって、実行可能なバイナリを吐き出します.CPUのレジスタをマルチスレッドにアクセスすることから、錆はコンピュータのあらゆる部分からパフォーマンスを押し出すことができます.
メモリ:Rustの主なセールスポイントは、コンパイル時に、あなたのアプリケーションがヌルまたはダングリングポインタを参照することから安全であることを保証するということです.錆もメモリをリークすることが困難になりますが、それは保証ではありません.それは所有者の原則で動作し、誰がメモリとその値の所有者であるかを定義し、この基本原則に基づいて、錆はメモリの安全性を保証することができます.どんなエラー/警告もコンパイル時に報告されます.
パッケージマネージャ:はい、PythonやJavascriptのようなすべての最新のプログラミング言語のように、Rustもパッケージマネージャを持っています.あなたが貨物で言及するすべてのパッケージをダウンロードします.tomlファイルと最終コンパイル時にプログラムをコンパイルします.バインディング:Rustはほとんどすべてのプログラミング言語で優れたインターフェースを共有します.したがって、これは大幅にあなたのパフォーマンスを高めるために既存のプロジェクトの錆を統合することがはるかに容易になります.
コンパイラ:ちょうど心のこもった驚くべき、私を信頼してください、さもなければ、あなたはそれをインターネットであなた自身で捜すことができます.そのコンパイラは、簡潔な説明、問題を修正する方法についての提案、およびエラーコードがそれについての詳細を読むには、単一のエラー間違いを指摘するコンピュータの先生のようです.そして、それはすべてではない、それは詳細な警告、どのようにそれらを修正するには、潜在的なランタイムエラーやスタイルガイド、どの言語があなたのコードにそのような素晴らしいフィードバックを提供する私に教えてくれます.
ソース:グーグル
ソース:グーグル
ソース:グーグル
私がさびについて好きでないもの
それは学ぶのが難しいです:他の言語と比較して、それは錆から始めるのが非常に難しいです.私はRustが私が私のコードを編集する前にC/C +で「良い実行」としてゆっくり学習していることの多くを学ぶことを強制したことを発見しました.私は、錆は、2、3日で学ぶことができるだけでなく、ハード/技術/良い練習のものに対処する言葉の種類ではないことを強調したい.あなたはすぐに厳格な安全性を学ぶことを強制され、それはおそらく最初に不快に感じるでしょう.全体の概念メモリの所有と借入Rustは、オプションと結果(JavaScriptの約束のような)のような機能を持つ初心者のための学習曲線を増加に焦点を当てています.
コンパイラ:Rustは、ランタイム性能コストをほとんど持たない高レベル言語に対してはるかに共通の抽象化レベルを提供する言語であるため、コンパイル時にある程度それを支払う必要があります.コンパイルが遅い.
フレームワークと生態系:Pascal、Fortran、C/C +、古いツールチェーンとソフトウェア開発ワークフローを持つ高速プログラミング言語のようなシステムレベルのプログラミング言語について考えるとき、あなたの心はどうなるでしょう.今、Python、JavaScript、偉大なツールチェーンのサポートと現代言語を考える.錆は、両方の世界の力を兼ね備えています.それは現代のツールチェーンを持つ高速なシステムレベルのプログラミング言語です.カーゴ、Rust ' s Package Managerは、開発者が錆の中でプロジェクトを始めるようになっています.なぜなら、今ではライブラリをリンクしている時間を無駄にしていないし、環境変数を追加する必要はありません.
業界養子縁組
Mozillaはその量子エンジンでさびを使用します.マイクロソフトは、「安全なシステムプログラミング」で、産業界の最高のチャンスであると言います.
Amazonの爆竹はAWSラムダとファルゲートを動かす仮想化技術であり、完全に錆で書かれている.
ノードの置換、
閉じるこの動画はお気に入りから削除されています.
Reference
この問題について(Rust:新しいシステムプログラミング言語), 我々は、より多くの情報をここで見つけました https://dev.to/dev117uday/rust-new-systems-programming-language-4l43テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol