覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

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

RustのLT会! Rust入門者の集いに参加してきました。

以下、自分用のメモ


概要

  • 場所: レバレジーズ株式会社(渋谷ヒカリエ17F)
  • 日程: 2016/11/21


玄人枠

自然数を定義してみよう

@chikoski

  • Rustの特徴
    • Rust and the FUture of Systems Programing
  • 自然数を定義して何になるのか?
    • 自然数の定義:良いプログラミングの練習
      • 直和型をどのように扱うか?
      • 再帰的なデータ構造をどのように扱うか?
  • enum
    • RustのenumはCのenumと違って型として定義される
  • オブジェクト指向も扱える
  • パターンマッチが協力
  • Rustのエラーメッセージは親切
  • ライフライム(lifetime)

Rustの話とリソースの話

@blackenedgold

Rustの話とリソースの話 | κeenのHappy Hacκing Blog

  • ゼロコスト抽象化
  • スタックとヒープはRustは選べる
  • マクロとコンパイラプラグイン
  • トレイト(型クラス)は、継承より良い
  • パターンマッチ
  • Cインターフェースは強力
  • ランタイム無し
  • 生ポインタを扱える
  • エラー処理が例外ではないのが素晴らしい
    • (例外は値継続とエラー継続で難しい)
  • sliceをVecのViewとして使える
    • zero copy
  • File, Lockもブロックがあるので自動でcloseしてくれる
  • Use after close
    • Rustでは所有権のある限り勝手にcloseされない
  • Rustについてのまとめ
    • 便利機能の詰め合わせ+所有権
    • さらにランタイムもないしCとの相互連携もできる


LT発表枠

結局Rcとは何なのか?

@kizkoh

  • Rust初心者が陥る罠
    • E0382
  • 参照カウンタポインタの中身を知っていないと使いどころが分かりにくい


RustのAssociated Typedについて

@tacke_jp

qiita.com

  • Associated Type
    • 余分な型パラメータを宣言する必要性がなく可読性が高い
    • 型パラメータの追加・削除の変粉などに強い
    • Genericsを使う際の便利な補助機能だと思って使うとよい


Rustコルーチンと非同期I/O

@kubo39

  • コルーチンの使いどころ
    • よくあるのが非同期I/Oと合わて使う
  • 非同期I/O
    • high performanceなサーバを書くのに必須
    • mioがデファクト
    • tokio-rs
    • mioco
      • 一番スター多いしたぶんすごい、zmq-rsとかで使われてる
      • パッと見はブロックしそうだけどうまく動くらしい


ジェネリクスと静的ディスパッチとエラーメッセージ

@agatan

  • Rustのジェネリクス
    • trait制約を付けられる
    • monomorphizationによってコンパイルされる
      • インスタンス化されるたびに専用の関数をつくる
    • 静的ディスパッチ
      • インライン展開できる!
      • 関数を動的に探す必要がない
      • バイナリが大きくなるという欠点もあるのはある


OS DeveloperがRustを触ってみた

@kotetu

  • RustでOSを書くメリット
    • 安全性、メモリ管理
    • 標準がimmutableなのが良い
    • unsafeブロックで案セーフコードを限定
  • RxRust使ってみたい
  • C/C++とのI/F
  • C/C++でなければ書けなかった分野について有力な選択肢ができた


あなたとRust今すぐダウンキャスト

@saneyuki_s

  • C++とかJavaのクラスみたいにしたい。継承したい
    • 継承は再利用の道具ではない。継承よりも合成せよ。
  • Rustはほかの言語と比較せず、Rustっぽく書く


Rustでasm.jsでPistonした話

@gifnksm

  • asm.js
    • C/C++(そしてRust)をJavaScriptにコンパイルしてくれる
  • Piston
    • Rustで書かれたゲームエンジン
  • WebAssembl界の覇権を狙えるのでは


Rust + Teensy + Windows でベアメタル開発

@Talos208

話についていけなかった


まとめ

全体的にレベル高すぎて焦りました。Rust入門者とは何だったのか・・・