GAミント至上主義

Web Monomaniacal Developer.

Go言語によるPython実装Grumpyで世界がGoogleに染まっていくところまで妄想した

opensource.googleblog.com

GoogleのGo言語によるPython実装「Grumpy」が公開され話題になっています。

github.com

www.itmedia.co.jp
news.mynavi.jp
codezine.jp


Go言語は入門書を一つ買って、ちょっと触っている程度だけど、実行速度、並列処理のしやすさ、シンプルさから今後作るサービスに取り入れていきたいと思っています。

スターティングGo言語

スターティングGo言語

でも、Go言語だけでWEBサービスを作ろうと思うと、PythonだとDjangoRubyRailsみたいな、ありがちなのは全部用意されてる感はまだ無く、例えば会員登録とか、管理画面とか、RabbitMQみたいなMySQLなどと比べると少しマイナーなミドルウェアを使おうとかになってくると非常に面倒くさく感じます。

なので今のところ新規WEBサービスでは、個人の力量的にメインはPythonで書いて、局所的に処理が重い、またはレスポンス速度を求められるところはGoで書き、APIとしてマイクロサービス的に組み込んでいくのがいいと思っています。マイクロサービスは、Dockerと合わせれば管理もしやすいし。そういえばDocker自身もGo言語で書かれています。

またはGoogleの記事のYoutubeのようにすでに大量のユーザーを抱えている場合は、Goの処理速度と並列処理を活かすことができるので、費用対効果は非常にいいと思います。同時アクセスユーザーが数十人程度のサービスでは、サーバー台数も少ないし、他のところのオーバーヘッドが大きくてペイできないと思う。


で話がそれたけど、どのように世界(大げさ、インターネット周りといった方がいいか)がGoogleに染まっていくかの妄想を書いてみます。

1、C言語で書かれていたものがGo言語になっていく。

Go言語はGoogleが作った新しいC言語だと思っています。C言語からGo言語に変えて得られるのは、JavaのようなVMいらずで、Cと同等(未検証)の処理速度を持ちながら、使いやすい並列処理、現代的なパッケージ周りの便利さなどがあると思います。

DockerやKubernetesなど、OSに深く関わるアプリもGoで書かれ普及し始めています。

今までCが最適だったものがGoになるのはそう遠くないと思います。Go言語は、WEB開発者にも広がってきているので、ブラウザ専用からNode.js等サーバー用途にまで広がったJavaScriptのように、動く場所とともに需要も増えていきそうです。

Goでインタプリタを書くのも出てきてる。
interpreterbook.com


将来Goで書かれたOSなんかも出てきたらすごい。

2、PythonもGoになっていく

Googleの記事で、Pythonで書かれたYouTubeGrumpyでGo言語に変換とされていたので、しばらくはPythonで書いていくのかもしれませんが、そのうち最初からGo言語でいいじゃん、になる時が来そうです。
Pythonの方がいろいろ便利な点はまだまだありますが、2言語を使いわけるというコストが、1言語で済むというメリットを越す場面は、どんどん出てきそう。

研究用途ではNumpyなど大量の資産があるために、Pythonの用途すべてがGoになるのは今はまだ想像できませんが。

Go言語によるWebアプリケーション開発

Go言語によるWebアプリケーション開発

3、そして世界がGoogleに染まっていく

間を省きすぎで大げさですが、インターネット周りの技術はすでにGoogle抜きでは語れません。

話題のDockerもGoogleが作ったGo言語で書かれているだけでなく、Dockerが使っているコンテナ技術の一部cgroupもGoogle製。今後中心になりそうなHTTP/2もGoogleのSPDYが元になったり。

また、ビックデータでは、HadoopGoogleMapReduceが元だし、データの解析基盤ではコストと速度でBigQueryが抜きん出ていて、機械学習でもTensorFlowもGoogleが公開し使用例も増えてきました。

身近なところではメールはGmail、携帯もAnoroid、ニューラルネットワークで人間の言語まで高精度な翻訳を行うことでGoogleが入ってきて、[http://jp.techcrunch.com/2016/11/23/20161122googles-ai-translation-tool-seems-to-have-invented-its-own-secret-internal-language/:title=内部では新たな言語まで作り始めました。

子会社だけどポケモンGOユーザーはGPS情報を常にONにし、Google(のサーバー)に送るようになりました。


そう、スマホでもパソコンでもIOT機器でも、いまではなんでもGoogleの技術が入っています。

あらゆる端末から人間に入っている情報が、Googleを直接的に間接的に通っていると思うと、世界の一部はすでに染められているといっていいかもしれません。

クラウド開発徹底攻略 (WEB+DB PRESS plus)

クラウド開発徹底攻略 (WEB+DB PRESS plus)