3/4 RUSTに触れてみる & 『よくわかる組込みシステム開発入門』

5時半起床。ずいぶん寝れた。朝活完了。モチベが下がっているので以前と比べて取り掛かるまでに時間がかかる。積読で運動関連の本あったからそれ読もうかな。

 

RUSTやってみる

C99/C++11とかのレガシーなプログラミング言語しか触っていないのでモダンなプログラミング言語を身につけてみたいと思っていたところ、RUSTが良さげなので触れてみる。C/C++をもっと勉強しろよっていう感じだけどね。CはまだしもC++とか奥が深すぎて嫌になっちゃうからね。

tourofrust.com

とりあえず翻訳されていることをざっくりやる。変数は標準で不変なのが安全性を気にするRUSTっぽい。未翻訳部分はスマートポインタとライブラリ使用方法なのでまあ大丈夫でしょ。所有権はなんとなくわかったけどライフタイムが微妙。トレイト周りは実際に自分で実装してみないと分からん。まあ読んでサンプルコードを実行しただけだと分からんよね。公式リファレンスもざっと眺める。

doc.rust-jp.rs

案の定長いので6章まで舐める。実装しているときに必要になったらちゃんと見るほうが身につくし。

変数のシャドーイング挙動が面白い。シャドーイングのおかげで、似た変数に対して異なる名前を思いつく必要がなくなるのが嬉しいらしい。

fn main() {
    let x = 5;

    let x = x + 1;

    println!("The value of x is: {}", x);  // x=6

    {
        let x = x * 2;
        println!("The value of x is: {}", x);  // x=12
    }

    println!("The value of x is: {}", x);  // x=6
}

コンパイラは、関数がどこで定義されているかは気にしなくていいのもモダンぽくて楽。ヘッダーファイルとか面倒だもんな。全体像把握するのに役立つときあるけど、巨大ファイルだとヘッダーファイルも巨大で全体像把握どころじゃないとき多いし。

 

本読んだ

組込み系のはずなのに組込み系の開発に全く触れていないので、軽く勉強がてら購入。この手の本って入門が入門じゃないことがざらなんだけど、本当に入門だった。浅く広く全体像を記載してある、基本情報技術者の教科書から抜粋した感じだ。なので、ほとんど既知の知識だったし、すぐに読み終わった。新入社員にはちょうどいいレベルだと思う。新入社員のメンターになったら渡してみようかな。