Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Narrative of Ruby & Rust

Narrative of Ruby & Rust

KONDO Uchio

May 11, 2022
Tweet

More Decks by KONDO Uchio

Other Decks in Technology

Transcript

  1. #256 Mirrativ, Inc. Infra Engineer
 • 主にGoを書く、RubyとRustが好き
 • シニアシレンジャー
 •

    好きなtrait: PartialEq
 • バイナリアンワナビ
 近藤うちお (@udzura)
 ※ ミラティブはGo/フロントエンド/Unity/ネイティブアプリエンジニアを強烈に募集しています。

  2. #256 第一の選択肢: C言語?
 • ところでC言語といえば…
 脆弱性ですよね(諸説あり)
 • 僕が色々いうよりIPAの
 資料を読んだ方がいい
 (古いのが難点)


    
 • 他の選択肢… 
 • C++: Cより安全にする仕組みはあるがそれでも自由すぎ 
 • FFIとか: 便利だが逆に自由度低い、ややバッドノウハウ 
 https://www.ipa.go.jp/security/awareness/vendor/programmingv2/clanguage.html
  3. #256 渋ポイント1
 • bindgenはCマクロを
 エクスポートしない
 • 大事な機能に限って
 マクロだったりする
 • Cで小さなラッパ関数を


    書いてリンクするとか
 おもてなしが必要…。
 本当は RSTRING_LEN() が
 使いたいんです…。

  4. #256 渋ポイント2
 • Rubyメソッドに対応する
 関数は、可変長引数(?)
 • transmuteして
 fn() -> VALUE

    型扱い
 他にもQnil→VALUEとか
 transmute多くて治安が
 • 一方mrubyは
 mrb_get_args()を使った…
 治安が悪い!!

  5. #256 Rust gemを便利に作れるラッパcrate欲しい
  
 • 暇があればぼくが作…ウッ
 • !?:
 https://crates.io/crates/coffret 


    • 名前重要なので押さえました
 • 頑張って中身を作りましょう
 nixみたいな。コントリチャンスだ! 
 少しだけ良くなります