はじめに
Go Conference 2019 Autumn (通称:GoCon)が10月28日に東京で開催されました。
今回このカンファレンスに参加するにあたって、株式会社メディアドゥホールディングス さんにスカラシップ支援をしていただき、交通費と宿泊費を補助していただきました。また、カンファレンス翌日の企業見学等でも大変お世話になり、ありがとうございました。
また、このイベントの案内を下さった株式会社ローカルイノベーション さんには就活等で普段からお世話になっていますが、このようなイベントも紹介していただけるので情報系学生にとっては非常に嬉しいです。心より感謝しています。
Go Conとは
日本で開催される、Go言語に関する日本最大級のカンファレンスです。
イベント内容としては、Go言語についての仕組み・ツール・製作物等について、学生や社会人の方が登壇者として講義形式で発表します。
イベントは午前から午後にかけて行われ、夜は懇親会ということで、お酒を飲みながらLTやお話をして楽しめます。
参加したもの
講義は午前と午後行われましたが、講義以外にもGCPのハンズオンなどが行われていたので、そちらにも参加しました。
その中で、特に面白いと思ったものをいくつか紹介させていただきます。
午前講義
Go GC algorithm 101
こちらは、ガベージコレクションの基本的な説明と、実際にGo言語で実装されているガベージコレクションのアルゴリズムの紹介をしていただきました。
最近授業でガベージコレクションについて習ったばかりなので、話について行きやすかったです。
ガベージコレクションには大きく分けて3種類あるのですが、Go言語にはその一つの「Mark & Sweep」というアルゴリズムが採用されているようです。
こちらの手法では、
使うメモリにはマークをつけておくことで、マークがつけられていないメモリは使われないと判断することができる
という考え方でガベージコレクションを行います。
これはGCの中でも効率が悪いですが、現在はGoで実装されているらしい。
世代別GC(ジェネレーションスキャベンジング)がいつか実装されるかもしれないので楽しみです。
午後講義
Goでつくるゲームボーイエミュレータ、またはブラウザでの動かし方
こちらの講義は、bokuwebさんによる、Go言語でゲームボーイのエミュレータを作ったお話です。(bokuwebさんのリポジトリ)
全体の講義の中で一番独特な内容で、タイトルに惹かれてしまいましたww
エミュレータをGoで書いてて、CPUやレジスタを再現してて、そこだけでも「おぉ!」ってなったのですが、特にレジスタのA~Hの実装が全てbyte型になってたのが一番面白かったですw
実際にエミュレータを使うのにはブラウザで行うのですが、WebAssemblyを使っておられました。
自分自身WebAssemblyは聞いたことがある程度で何も知らなかったのですが、ブラウザでバイナリが動くってすげぇな!と思いました。
bokuwebさんはCPUのテストを書くのに苦労してよくバグってたらしいのですが、先人の書いたテストケースが優秀だったそうで、そのテストケースをクリアしてからバグがなくなったそうです。
自分でもテストケースを考えるのは難しく、テストを書くのはなかなか気がすすみません。
しかし、こうやってテストを書かないとバグが生まれるとこを特定できないので、本当に大事だと思いましたし、他の人が書いたテストからどこが問題なのかを考えることができると思うので、今後の参考にしたいと思います。
感想
今回、たまたまこちらのイベントを知り、偶然にも参加することができて本当によかったです。
いろんなWeb業界の企業がGo言語を使い始めているのを知り、自分も今年からGo言語を触り始めました。
企業や個人でどのような開発をしているのか興味があったため、GoConはとても良い機会だと思い参加させていただくことになりました。
登壇内容も、gotestsのメカニズムやGoでのGraphQLの話といったようなGoのツールに関しての講義や、Goでゲームボーイエミュレータを作ったりコンパイラを作ったといったような開発の話など、様々な講義があり非常に興味深かったです。
また、スポンサー企業さんからグッズがいくつか配布されていたのですが、中にはWantedlyさんの非常にレアと言われる技術書があり、普通に興奮してましたw
自分は関西に住んでいるのですが、このような東京のイベントには金銭的にも参加するのが難しく、全くと言っていいほど機会がなかったので、スカラシップ制度で交通費・宿泊費を支援していただけたのは非常にラッキーでした。
もし、Go言語に興味があって、このようなカンファレンスに参加されたいと思った学生さん、特に地方の学生さんは、スカラシップ制度を利用すると5万円まで支援していただけるので、ぜひ気軽に参加していただきたいです!