Go Conference (GoCon) 2014 spring に行ってきた
行ってきました。
資料など詳細は
開催者さんのブログへ→
というわけで行って参りました、Golang勉強会。
内容については⬆のブログでSlideのリンクがあるので見てみると楽しいと思います。
午前中はハンズオン(電源ネット無し)で、
午後が発表という流れでした。
これまでGoは「なにこの気持ち悪いキャラクター、かわいい!」からA tour of goを半分ぐらいやり、
文字列処理するコードぐらいしか書いたことがなかったんですが
言語自体はCをやったことがある人ならとても簡単に書けていいな〜と思ってました。
前提として
GoはGoogleで開発された言語で、Limboなんかに影響を受けた言語です。
最近AWSなんかでも使われているDocker(詳しくはググって)なんかはGoで書かれています。
一言でGoの特徴を言ってしまえば、「静的型付けとGoroutineとChannel」なんだと思います。(私の独断と偏見です)
シェルをCで書いてシグナルの受け取りやパイプをつなぐのに苦しんだ身としては、
ちょろっとGoroutineで並列に走らせて、それぞれの出力はChannelで受け取れるというシステムが既にあって、
しかも簡単に書けるというのはすごい利点だな〜と思います。
CやC++だとちょっとした処理を並列化するのでもpthreadでmutexをチェックするの面倒ですよねぇ。。
あとヒープとスタックは基本的に自動で判別してくれて、
関数の外でも使われるような変数は自動でヒープに置いてくれるらしい。
しかも関数呼び出しでスタックが増加するときは、既存のスタックごと別の場所に一括でコピーして増加させるらしい。
(コンパイル時に最大スタック量は正確に見積もれるってゆってました)
reflectやinterfaceあたりはC++やJavaをやっていればわかるのではないかと。
sliceはPythonやっていればわかるのではないかと。
(発表でPythorubyscript?と呼ばれちゃってましたが涙
(そういえば、ジェネリックはないらしいです。そう言ってました。
あとは標準のライブラリが充実しているので、発表者のみなさんも結構「標準でガリガリ書きました!」という方が多かったです。
Goの正規表現あとで勉強しないと。
MartiniなどのWebフレームワークのお話もありましたが、その辺にどう便利なのかは門外漢なのでスルーです。
静的型付けの安心感と、クロスコンパイルができるので親のマシンで作って各ノードへは配布するだけでよい、などの点が利点として挙げられていたと思います。
Gunosyとかk(ゲフンゲフン)なんかでもGoが使われていて、300万人の怒濤のアクセスをさばいているそうです。
Gopherちゃんえらい。
というわけで行ってみた感想ですが、
今年流行る言語No.1!?ということで参入してみるのは楽しそうでした。
あれだけ規模の大きい勉強会に行くのは初めてでしたが、Goでこれやったあれやったと発表するためになんかやる→技術身に付くという好循環かつ資料がまとまって新規参入者が増えるという流れでこれからも人が増えて行きそうな印象を受けました。
バイオインフォではGo必要!ってことはないと思いますが、
スクリプトでも並列にしたくなる処理はままあるので、もともとGoで書いておけば規模が大きくなったときに対応しやすいかも。
まぁまずはGoでGO(Gene Ontology)処理ですかね!
自然言語処理とかにもいいかもね。
とりあえず私の環境Go1.0だったんで
あげておきます゚・✿ヾ╲(。◕‿◕。)╱✿・゚:✲:
追記:
Goconなのに男女比が偏りすぎていて肩身が狭かった〜(笑)
資料など詳細は
開催者さんのブログへ→
Go Conference 2014 springを開催しました #gocon
というわけで行って参りました、Golang勉強会。
内容については⬆のブログでSlideのリンクがあるので見てみると楽しいと思います。
午前中はハンズオン(電源ネット無し)で、
午後が発表という流れでした。
リクルートの会議室。
高いきれい高い。
Gopherがかわいい。
これまでGoは「なにこの気持ち悪いキャラクター、かわいい!」からA tour of goを半分ぐらいやり、
文字列処理するコードぐらいしか書いたことがなかったんですが
言語自体はCをやったことがある人ならとても簡単に書けていいな〜と思ってました。
前提として
GoはGoogleで開発された言語で、Limboなんかに影響を受けた言語です。
最近AWSなんかでも使われているDocker(詳しくはググって)なんかはGoで書かれています。
一言でGoの特徴を言ってしまえば、「静的型付けとGoroutineとChannel」なんだと思います。(私の独断と偏見です)
シェルをCで書いてシグナルの受け取りやパイプをつなぐのに苦しんだ身としては、
ちょろっとGoroutineで並列に走らせて、それぞれの出力はChannelで受け取れるというシステムが既にあって、
しかも簡単に書けるというのはすごい利点だな〜と思います。
CやC++だとちょっとした処理を並列化するのでもpthreadでmutexをチェックするの面倒ですよねぇ。。
あとヒープとスタックは基本的に自動で判別してくれて、
関数の外でも使われるような変数は自動でヒープに置いてくれるらしい。
しかも関数呼び出しでスタックが増加するときは、既存のスタックごと別の場所に一括でコピーして増加させるらしい。
(コンパイル時に最大スタック量は正確に見積もれるってゆってました)
reflectやinterfaceあたりはC++やJavaをやっていればわかるのではないかと。
sliceはPythonやっていればわかるのではないかと。
(発表でPythorubyscript?と呼ばれちゃってましたが涙
(そういえば、ジェネリックはないらしいです。そう言ってました。
あとは標準のライブラリが充実しているので、発表者のみなさんも結構「標準でガリガリ書きました!」という方が多かったです。
Goの正規表現あとで勉強しないと。
MartiniなどのWebフレームワークのお話もありましたが、その辺にどう便利なのかは門外漢なのでスルーです。
静的型付けの安心感と、クロスコンパイルができるので親のマシンで作って各ノードへは配布するだけでよい、などの点が利点として挙げられていたと思います。
Gunosyとかk(ゲフンゲフン)なんかでもGoが使われていて、300万人の怒濤のアクセスをさばいているそうです。
Gopherちゃんえらい。
終了後、みなさんお疲れモードです。
今年流行る言語No.1!?ということで参入してみるのは楽しそうでした。
あれだけ規模の大きい勉強会に行くのは初めてでしたが、Goでこれやったあれやったと発表するためになんかやる→技術身に付くという好循環かつ資料がまとまって新規参入者が増えるという流れでこれからも人が増えて行きそうな印象を受けました。
バイオインフォではGo必要!ってことはないと思いますが、
スクリプトでも並列にしたくなる処理はままあるので、もともとGoで書いておけば規模が大きくなったときに対応しやすいかも。
まぁまずはGoでGO(Gene Ontology)処理ですかね!
自然言語処理とかにもいいかもね。
とりあえず私の環境Go1.0だったんで
あげておきます゚・✿ヾ╲(。◕‿◕。)╱✿・゚:✲:
追記:
Goconなのに男女比が偏りすぎていて肩身が狭かった〜(笑)
コメント
コメントを投稿