tkato’s blog

ブログ名は暫定。

RustのLT会! Rust入門者の集い #3 に行ってきました

Rust LT会

Rustを初めて知って、興味を持ったのは今年の4月くらいだろうか??
Rustドキュメントを読んだところ、組み込みシステムでも十分使えそうだし、今現場で感じる課題を解決できそうな技術要素を沢山含んでるなあと思ったのでせこせこ調べてます。
まだあまり手を動かせていなくて、公式のドキュメントやオライリーの書籍をパラパラみている程度。

そんなこんなで、Rust入門者向けのイベントがあると知り行ってきました。

rust.connpass.com

コンピューターサイエンスの教養が豊かな人ばかりで、刺激が多かったです。

以下、各LTを聞いてたときのメモ。
内容が薄いのは、私が話についていけなかったから…

ドッグさん

こういう本を実装しながら勉強すれば良いのか

  • Rustで遅延評価を実装してみる
    • マクロで囲むと遅延評価される、キャッシュされるようにした
  • 純粋関数型データ構造の本をRustで実装★

サンクのデータ構造は、Memo or NotYet 計算済みならMemoを使い、そうでなければ計算

キーワード:moveキャプチャ、borrow_mut、Derefトレイト

Hashさん

  • Rustのasmを読んで見る
  • 公式が提供するWebのIDEで、asmも見れる
  • releaseビルドすると、asmを追えないくらい最適化されるので、debugビルドが良い
  • asmが元のソースの何行目かが出力できる

RxRust?

mozamimyさん

  • Brain F**k(BF)をRustで実装
  • BFは、言語を学ぶ上で良い題材

syu_creamさん

  • マルチスレッドからで、1つのVectorにpushする例をC++とRustで比較
  • C++のコンテナはスレッドセーフでないので、ロックが必要
    • C++11以降はthreadやmutexが標準搭載らしい
  • Rustだと、C++と同じコードではまずコンパイル通らない★
  • mutexが必要。追加して初めてコンパイル通る
  • ただ、Rustでもデッドロックは起こる。注意は必要

shunji_konishiさん

  • CODEPREPというサービスを提供している
  • Webベースの、言語やフレームワークのTutorialなど
  • コードを穴埋めして動かしながら学べる
  • Rustの教材も3つある
  • コンパイルエラーが起こることを確認し、その解説、という感じの教材

moppさん

自作OSから入門するRust

Rustでデザパタ書いた人

  • OSをCで書いてるけど、つらい
    • 名前空間、エラー処理、無名関数、抽象化など機能不足
  • RustのSafeに触れると、今までのCが以下にunsafeかわかる
  • C経験者がいきなりRustを学習するのはハードルが高い
    • すごいHaskell本が参考になる
    • Rustの標準ライブラリを読むことも勉強になる

アメミヤさん

  • RustをProductionに導入した話
  • ログ収集デーモンを作った
  • Rustはパフォーマンス凄い
  • コンパイラかしこいので、バグを踏むことが少ない
  • どうしてもgolangと比較される
  • Rustでも、クロスビルド&静的リンクでバイナリ配布も簡単

今後

やっぱりコードを書かないと駄目だなと感じたのでコードを書きたい

ドッグさんやmoppiさんのようにデータ構造やデザインパターンをRustで書いてみるのが勉強になりそうだけど、自分にはもう少し簡単かつモチベーションが上がる課題の方が良さそう。
どう勉強してくと良いかから考えねば。たぶん色々手を広げすぎなんだろうな…