Rustの勉強を始めてみた感想

367, 2022-04-19

目次

Rustはじめました

さいきんはRustの勉強をしている。
一時期Goをやっていたが次第にやらなくなりRustに手を出した。
次世代言語は何を学ぶかという問題があるが、自分はしばらくRustをやりそうだ。

まあそれは当然である。
自分はC/C++をやっていた。
RustはどちらかというとC/C++に近い言語だ。
C/C++経験者がRustを好きになるというのも当然の話しだろう。

Rustの気に入ってる点は以下の通りだ。

  • コンパイラのエラー出力が親切

  • cargoがグッド

まずRustのコンパイルエラーはとても親切だ。
検索しなくてもコンパイルエラーを見ればどうすればいいのかわかる。
これはすごい。

C/C++のエラーやそのほかの言語のエラーは、ネットでエラー内容を検索しないとわからないことが多い。
しかしRustは親切なエラーを出してくれて「こうしてみたら?」という提案もしてくれる。
そのためわざわざブラウザでエラーを検索する必要がほとんどない。
C++のテンプレート関係の複雑怪奇なエラーに慣れている人からするとすばらしいものがあるだろう。

あとはエコシステム、cargoが良い。
cargo newしてcargo runすればビルドしてくれる。楽だ。
WindowsでもLinuxでも動く。

私はひねくれものなので、あまり手放しで賞賛はしたくない。
しかし、今のところRustは賞賛できるところが多い。

ただしまだRustの高度なところには触れていない。
せいぜい構造体と関数を書いてそれをキャッキャ言いながら遊んでるだけだ。
バブルソートを書いたりバイナリーサーチを書いたりしている。

async/awaitなどもまだやっていない。
Rustの非同期プログラミングはどんな感じなのだろうか?
使いやすいといいが。

Rustは難しいか?

Rustは難しいか?
たしかに難しい。
機能が多い。

デフォルトでムーブするというのは初心者にはわかりづらいだろう。
私はC++のstd::move()に慣れていたから問題なかったが。

あとトレイトの概念がいまいちわかってない。
まあ機能を実装するための仕組みなので、理解より先に覚えて使うことはできる。

Rustは完全なプログラミング初心者にはちょっと手が出ないかもしれない。
プログラミング初心者がいきなりC++を学ぶことを考えるとその困難さはわかる。
RustはC++に比べると多少エレガントさはあるが、それでも複雑なことに変わりはない。

Rustでプロダクトを作れるか?

さて、問題は私はRustを学んでなにかプロダクトを作れるのかというところだ。
私の主戦場はWebだから、Rustはちょっと遠い気がする。
それならGoやればよかったのに。

Rustを学んで何か作りたいものがあるかと言うと、今のところそんなものはない。
たいていC言語で作ってしまった。
あとはOSとコンパイラ、Webサーバー、ブラウザ・・・あ、けっこうまだあるな。

というか私はあまり欲がない。
だから作りたいものがそんなに無いのだ。
OSでも作るか、Rustで。