日ハム三連敗かなしいですこんばんは!
今日は運良く抽選を突破、「 #gocon (ゴーコン)」と言いたいだけ的なお祭でお馴染みのGo Conference に行ってきた&そんなゴーコンのためにHello World書いて24時間も経たない内にLTしてきたお!っていう報告をさせてください。
参加イベント
おしながき
- gocon(ゴーコン)って何をする場なの?
- そもそもGolangって何?
- ゴーコン観戦記
- Golang書き初め~Hello World通して24時間しないうちにコード書いてLTしてきました
- Golangとの付き合い方(私見)
gocon(ゴーコン)って何をする場なの?
Go Conference略してgocon(ゴーコン)は、2013年ごろから始まった、プログラミング言語「Golang」に関するイベント・お祭りです。
「Goを使ってこんなモノつくりました!」
「弊社ではGoを使ってこんな事してます!!」
的な発表をベースに議論を重ねつつ、最後の懇親会でLTをやったりお酒を飲んだりする、ITエンジニア界隈のConferenceやMeetupでよくある形で技術者同士が交流を深めるイベントです。
そもそもGolangって何?
Golangの説明はWikiおよび公式サイトにおまかせします。
要点だけ書くと、
- Googleが開発・保守しているプログラミング言語
- コンパイラ言語。PHP、Ruby、Python等のインタプリタ型とは異なり、実行はすべてバイナリで行われます。
- 強い型付けな言語。これもRubyやPythonと異なり、型を意識して開発する必要があります。
- 軽くて速い!
- Golangで作られた代表的なプロダクトは、、、Dockerなど
ゴーコン観戦記
スピーカーの皆さまの資料等はまだ出揃っていない*1ので、自分のTwitter呟きの引用&補足でお送りさせてください。
社内PaaSをGoでとか凄いな #gocon
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
運営側も参加者側もPython界隈で見かける人が何人かいるけどPythonとは違う雰囲気のコミュニティ(当たり前か)
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
#gocon 全般的に発表者のレベル高杉ンゴ
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
話を聴いてるとGo使ってる会社さん結構あるなあ #gocon
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
多様性という観点でかなり面白いコミュニティだなーGolang #gocon
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
総括すると、
- とにかく発表者のレベルが高い!!!
- 広告配信、プッシュ通知サービス、自社PaaS、といった、「パフォーマンス出したい!けどWebサービスなんでカジュアルに作りたい」といったシーンでGolangが使われている印象を感じた。*2
- たけいひでゆきさんの盆栽ロボットはマジビビった。IoTの好例。Golang文脈を抜きにして、この続編は是非とも聞かせて欲しい。
- Python界隈もいたけど、他にもRubyとかLeanとか、他のクラスタも沢山居て注目度かなり高いと改めて実感。
Golang書き初め~Hello World通して24時間しないうちにコード書いてLTしてきました
当日飛び込みLTもOK!という事で、折角なのでGolangでコードを書いて早速発表してみました。
スライドにもありますが、調査~企画~構築まで24時間掛かりませんでした!!!!
www.slideshare.net
Shinichi-Nakagawa/no-ball-app-go · GitHub
持ちネタである、Pythonではじめる野球プログラミングで書いたPython(Django)のアプリケーションをGoで書きなおし、動かしてみました(全部ではありませんが)。
発表内容はスライドに譲るとして、やったことを時系列で。
学習と調査(6/20昼ごろ)
- A Tour of Go を野球見ながらお茶見ながらひと通り実行。ちなみに、実践問題はすっ飛ばした。
- 怒涛のGoogle検索開始。Ruby On Rails(というよりPlay Framework)っぽい、RevelというFrameworkを知り、こちらで一旦チャレンジする。
- デフォルトで入ってるbootstrapと自分がDjangoで作ってた頃に書いたデザインの融合が上手く行かず、挫折を味わう。自分のHTML/JS/フロントエンド力の無さに起因しているけど、どうやら元から癖ある構成っぽい印象も。
Martiniとの出会い&実装開始(6/20夕方19:00頃)
怒涛の開発&発表!!!
- その後form接続とかO/R Mapperとか探しては作って試すというスクラップ&ビルドを繰り返す。
- gocon昼休み終了後、14:00頃にアプリ完成!!!!
- スライドは過去資料とかを上手く引用して30分そこらで完成。
- LT飛び入り枠二人目、最後の発表に滑り込み、ほぼ5分キッカリ(ロスタイムなし)で発表完了
これでLT出来なかったら泣いていたところでしたが(笑)、色々積み重なって何とかなって良かったです。
ホント楽しかった!!!
Golangとの付き合い方(私見)
まとめ。こちらもTwitterから引用。
Goらしくは無いかもだけど動くコードを半日で書けたので学習コストは思ったより低いと思った
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
#gocon 楽しかった&勉強になりました!
飛び入りLTできて良かったです本当にありがとうございました!!
次回は発表者枠で行けるように修行します!!(go歴1日野球エンジニア)
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
仕事でエンジニアなミッションがあろうがなかろうが、この業界にいる間は技術習得とコーディングは欠かさないようにしたい。
あと、LTの5分間を割と体内時計で計測できる自分がいてワロタwww
というのが本日の真面目&不真面目な学び
— Shinichi Nakagawa (@shinyorke) 2015, 6月 21
仕事で使うかどうかは別として、プライベートの開発&Hackは、
でチャレンジしようと思います!!!
今のところ考えている使い分けは、
- とにかく作って動かしたい時はPython
- データ分析と可視化はやっぱりPython
- 分析・解析がひと通り済んでちゃんとアプリ書こう!というタイミングでGolang
- インフラ構成管理はPython(Ansible)主役だけど、モノによってはGolang(Docker)かな
今度は発表者で行けるように頑張ります!
主催者&参加者の皆さまお疲れ様でした&貴重な経験を頂き本当にありがとうございました!!!
*1:そりゃそうよ、終わってから2時間もしないうちにこのブログ書いてますからw
*2:サイバーエージェントさん、楽天さん、メルカリさん、pixivさんなど。