2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
司会者:mrknというRubyに詳しそうな方から、まつもとさんに質問です。「最近おもしろいと思っている新しいプログラミング言語はありますか?」
まつもとゆきひろ氏(以下、まつもと):「Erg」という名前のプログラミング言語を作っている人がいて、これはPythonへのトランスパイラーなんですけど、言語そのものはPythonと似ても似つかない感じで非常におもしろいですね。
広く使われるかどうかはちょっと自信がないんだけれども、いろいろなおもしろいアイデアが詰まっているので、最近はそのリファレンスマニュアルを読むのが楽しみで、少しずつ読み進めていますね。
実際にソースコードもあって、ソースコードはRustで書いてあるんですが、実際の言語は、まだできていない機能がリファレンスにはすでに書いてあったりするので、そういう意味でおもしろい感じではあります。夢のある言語ですね、Erg、「エルグ」と読むんですかね。
司会者:はい、ほかに質問ある方はどんどんどうぞ。
おっ、質問が来た。「ボトムアップでRubyが改善されているとのことですが、ユーザーからのFeature Requestsを取捨選択する基準はありますか?」
まつもと:そうですね、2つあって、1つは既存の部分。Rubyはけっこうでかいので、既存の部分との間の整合性というんですかね、矛盾みたいなものがあるかどうかというのが1つですね。
2番目は、たぶんメソッド名、あるいは文法が増えるので、それに対して適切なノーテーション……なんて言うの、見栄えや名前がきちんとついているかというところの2点が基準になります。
司会者:2点ってビシッとスラスラ言えるのはさすがですね。ありがとうございます。
司会者:次、「以前のお話で、ASTクラスを公開したのはツールのためというお話だったかと思うのですが、今後、機能強化をする予定はありますか?」
まつもと:ASTの機能強化の予定は、今のところはないんですが。ただ、ASTの前段になるパーザーについてはなんとかしたいなと思っています。というのも、今のRubyのパーザーとそれの派生、「Ripper」とか「Parser gem」とかって完全なRubyのプログラムしか解釈できないんですよね。
なんだけど、例えばLSPとかを作ろうとすると、書きかけのプログラムでここまでパーズして、あとはまだまだエラーですみたいなところも、ある程度パーズしたいわけですよ。エラートレラントというんですけども。
そういう感じのパーザーを作るのを支援したいなという話はあって、具体的には明日話をするケビン・ニュートンが手を挙げてくれているので、彼の仕事がパーザーの改善のベースになるんじゃないかなと思います。
司会者:とのことです。ご質問ありがとうございます。
司会者:次、Colbyから、「What's your favourite new default gem in Ruby 3.2 and why is it syntax_suggest?」。これは、Colbyが代筆してくれているけれども、syntax_suggest gemのオーサーからの質問です。
まつもと:syntax_suggestですって(笑)。いや、でもね、もしかしたらRubyのパーザーが、今度のケビン・ニュートンのパーザーで改善されたら、syntax_suggest相当は、実はビルトインになるかもしれないなとは思っています。でも今は、syntax_suggest、すごくいいよねと。
司会者:syntax_suggestが何かというと、2021年の「RubyKaigi Takeout」で発表してくれた、dead_endというgemが。
まつもと:リチャード・シュニーマンのdead_endの発表がおもしろすぎて、本質的なところが頭に入らないっていう欠点があったんだけど(笑)。
司会者:彼、本当にプレゼンが最高ですよね。
まつもと:最高だけど、おもしろすぎるよね。
司会者:はい、次の質問です、「Rustは、Matz' Ruby Implementationに入るのでしょうか?」。「入るのでしょうか?」というのはどういう意味だ? じゃあ、RustがMRIのビルドスタックに入ったことについて、葛藤などがあったのであれば教えてください。
まつもと:ちょっと話したのもあるのですが、CRuby全体をRustで置き換えてRustRubyにするかみたいな話はぜんぜんないです。やはりRubyの本質的な部分である、RubyとCで実装するというポリシーは変更ないです。
ただ、オプショナルな部分について、今回はYJITでしたが、ほかの例えば、Bundler gemとかの実装にRustが入ることはあり得るとは思っています。だけど、コアの部分に関してはCのまま、そこは変わらない感じです。
司会者:個人的になんか嫌だなとかは思わなかったんですか? 「Rustかよ」みたいな「C書けよ」とか。
まつもと:私個人の信条として一番大事なのは、開発者のモチベーションだと思うんですね。例えばまつもとの好みで、「開発される言語、Rustは絶対ダメ」って言われるのは、だいぶモチベが下がるという可能性を考えた結果、コアじゃない部分については許容したほうが、トータルの開発の速度が上がるんじゃないかなと思って許可しました。
司会者:なるほど、ありがとうございます。
司会者:質問があるので続けますね。「LSPの拡充以外で足りないと思っているツールってありますか?」
まつもと:足りないと思っているツール。どうだろうな……。いや、すぐには思いつかないんだけど、「TypeProf」と「Steep」あたりで、もっと強化できる余地はないんだろうかって思うところもあるんだけど。
あとは、そうですね。個人的には、RuboCopのルールを選ぶのがタルいので(笑)、あなたのプロジェクトに対して最適なCopの集合を教えてくれるツールとかあるとうれしいなって思っていますけど(笑)。
個人的には、私の趣味に合わないルールがけっこうたくさんあるんですよね。そういうのは全部オフにしたいんだけど(笑)。だけど、ぜんぜんないのも嫌だというのもあって、そのへんのバランスを取るツールがちょうどあるといいなと思っています。もしかしたらStandard gemもそうなるのかなと思ったんだけど……それでいいのかな、ごめんなさい、歯切れが悪くて。
司会者:あくまで個人の意見です、というかたちで「MatzCop」をパブリッシュするというのはどうですか?
まつもと:確かに、そういう手もあるかもしれない。「これ、これ、これをオンにするやつが好きです」とか?
司会者:でも、RuboCopの設定を全部読まなきゃいけないですからね、なんとかCopの挙動とか、すごく膨大なので。
まつもと:一番簡単なのは全部オンにする。なんだけどそうすると、ここは僕は気にしないのにというところまでなんかすごく怒られるんだよね(笑)。でも、全部オフにすると意味ないしという感じですね。
司会者:そろそろいい時間なので、今日の最終コマ「Ruby Committers vs The World」でも、まつもとさんにいろいろぶつけるチャンスがあるかと。
まつもと:ぶつけられるんだ(笑)。
司会者:なので、いったん朝のセッションはここまでにしたいと思います。ありがとうございました、まつもとさん。
まつもと:ありがとうございました。
(会場拍手)
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
2024.12.11
大企業への転職前に感じた、「なんか違うかも」の違和感の正体 「親が喜ぶ」「モテそう」ではない、自分の判断基準を持つカギ
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦