あいにくの天気でしたが、GoCon仙台で発表してきました。当初は2月予定だったのが状況が厳しいということで7月にずらして公開したが、それでも状況は好転しなかったので10月に延期、とスタッフの方々はいろいろ気を揉んで大変だったと思います。
初はやぶさ! 子供と見ていたシンカリオンに出てきて気になっていたチキン弁当!福島までは行ったことがあったのですが、初の仙台です。この日は幼稚園の運動会が予定されており、子供の出場の合間にリモートで発表という可能性もあったのですが、天気のおかげで現地に行くことができました。また行きたいです。
GoCon仙台はある意味、新しい時代の礎となる勉強会だな、と感じました。このイベントそのものもそうですが、現在は大規模勉強会がなかなか開催できなくなっています。そんな中開催されたGoCon仙台は、オンラインとオフラインのハイブリッドイベントになりました。世間でオンラインのイベントも増えてきて、今後新型コロナウィルスの影響がない世の中になったとしても、今までのスタイルに戻るのではなく、このGoCon仙台スタイルになっていくと思います。僕の周りも家庭の用事やら、生まれたばかりの子供がいるとかで、参加が難しかった人たちも参加できました。一方で、オフラインでの交流も捨てがたいものがありますし。
ここ半年ぐらいで、オンライン勉強会はいろいろなツールが出てきて、レベルが上がってきています。ハイブリッド勉強会も、今後はいろいろなアイデアが加わって面白くなっていくんじゃないですかね? 例えば、たんなるリモート勉強会とは違って、演台から客席を写して、客席の様子をスピーカーに見せたりしてもいいんじゃないかと思いました。オンライン発表者✖️オフライン受講者、オフライン発表者✖️オンライン受講者の相互なやりとりなど、まだまだ工夫の予知がありそうですし。
Goでローコードプログラミング
発表資料はこちら。
発表は、あまり誰もやったことないことをやろう、ということと、今までGoでみていたのとは全く違う世界を紹介したら良いのではないかということで、Go + Visual Programmingをとりあげようとしました。きっとtenntennさんがオーソドックスなGoの実用的な話をしてくれるんじゃないかと思いましたが、tenntennさんの内容も結構エッジが利いていたので、なかなか攻めたラインナップの発表になってしまいました。
なお、裏番組の伊藤さんの方が実用的な感じの内容でしたので、そことはバランスが取れていたと思います。現地会場でもオフライン部屋とオンライン視聴部屋は半々ぐらいだったんじゃないかな?
発表準備はなかなかトラブル続きで、最初に見つけたライブラリがメンテされてなくて動かず、途方にくれていたら、新しい別のライブラリがあるのに気づいて、なんとか今週、動作させるところまでいけました。本当はオブジェクトを作るだけではなくオリジナルノード作成までやりたかったのですが、それはどうもGodotではサポートされていないらしくできませんでしたが。
先週のCNCF連載のBuildpacksも前日までうまく動作せずにぎりぎりまで粘ってなんとかやりたかったゴールにたどり着きましたが、こちらも修羅場続きでした。仕事が多少余裕があったおかげで助かりました。
駄目だった場合は、Blockyかrete.jsあたりで操作する何かを作ることも想定していたのですが、なんとかそこまではやらずに済みました。
うぉーそっちが気になります!
— tenntennʕ ◔ϖ◔ʔ ==Go (@tenntenn) October 10, 2020
Ebitenも2.0がそろそろ出るので、そうしたら上から下までGoで作ってみたさはあります。
Goでビジュアルプログラミングは実用になるのか?
GodotそのものもHTTPやらWebSocketやらWebRTCには対応していたので、このSlack通信そのものはGodotでやった方が効率は良いとは思いますが、例えば、CRUDでSQLに変換して書き込むだけのシンプルなウェブAPIなんかは、結構この手のシステムいけるんじゃないかと思っていたりします。
あとはビルドスクリプトとかバッチ処理ですね。Aが終わったらB、Bが終わったらCみたいなタスクは意外と行ける気がします。紹介しなかったのですが、Godotにはオンラインゲームのサーバー用のヘッドレスGodotというものもあり、サーバーとかバッチで扱うのもできたりもします。結構、ぽこぽこノードを作っていけば案外実用になる気がします。ビルド時間もそこそこ短いですし。CSVとかParquetのファイルをDBに突っ込むとか、集計のSQL実行とか、そんなノードがあればさらに用途が広がりそうな気がします。