![[tabibito-1.webp]] ## 今月の進捗 12345…… 678910…… そのとき僕はたまたま聴いていた、知らない国のジャズ・ドラマーが陽の落ちるマリブ山脈のてっぺんで、どこまでも広がる空へ打楽器を打ち鳴らしまくる野外ライブ録音の、一曲目の出だしのスネアドラムが何発叩かれているかを心の中で数えながら、ドブみたいな臭いのする地下鉄の階段を下りようとしたところだった。 123……456789…… IT系企業のオフィスが多いその街は、やたら巨大液晶画面が屋外に設置されており、上空から騒々しい音と光を無差別に発し続けていたが、地上の人々はそれがまったく見えもしないし聞こえもしない、といった感じの「とくになし」といった表情で、思い思いの方向に消えていく。 1234567891011113..14..15... 急いでも急がなくても、全く同じ明日が来るのでどっちでもいいです、みたいな淡々とした速度で動き続ける人ごみと、酸素薄めな空気と、遠くで車が走る音。光。 12345... そのとき突然、後ろから声をかけられ、振り返ると、いつのまにか目の前に、べろんべろんに酔っ払った男が立っていた。 「やあ」「おっす」「へろー」 ごちゃごちゃの繁華街の中にあって、彼はただ一人、まるでたったいま温泉旅館で浴衣に着替えたばかり、といった陽気さで、幻覚のようにそこに立っていた。 「きみ、Ruby ベンキョー会に来てた人でしょ」 酔っ払いはそう言って、手に持っていた缶ビールを振ってみせた。 「はあ。そうですけど」 「ここで帰っちゃうのはもったいない」酔っぱらいは熱を込めて言った。「君はITギョーカイの経験が浅いから知らないかもかもかもだけど、実は勉強会っていうのはね、酔っ払ってからが本番なんだ」 彼はなんだか瞳をうるませているようにさえ見えた。たぶん、街の空気がマリブ山脈の五百倍は汚染されているためだろう。 「俺も初心者の頃はね、もしかして勉強会って勉強になるのかな? なんて、思っていた頃もあった。だけど、勉強会が勉強になったことは、まあ、一回もなかったね。知らない人の真面目な発表を真剣に聞いてみても、まじでなに言ってんのか全くひとつもわからないか、オフィシャルサイトに書いてあることをわざわざお経みたいに読み上げてるか、そのどっちかだ」 「そんなことないと思うけど……」 「ところがどうだろう? 酒を飲みまくり、前頭葉を痲痺させまくることによって、通常の意味ではまったく勉強にならないが、ある意味では非常にベンキョーになる状態へと入ってゆけることに気がついたんだ」 と、明日世界が終わるみたいに、ビールをぐびっと飲む酔っぱらい。 「初心者の多くは、プログラミングというものを、なんかしらんけど海外の偉い人の書籍や論文、ありがたい経典を紐解くことで上達していくものだと思っている。あるいは、夜寝る前にお祈りとかをしていればなんかしらんけど勝手に進歩していくものだと思っている。たしかにそういう部分はあるだろう。しかし、ソフトウェアというものは、そのなりたちからして、人間の頭の中で考えた抽象的なものだけでできている。一体なにをつくってるのかさっぱりわからん有名エンジニアの大部分は、頭の中でだけこしらえた概念をもてあそんでるだけで、もちろん、それは当たり前なのだが、いくらもっともらしい理屈があふれていて、つじつまが合っているように見えても、まったくくその役にも立たない、ということが、ソフトウェアエンジニアの世界ではよくある。つまり、やたらめったら偉い人の言うことを信じりゃいいわけじゃない。いや、むしろ、くその役にも立っていないことに誰も気がついてないので、くその役にも立ってない、という発言が、たいへんな慧眼として受け止められることさえよくある。 勉強会が勉強にならない理由の一つはそこだね。 真面目な話はどれも正しいけど、同時にどれも間違ってる。小説や漫画やフィクションの世界で、いくらその世界の中で完璧につじつまが合っているようにでも、現実にはまったく適用できないのと同じさ」 男はまったく、自分でもどこまで本気で言っているのかわからない、といった感じのひきつった笑いを浮かべた。今にも血を吐いて倒れてもおかしくないくらいふらついている。 「あの。用件はなんでしょうか。つまり何が言いたいんでしょうか」要点を得ない長話にすこし苛々しつつ、おそるおそる聞いてみる。 「五時間前からビールを飲みまくり、ひたすら喋りまくることによって、いまのおれは、めちゃくちゃベンキョーになる域に達しているんだ。試しに、なにか、おれにむつかしいことを言ってみてくれ。いまならすべて理解できそうだし、気の利いたコメントも言えそうなんだ」 「いや、そんなわけねーだろ」 と、返事をしようとした刹那、彼は口からなんらかの液体を、真・女神転生3くらいの勢いで宙にぶちまけた。不意を突かれ、間一髪のところで身をかわしたつもりだったが、悪魔的なねばねばしたものが靴や服にかかった。さっきからずっと帰りたかったため、幸い重心を後ろに残しており、上半身を大きく動かしてかろうじて直撃をさけることができこの、ドブの臭いのする街を歩いていると、たまに道路の隅に、下手なコンピューターグラフィックスで描かれたクリーチャーのような物体が放置されていることがあるが、こういう奴が口からげろを吐いていくらしい。 「めちゃくちゃベンキョーになる」とか意味不明なことをつぶやきながら、男は、地面に突っ伏し、動かなくなった。放っておいて帰りたかったが、そういうわけにもいかないだろう。非常に迷惑である。彼を抱き起こし、意識がはっきりしているか確認するために声をかけてみる。 大抵の場合において、この業界の人々は、自分への自信のなさの裏返しなのか、知り合いや所属組織などのことをことさら「すごい」「めちゃすごい」などと持ち上げがちである。おそらくそれは自信のなさの裏返し、自信がないのにそこそこの社会的地位、プロフェッショナルらしき立ち場になってしまったことの恐怖から来ているのだろう。この酔っぱらいも、おそらくその亜種で、本当は自信がないのに、酔っぱらったときだけ恐怖を押しのけるように「おれはすごい」とか言い出すのだろう。 呼吸や脈拍はしっかりしている。意識もあり、急性なんとか中毒とかではなさそうだ。ポケットティッシュを渡してやると、酔っぱらいは自分で汚れた口元を拭った。 「今ならめちゃくちゃベンキョーになる気がする」まだ言っている。「きみがベンキョー会で言っていた内容ってなんだっけ。いまならめちゃくちゃ理解できそうだわ」 はっきりとした口調を取り戻したかんじで、男が言ったので、僕は答えた。 「C# で mruby vm を実装しているんです」 ## MRubyCS 0.50 今月は、MRubyCSにいろいろとアップデートが入りました。 - Procの組み込みメソッドがmruby本家と同等になった - Time,Random、あたりを追加した - コンパイラがmruby-compiler2(prism)になった mruby-compiler2を採用しようとしたら、テストが通らなかったり、コンパイル時にクラッシュするなどの事象に見舞われ、一時保留状態にしていたんですが、なんとLチカは情操教育([@hasumikin](https://x.com/hasumikin))さんが 僕のPostを見てくれて、わずか一日ですべてのバグを修正してくれた。仕事早ーー。大感謝です m(_ _)m そろそろ1.0にしようと思っているのだが、 - cliコマンドラインツールをリネームして repl機能を入れるかどうか迷ってる - パフォーマンスもうちょっと良くしたい といった辺りが気になっている。 とくに前者は破壊的変更になるので 1.0 になる前に決めたい。 あと、最適化を進めています。 何れかのベンチマークでmruby本家に勝ち、C# の本来の実力を示したいところ。 現在、メソッド呼び出しのないベンチマークではかなり良い結果が出始めてます. 四則演算のベンチマーク ``` | Method | Mean | Error | StdDev | Allocated | |------------ |---------:|----------:|----------:|----------:| | MRubyCS | 4.196 ms | 0.2143 ms | 0.1418 ms | 182 B | | mruby/mruby | 4.344 ms | 0.0305 ms | 0.0160 ms | - | ``` マンデルブロ集合のベンチマーク ``` | Method | Mean | Error | StdDev | Allocated | |------------ |---------:|---------:|---------:|----------:| | MRubyCS | 849.8 ms | 8.21 ms | 4.29 ms | - | | mruby/mruby | 874.0 ms | 19.01 ms | 12.58 ms | - | ``` うーんでもメソッド呼び出しのオーバヘッドがなあ。 ## RubyKaigi 2026 Ruby Kaigi 2026 にプロポーザルを出してみたところ、採択されてしまったようです。登壇してきます(たぶん)。 mruby VM の実装の話と、C# と mruby 間の言語間通信の話いろいろ、ゲームと非同期とasync/awaitの話、ゲームでのmruby事例の話、いろいろ話したいことがあります。持ち時間は30分みたいです。本当は5時間くらい話したいんですけど。あと、せっかくなのでRuby/mrubyってもっとこうなったらいいんだけどなあ。みたいな話とかもけっこう色々したいんですよね。 ## そんなかんじなんですが 来月こそ…