ベストアンサー
Pythonはサーバー側言語として非常に優れています。ニーズに応じてより良い選択となる可能性のある他の選択肢があります:
Go、PHP、Java / Kotlin、C#などいくつか。これらはサーバー側ライブラリを確立しています(または、サーバー側エンジンとして特別に構築されたGoおよびPHPの場合)。
回答
「PHPを使いたくないと確信していました。Facebookは、現時点で最良の選択であるという理由ではなく、レガシーの理由でこれに固執しています。[1]その経験から得られた主なポイントは、プログラミング言語の選択は非常に重要であり、変更するのに非常にコストがかかるということです。
Pythonは、チャーリーと私がどちらもかなりよく知っている言語でした(ただし、今ではもっとよく知っています)私たちが始めたときにやった)。また、C#、Java、Scalaについても簡単に検討しました。 Pythonの最大の問題は、速度とタイプチェックの欠如です。
C#はかなり有望なようでした。プログラミング言語としては素晴らしいですが、次のようになります。
- Microsoftスタックに参加したくありませんでした。私たちは何か新しいことを学ぼうとしていました。MSSQLServerは実際にはかなり良いように見えましたが、.NETをサポートしている場合は、.NETをサポートしているだけの多くのオープンソースコードと統合する必要があることはわかっていました。また、最近の最高のエンジニアのほとんどは、オープンソースのものに慣れています。
- Mono(C#/。NETのオープンソース実装)を使用するリスクを冒したくありませんでした。そのプロジェクトにどれくらいの資金が提供されるかは明らかではなく、さまざまなパフォーマンスの問題について聞いたことがあります。さらに、C#エコシステムの他のすべてのものは、Microsoftスタック上にあると想定しているように見えました。
多くの小さな理由で、Javaプログラムは、作成するよりも長く、苦労することになります。同等のPythonプログラム。また、Java以外のものと相互運用することも困難です。Scalaには、それほど悪くはありませんでしたが、JavaとJVMの多くの欠点がありました。この言語は少し新しすぎて、不必要なリスクをもたらすように思われました(たとえば、10年後にどれだけ良いサポートが得られるかを知っている人)。
私たちが非常に簡単に考えた他の2つの言語は、OCamlとHaskellでした。 (十分な大きさのエコシステムも十分な標準ライブラリもありませんでした。どちらも、コードを書く必要のある一部の設計者/データアナリスト/非エンジニアにとっては難しすぎる可能性がありました。)
Pythonは十分に高速であると判断しました。私たちがしなければならないことのほとんどについて(可能な限りC ++で書かれたバックエンドサーバーにパフォーマンスクリティカルなコードをプッシュするため)。タイプチェックに関しては、とにかく書く価値のある非常に徹底的な単体テストを書くことになり、ほとんど同じ目標を達成しました。また、Pythonが過去5年間にわたって進化するのを見て、コードベースの存続期間に適した方向に進化し続けることにも大きな自信を持っていました。
これまでのところ、私たちは選択にはかなり満足しています。選択の偏りはわずかですが、過去に他の言語で作業していた初期の従業員はすべて、特にPHPからのPythonに移行することに満足していました。発生:
- Python 2.6は、使用したライブラリの十分な互換性があり、非常に簡単に移行できるようになりました。
- Tornado(webフレームワーク)がオープンソースとしてリリースされ、ライブアップデートWebサービスをそれに移行しました。
- PyPyは、最終的には使用可能になり、大幅なスピードアップが見込めるようになりました。
これらすべてを合わせると、言語とエコシステムが良い方向に進んでいるという確信が得られます。
[1]恐怖とは何ですかPHPの? FacebookのエンジニアはPHPでのプログラミングを楽しんでいますか? FacebookがPHPから移行しなかったのはなぜですか?また、他のプログラミング言語に対するPHPの利点は何ですか?詳細については、こちらをご覧ください。