勉強の為に転載しました。
https://frasco.io/why-we-switched-from-python-to-go-19581e27de7c
この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。(252 kB)
■要約
□なぜ私達が Python から Go に移行しようと決断したのか
□Go は Python より30倍速いです
□Python は素晴らしい言語ですが、serialization/deserialization、ranking そして aggregation のような用途に関して、パフォーマンスがかなり悪いです。私達は、Cassandra がデータ取得に1ミリ秒かかり、 Python がそれをオブジェクトに変換するのにさらに10ミリ秒費やす、というようなパフォーマンス問題にしばしば出くわしました。
□理由3 - 開発者の生産性が高く、いい意味で創造的でないこと
How I Start Go tutorial から持ってきた Go のコードを見てください。(これは素晴らしいチュートリアルで、Go をはじめてみるには良いきっかけでしょう)
package main
type openWeatherMap struct{}
func (w openWeatherMap) temperature(city string) (float64, error) {
resp, err := http.Get("http://api.openweathermap.org/data/2.5/weather?APPID=YOUR_API_KEY&q=";; + city)
if err != nil {
return 0, err
}
defer resp.Body.Close()
var d struct {
Main struct {
Kelvin float64 `json:"temp"`
} `json:"main"`
}
if err := json.NewDecoder(resp.Body).Decode(&d); err != nil {
return 0, err
}
log.Printf("openWeatherMap: %s: %.2f", city, d.Main.Kelvin)
return d.Main.Kelvin, nil
}
[11:38 AM]
□Go はあなたを基本に忠実にしてくれます。他人のコードがとても読みやすくなり、書いてあることがすぐに理解できます。
0 件のコメント:
コメントを投稿