Why We Switched from Python to Go by Thierry Schellenbach Thierry Schellenbach from getstream.io translated on 2017.10.25 新しい言語に移行するのは常に大きな決断です。その言語をよく知る人がチームメンバーに1人しかいない時などは特にそうです。今年の初め、我々は Stream の主要言語を Python から Go に切り替えました。この記事では、なぜ私達が Python から Go に移行しようと決断したのか、その理由を説明します。
Go を使う理由 理由1 - パフォーマンス
Go は速いです! Go は極端に速い。そのパフォーマンスは Java もしくは C++ に匹敵します。私達のユースケースでは、Go は Python より30倍速いです。Go と Java を比較したベンチマークはこちらです。
それに対し、このコードの Go バージョンの開発は、約4日かかりました。パフォーマンスとしてはそれ以上の最適化は必要ありませんでした。そのため、初期バージョンの開発は Python のほうが早くすみましたが、最終的にチームでの作業量は Go ベースのほうが圧倒的に少なくなりました。加えて、Go のコードは高度に最適化された Python のコードよりも約40倍速くなりました。
以上が Python から Go に移行したことで経験したパフォーマンスに関する1つの例です。もちろん、単純に比較はできません:
ranking コードは Go で書かれた最初のプロジェクトでした。 Go のコードは Python のコードよりも後に開発されたので、ユースケースは良く理解されていました。 Go の語句解析のライブラリは非常に優れていました。 我々のシステムの他のコンポーネントは、Go で開発する方が Python に比べて実質的に時間がかかりました。一般的には、Go での開発は若干努力が必要です。しかし、パフォーマンスのためにコードを最適化する時間は圧倒的に少ないでしょう。
Elixir vs Go 私たちが比較したもう一つの言語は Elixir です。Elixir は Erlang 仮想マシン上でビルドされます。Elixir は興味深い言語で、チームメンバーの1人が Erlang を多く経験しているので、やってみることになりました。