ゴムの木

初心者から一歩踏み出す

RustでHello, worldするまで

こんにちは、ゲネです。

前回予定していた通り、この記事では今ゲネが一番気になっているプログラミング言語であるRustに入門します。

Rustとはどういった言語か

Rustをインストールしてバリバリ自分で進めていきたい方は、ゲネの記事を読まなくても大丈夫。

だってRustの公式チュートリアルは日本語にも翻訳されているから。

しかし、これはあくまでチュートリアルですので、Rustを使うと具体的に何が嬉しいのかにはあまり重点が置かれていません。

そこで、私が着目するC/C++の弱点や、それを克服するRustの利点を交えて解説していきたいと思います。検索すれば達人たちによる良記事はいくらでも出てきますが、そっちを読んでねというだけではブログ記事として成立しませんし…

ゲネはRustに何を期待しているか

端的に言えば、

  • C/C++よりセキュアなコーディングができる低レイヤ言語
  • 爆速で動く

の2点です。

逆に言えば、現時点ではこれだけしか期待していません。

1点目に関して、C言語はもともとUNIX OSを書き直すために開発された言語で、軽量であるため今でも組み込みシステムなどに使われています。

しかし、メモリにアクセスできる言語であり、かつ安全機構が欠けているためバッファオーバーフロー(メモリの領域あふれ)などを防止するシステムがありません。

この仕様のため、攻撃者が意図的にバッファオーバーフローを発生させ、ターゲットシステムに悪意ある動作を行わせることが欠点であるとされてきました。

RustはC言語系列の魅力である実効速度の高さを保持しつつ、エラー処理や自動メモリ管理によってC言語系列の弱点を克服しているところが非常に魅力的です。

私自身、まだRustを深く触った経験がないため触っていくうちにメリットデメリットが見つかることでしょう。

気になったらとりあえず入門!それくらいの気持ちでいます。

Rust入門

Mac, LinuxでHello, world!

MacLinuxとほとんど同じコマンドを受け付けますので、LinuxMacをメインにしている方には朗報です。

なんと5行のコマンドを打つだけでHello, world!が出力されます。

$ curl --proto '=https' --tlsv1.2 [https://sh.rustup.rs](https://sh.rustup.rs/) -sSf | sh

でインストールが完了し、

$ rustup update

でRustの更新ができ、任意のディレクトリ内で

$ cargo new (Project Name)

とすることでプロジェクトフォルダが生成され、cdでそのフォルダ内に移動して

$ cargo run

でデフォルトで書かれている

Hello, world!

が出力されます。

ね?簡単でしょう?

Win10でHello, world!

インストールが少しGUIだなあというだけで簡単さはMacLinuxのそれとは遜色ありません。

https://www.rust-lang.org/tools/installインストーラをDLしてきてインストール。

Power Shellで

$ rustup update

を実行して最新版にアップデート。以降は上記と同様に、任意のディレクトリ内で

$ cargo new (Project Name)

をし、

$ cargo run

を走らせることで

Hello, world!

が出力されます。

楽しいことをしよう

お疲れ様でした。

RustはOSカーネルの開発といったコアな部分だけではなく、Webアプリケーションの開発やAPIサーバの開発といった、よりイメージしやすい部分の開発に使われつつあります。

また、以前の記事で触れたとおり、AtCoderなど大手競プロコンテストサイトでも使用できるようになっています。

静的型付け言語は入門のハードルが…コーディングが難しい…と言われがちですが、ハードルが低めのRustで軽く入門してしまいましょう。

参考リンク:https://zenn.dev/mabe/articles/936b788cd2b4d4

PR

株式会社スマレジTechFarm事業部ではWebエンジニアを募集中です!

corp.smaregi.jp

PythonやRustなど最新の言語の案件も多数あり、未経験含む様々なご経験をお持ちの方にご活躍いただける会社です。 こちらのフォームからエントリーしていただき、就職が決まれば10万円を進呈中です! カジュアル面談も随時受付中です。どうぞお気軽にエントリーください。 (「ゲネのブログを見た」とおっしゃっていただければ嬉しいです。)