RubyKaigi Takeout 2021 感想戦 with Matz

RubyKaigi Takeout 2021 closing 後に、Matz にキーノートとかほかのことについて聞いてみよう。

時間

もうはじめてます。

zoom 接続先

https://cookpad.zoom.us/j/92227150915?pwd=TjhpZ3VmZ3U3bk53WWV5OE9nOE16QT09

ミーティングID: 922 2715 0915
パスコード: 165928

質問

誰でも書き込めます。

まつもとさんへ質問

  • Ruby2.0の時とRuby3.0の時で、リリース後の反響はどんな違いがありましたか? (igaiga)
    • 2.0 のときは20周年イベントとかさなっていて、イベントがたくさんあったことのほうが印象的 (by matz)
    • 3.0 のリリースのときは松本さんへのTwitterのThank youリプライがめっちゃ来ていてすごかった (by mame)
  • Formatter 入れる気あるんですか?(ko1)
    • バンドルするという意図ではなかった
    • rubyfmt rubocop rufo prettier-ruby
    • rubocop rules created by matz?
      • (rubocop preset matz?)
      • standardrb が良さそう
        • 見た感じ違和感のないスタイルだった (matz)
    • go では formatter でもめ事を解決してます(usa)
      • 個人の好みはそれぞれあるが、標準があればみんな従う
      • もめればいいんじゃない?(matz)
  • osyo さんのマクロについて純粋な感想を聞かせてください (mrkn)
    • 面白いと思った(matz)
    • マクロを作りやすいようにASTを標準化するとかはありだと思う
    • Rubyのバージョンごとの違いが出るのはやむを得ないか
      • Juliaでも分岐しているそう
    • パーサーを作り直したいという話もあるのでいろいろ考えることがある
    • unparseがほしい
    • ASTを直接評価するのはバリデーションが必要になる
  • RuboCopのCは大文字になります(質問ではなくキーノートのtypo)。(yahonda)
    • はい、以後気を付けます (matz)
  • shootout gameなにいってんの(mame)
    • sss
    • レギュレーション作るの難しそう
    • アイデアの事前審査とか、上位n個に呈賞とか
    • JSONを速くする話
    • RAがやる?(ko1)
      • Yes。
  • まつもとさんの IDE 利用経験を教えてください (ko1)
    • Emacsだけです (matz)
      • company-mode
      • lsp-mode (Cで活用)
    • VSCodeはインストールしたが常用していない(matz)
    • textbringerはプラグインがまだ足りない
    • でかい画面だと最近のファンシーなIDEを再評価できるかも
    • デスクトップ機で24インチモニターを使っています
  • まつもとさんはキーボードを光らせたいですか?
  • Isolated ProcをRactor以外のことに積極的に使うことについてどうお考えでしょう? (tagomoris)
    • あるいはIsolated Procを作るためのリテラルを入れるとか
    • 例: mapに与えるblockがIsolated Procだったら積極的に並列化できるぞ! とか
    • まだIsolated Procについて考えていないのでユースケースつきで提案すれば、とのこと
  • まつもとさんが印象に残った今年の RubyKaigi Takeout の発表を教えてください(ko1)
  • Array#size? Array#nonempty? (mame)
    • https://bugs.ruby-lang.org/issues/12075
    • [1].size? #=> true
    • [].size? #=> false
    • File.size?("/to/file") #=> nil or Integer
    • .full?
    • if (ary.length) { ... }
    • amatsuda:
      • Array#present?
      • Hash#present?
      • no String#present?
  • Hash shorthands (matching constructors functionality in JS)
x = 1 y = 2 h = {x:, y:} w h = { nonexist: } #=> NameError def foo 42 end h = { foo: foo() } h = { fork: } h = { exit: } def foo(if=>if_: nil) if_ end foo(if: 42) #=> 42 def foo(if:) if_ = binding.local_variable_get(:if) if_ = {if:}[:if] {for:}[:for] [if:][0][:if] # joke {if:}[] # {if:}.first {if:}.each_value.first end { foo: }.values.first #=> 42 x = 42 s = "x" { "#{ s }": }.values.first # エラー

shugo's patch:

$ ./miniruby -e 'def foo; 42; end; p({ foo: })'
{:foo=>42}

$ ./miniruby -e 'p({ fork: })'
{:fork=>6978}
{:fork=>nil}

$ ./miniruby -e '{ "#{ "foo" }": }'
-e:1: syntax error, unexpected '}'
{ "#{ "foo" }": }

$ ./miniruby -e 'p({ "fork": })'
-e:1: syntax error, unexpected '}'
def foo; 42; end; p({ "fork": })

tagomoris さんへの質問

  • right_speed はどれくらい時間かけられそうですか(ko1)
    • きゃー (moris)
    • とりあえず現状のものでRactor上での動作チェックはできるので最低限の要求/目的は果たしていると考えています

akr さんへの質問

  • pathname 組み込みにお気持ちはありますか (hsbt)

xxxさんへの質問(適当に追加してください)

Select a repo