Go言語って??
Rubyを少し勉強してみたら、Mastodonが出てきて、Mastodonのソースを見てみたりしていました。スタートアップのサーバーサイドの言語ではRubyが今は一番シェアが多いのかな?
科学技術系だと、Python, Webサーバー系なら、Ruby、全部ならJavaって感じなのかもしれないですね。おじさんの僕は、Cくらいだと分かりやすいけど・・Cは、Webサーバーのフレームワークとかないですしね(笑)
https://furien.jp/columns/176/
このサイト、言語毎のWebフレームワークを並べてくれていて分かりやすいですね。
Web等のフレームワークも一緒に勉強するってなると、Ruby on Railsが良さそうなんで、Rubyやろうかな?って思ってちょっとつまみ食いしたけど(笑)
こないだは、ドローンの言語を見てたらマイクロソフトから並列処理用の言語として、P言語って出てきていたし(笑)
【P言語】IoT優先のプログラミング言語?Demoがドローン!コントローラーPixHawkにもインプリしてる!【自作UAV】
こないだは、Java互換のKotolinってのも出てきてますしね。もう言語なんて出てこないと思っていたんですが、いろいろ出てきています。何のために作られた言語か知らないですが、Goというのもあって、メルカリ・アッテというサービスがGoを使ってGoogle App Engineで作っているというのを見て。。
Goもつまみ食いしてみようと。。(笑) ということで・・Goを少し調べてみました。
僕ら世代だと、Goというと、ASIAのGoなんですけどね(笑)
ぜんぜん関係ないですが、数年前にASIAのコンサートに行って、スティーブ・ハウがこの曲やってた時には、ちょっと感動しました。だって当時、この曲は、ルカサーやニールショーンがやるような曲だ!だから脱退する!って言ってたんですもの(笑)
なぜGoが出来たか?
https://talks.golang.org/2012/splash.article
ここに書いてありますね。
いつもの超要約してみると。。
Googleのプログラムは、膨大なプログラムになっていて、コンパイルするだけでも凄い時間がかかった。そのコンパイルしている時間でGoを考えた(笑) ってことのようです。
CやC++、Java、Pythonが沢山使われていたけど、どれも古い言語で、今のクラウドとかネットワークとか並列計算とかが主流じゃない時代にできた言語だった。
大勢の人間がかかわるので、表記方法が人によって違わないようにしたい。
Cに近いのが一番学習コストが低そうだ!< それ僕ら世代にも言えてる(笑)
パット見、CやPascalに近いな!って思ったのは、main()があって、()がついている!
package mainpackage main import "fmt" func main() { fmt.Println("Hello, 世界")}
ということで、できたがった言語なんですね。知らんかった。
- クリアな依存関係
- 構文の明確化
- 明確なセマンティクス
- 継承上の構成
- プログラミングモデルによって提供されるシンプルさ(ガベージコレクション、並行性)
- 簡単ツール群
を目指して作られたようです。
だから、オブジェクト指向じゃない。クラスがないから抽象化がない。。 Cとかやってたおっさんには、とっても馴染みやすそうな言語です。BASICとかCに本当に近いシンプルな言語なんですね!
さっそくGo言語のページに行ってみます。
https://golang.org/
Goをちょっと試すだけだと
https://go-tour-jp.appspot.com/welcome/1
これでやると、インストールも何もいらないで、Web画面上で試せます。
Go Play Groundというものが用意されてて。。 試すだけならこれで十分ですね。
https://play.golang.org/
初期のチュートリアルもシンプルです。
https://go-tour-jp.appspot.com/list
ちょっとだけ間違ったコードが書かれていて、そのコードを修正していくとコードの書き方やお約束がわかるようです。
Goのライブラリ
https://golanglibs.com/
沢山ありますね。
並列処理ってGoルーチンっていうやつで書くんですかね?Channelとかが並列の処理をするための考え方のような感じのようです。
http://gihyo.jp/dev/feature/01/go_4beginners/0005
参考
メルカリアッテってGoで作っている現役の方のLTスライド集
http://sssslide.com/www.slideshare.net/takuyaueda967
Google+の日本語コミュニティ
https://plus.google.com/communities/107075098212007233819
Webアプリケーションをつくるチュートリアル
https://astaxie.gitbooks.io/build-web-application-with-golang/content/ja/
これをコピペして遊んでみるのがとても良さそうな気がします。。 ってやってないけどね(笑)
CやJavaを知ってる人ならこの本が良さそう。
チュートリアルの次ならこの本も良さそうです。
コメントを残していただけるとありがたいです