コンテンツ
Cプログラミング言語は本当に時の試練に合格しました。それが繁栄しない環境はほとんどありません。これは主に、その高い実行パフォーマンスによるものですが、残念ながら、コストがかかります。Cは、最新のプログラミング言語で期待される機能の多くをサポートしていません。
- Mozillaが根本的な新しいブランドアイデンティティを発表
Mozilla ResearchのRustは、より優れたネズミ捕りを作成する試みです。その言語設計は、引き続き高性能とハードウェアに近いことに重点を置いています。
ただし、その構文とコンパイラーは、最新のプログラミング言語研究によって提供されるさまざまな利点も利用しています。 Mozillaの使命が「オープンウェブ」の作成であることを考えると、Mozillaが最新の発案をウェブにもたらすためにたゆまぬ努力をしていることは驚くべきことではありません。
Rustは、理論的にはEmscriptenなどのシステムを介してクライアント上で実行できますが、その真の力は効率的なバックエンドサービスの作成にあります。
ゼロからサイトを作成していますか?トップのウェブサイトビルダーと優れたウェブホスティングでデザインとパフォーマンスを釘付けにします。共有または保存するファイルを入手しましたか?これらのクラウドストレージオプションに参加してください。
Rustの使用を開始する方法
「apt-get」などのパッケージマネージャーは確かに開発者の生活を楽にしますが、パッケージリストのメンテナーは概して、過度のスピードの友ではないことが知られています。そのため、ほとんどではないにしても、多くのディストリビューションのパッケージキャッシュは非常に古くなっています。
Rustチームは、実行されるシステムを効率的にセットアップする専用のインストールスクリプトを提供することで、この問題を解決しました。したがって、デプロイメントは2段階のプロセスです。まず、CURLダウンローダー/パーサーが使用可能であることを確認します。
tamhan @ tamhan-thinkpad:〜$ sudo apt-get install curl [sudo] tamhanのパスワード:パッケージリストの読み取り…完了…
次に、2番目のステップで、インストーラーをダウンロードし、パイプ演算子を使用して「sh」に渡します。 「sh」は、ワークステーションのデフォルトのシェルインタープリターの省略形であり、手元のコードの実行に進みます。
tamhan @ tamhan-thinkpad:〜$ curl https://sh.rustup.rs -sSf | sh情報:インストーラーのダウンロード
インストール中、Rustインストーラーは、右の図に示されているものと外観が似ているさまざまなプロンプトを表示します。それらに従うだけで、デフォルトのインストールを実現できます。
場合によっては、Rustのデプロイが失敗し、「エラー:rcfileファイルを書き込めませんでした: ’/ home / tamhan / .bash_profile’」のようなエラーが発生します。インストール中にこれが発生した場合は、「sudo -s」を使用してルートシェルを取得し、すすぎ、繰り返して続行します。
サンプルを実行する
それが邪魔にならないので、最初の小さなプログラムを実行する時が来ました。 Rustファイルのデフォルトでは、ファイル拡張子は「.rs」です。 「firsttest.rs」というファイルを作成し、次のコードを提供します。
fn main(){println!( "Hello World!"); }
CおよびC ++プログラマーは、「println」メソッドの呼び出しに感嘆符の使用が必要な理由をよく疑問に思います。答えは簡単です。Rustは「println」をマクロとして実装します。これは別の方法で呼び出されます。
Rustはコンパイルされた言語であるため、コマンドラインから実行する前に例を処理する必要があります。
tamhan @ tamhan-thinkpad:〜/ rustspace $ rustc firsttest.rs tamhan @ tamhan-thinkpad:〜/ rustspace $ ./firsttest Hello World!
高度な減衰
ここで利用できる限られたスペースで、Rustなどの完全なプログラミング言語を記述することは不可能です。それでは、MozillaResearchの包括的なドキュメントを正式に紹介することから始めましょう。 Cプログラマーを感動させる1つの機能には、「match」コマンドの使用が含まれます。直接比較に加えて、範囲演算子を使用して高度なプログラムの設計を大幅に簡素化することもできます。
fn main(){let number = 5; println!( "Working on {}"、number);一致番号7 => println!( "Prime")、_ => println!( "A number")、}
手元のゴミ
従来のガベージコレクションには弱点があります。ほとんどの実装では、プログラムがときどきひどく停止します。これを回避するために、Rustは、いわゆる「ゼロコストの抽象化」のセットを使用して、同様の動作をそれほど煩わしくない方法でエミュレートします。
原則として、すべてのリソースは、Qtの親子サブシステムと同様の方法で所有者とともに作成されます。ただし、「借用」と呼ばれる機能を使用すると、プログラマーはリソース間で所有権を一時的に譲渡し、それによってリソースをシステムに渡すことができます。
残念ながら、Rustのメモリマネージャの可能性について完全に議論すると、この記事の限界が破られます。Rustが非常に非正統的でありながら、実行可能な形式のメモリ管理を提供することを宣言するだけで十分です。
新しいプロジェクトを作成する
CおよびC ++コードはライブラリに分割できますが、そうすることは煩わしく、やや不快な作業です。さらに、必要なすべてのライブラリが必要な場所にあることを確認することは、経験豊富な開発者でさえ避けたいものです。
JavaScriptコミュニティは、NPMなどの製品を介してこの問題を長い間解決してきました。プロジェクトは、プロジェクト構造ファイルを介して記述されます。このファイルには、特に、実際のコンパイル実行中に必要なライブラリやその他の要素への参照が含まれています。
Rustの場合、Cargoと呼ばれるパッケージマネージャーが同様の仕事をします。新しいプロジェクトの作成は、次のような方法で「cargonew」コマンドを使用して実行できます。
tamhan @ tamhan-thinkpad:〜/ rustspace $ cargo new futuresample1 --bin作成されたバイナリ(アプリケーション) `futuresample1`プロジェクトtamhan @ tamhan-thinkpad:〜/ rustspace $
作成が完了すると、このページの下部にある図のようなフォルダ構造が生成されます。
.tomlファイルは「コントローラー」として機能します–新しく生成されたプロジェクトの場合、ファイルには次の構造が含まれています。
[パッケージ] name = "futuresample1" version = "0.1.0" authors = ["tamhan"] [依存関係]
伝承の.iniファイルとの類似点は、完全に偶然ではありません。NPMと異ならない方法で、Rustプロジェクトに使用される構成ファイルを記述するために古い構成ファイル形式も使用されます。 「[dependencies]」ブロックは私たちにとって特に興味深いものです。これには、コンパイルを成功させるために存在する必要があるすべての外部ライブラリのリストが含まれています。
パケットを追加する
手作業でWebサーバーを作成することは、マゾヒストに任せるのが最善の厄介な仕事です。代わりに、フレームワークを選択します。残念ながら、適切なものを見つけるのは簡単ではありません。AWWYのWeb開発フレームワークのリストにアクセスすると、候補者がたくさんいます。
Rocketは非常に人気があり、2018年5月にアップデートがリリースされたという理由だけで、Rocketを選択します。残念ながら、Rocketの開発者は新しく導入された言語機能を好む傾向があるため、Rustインストールを頻繁に更新します。次のコマンドが必要です。
tamhan @ tamhan-thinkpad:〜/ rustspace / futuresample1 $ rustup update && cargo update
次のステップは主に味の問題です。ほとんどのライブラリには、事前にプロビジョニングされたスタータープロジェクトが付属しており、開発者はGitHubから簡単に吸い上げることができます。 「プライム」ライブラリに対してこれを行うことは必ずしも悪い考えではありません。複数のライブラリが関与すると、手動によるアプローチの方が実り多い傾向があります。
次に、.tomlファイルを開き、次のように「依存関係」セクションを変更して、Rocketフレームワークの最新バージョンを含めます。
[依存関係] rocket = "0.3.6" rocket_codegen = "0.3.6"
Rocketは、合計2つのパッケージを含める必要があるという点で独特です。メインフレームワークに加えて、個別のコードジェネレーターファイルも必要です。いずれにせよ、私たちのバージョンには2つのライブラリの特定のバージョンが含まれています。Cargoはワイルドカードも受け入れることができます。これにより、プログラムは私たちの助けなしに「毒を拾う」ことができます。
それでも問題が1つ残っています。アシストコンパイルを実行するために、.tomlファイルを含むフォルダーに「cargorun」と入力します。これにより、特に、リポジトリから関連するコードライブラリがダウンロードされ、あなたのための全体のエンチラーダ。
次のページ:足場と詳細な分析