Help us understand the problem. What is going on with this article?

Rustでプログラミング

More than 1 year has passed since last update.

Rustを使ってみませんか?

皆さんは普段どのようなプログラミング言語を使用していますか?
私は仕事で C#、VB.net、C/C++、java。VBAあまり経験はないのではFortran、java script、アセンブラ、、、と幾つか使用経験があります。どの言語も良い点、悪い点があり、愛すべきところはどのプログラム言語でもあります。
で、今回紹介したいプログラム言語はRustです。特徴として、
- ゼロコスト抽象化
- ムーブセマンティクス
- データ競合のないスレッド
と、多々あります。詳細は公式サイトを御覧下さい。

ただ、私が最も紹介したいのは以下の要素です。
- コンパイラによる強力な静的解析
- C/C++プログラマがイメージしやすいメモリ管理

java ee 7などフレームワークが強力にサポートしてくれる環境ではアノテーションを使用して動的に処理されることで開発効率、メンテナンス性が向上します。しかし、実行時で問題が発覚するため/メタプログラムレベルでのエラーなど問題が発生したときはとても複雑な状況になります。また、高級な言語になるほどオブジェクトのライフサイクルが掴みにくく、これも複雑と思います。

Rustはコンパイラが静的にチェックしてくれる範囲が広く、実行時にエラーが出にくいように工夫されております。例えば、
- 変数の値で暗黙のアップキャストが存在しないことで不用意な値の扱いによる動的エラーの抑止
- 数値の結果がオーバーフローするとわかる時点でコンパイルエラーがでる
- 変数束縛による不定値を使用したプログラムは記述できない
- nullなし
- 例外機構なし
など、あります。これは体験いただけたらわかると思います。同傾向として関数言語(Haskellはかじったことがあります)もそうかと思いますが、関数言語は再帰で表現する処理が多く、コードはシンプルですが処理自体はイメージしにくく困った記憶があります。

次に意外とC/C++のプログラム経験者にはメモリ管理がわかりやすいです。
- スタック領域はスコープを抜けると開放
- スコープを跨ぐにはライフタイムを指定(C/C++のスコープ外に宣言、ポインタ渡し)
- もっと広いスコープではstatic指定(グローバル変数みたい)
と、近いイメージがあります。これはRustがシステム記述言語でありC/C++とターゲットが同じで、両者ともOSのメモリ管理を表現しているためでしょう。

Rustでプログラミングするとコードの実行されていくイメージが意外と掴みやすく、不思議と安心感があります。
Rustを使ってみませんか?

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした