Go で Web アプリケーションやる 人が最近多いような気がするのだけど、というかこの日記サイト自体 Go で書かれていて僕もそういう人です。ですが、それをやるメリットってあるんですかね。
Web アプリを記述する言語としての Go のメリットは
ぐらいしか無いと思っていて、デメリットとしては、沢山あります。 Web を普通にやってる限り goroutine があるメリット別に受けられないんと違うか。フレームワーク内部では使われてたりするんだろうけど。
デプロイ云々に関しても Docker によって超富豪的にパッケージングする時代がやってきて、あまりメリットとしては大きいものではなくなってきていると思う。デプロイ先ノードが数千数万もあって Docker Registry の構築に神経を使うような世界ではそうではないかもしれないが、そんな人はあまり多くないだろう。
ではなんで僕が Go で Web をやるかというと、それはもうとにかく Ruby よりはだいぶ速いというのが大きいです。通常これは大した問題ではなくて、 Ruby や Rails は十分に速い。だが僕は Cloud At Cost というクソみたいな格安 VPS で構築されたサーバー 10 台を常用環境にを使っていて、このサイトとかもそこにデプロイしている。そこではディスク I/O 、CPU 、ネットワークが非常に貴重なリソースで、また頻繁にサーバーは故障する。そのような環境下では Go の軽便な性質が非常に有利に働く。
とはいえそんな糞みたいな環境でやっていってる奴が俺以外にいるのか?いねえだろ。
Go の Web アプリでの利点というのは金でなんとかなる程度の話ではないと思う。ただ、 Go で Web をやってなんか辛いのかというと、まあ別にこんなもんだよな、、、感もあり Go だけでやっていく世界というのは、アリなんですかね。でも普通は PHP や Ruby でいいと思うんだよな。
というのは array と slice の違いも理解しないで Go やっていっているような人が最近多くて、そこを曖昧に済ませていい程度のユースケースなら PHP の方が幸せに生きていけるんじゃないの?と思うんですがどうでしょうか。
Rolling Icon の自動アイコン変更機能を全面的に書き直しました、もしかしたら不具合とか起きてるかもしれないのでなんかあったら連絡ください
— 竹達彩奈のiPhone (@ssig33) April 29, 2017
新バッチ氏 pic.twitter.com/zWWsmVZA58
— 竹達彩奈のiPhone (@ssig33) April 29, 2017
このへんはわりと Go をまっとうに使っている事例な気はしている。