Adam D'Angelo, a Quora founder, answer this question at Why did Quora choose Python for its development?.
I would summarize his answer as:
- The founders didn't like Microsoft, so C# was out.
- Java takes longer and is harder to write, and doesn't operate well with non-Java stuff.
- OCaml and Haskell were too hard to write and didn't have sufficient library support.
- They already knew Python, and would compensate for its lack of types with unit tests, and supplement it with C++ for high-speed code on the backend.
I agree with their decision. The main issue is that server time is cheaper than developer time.
A scripted language like Python (or PHP, Perl, Ruby, etc.) takes about half as much time to program as a bytecode or compiled language like Java (or C, C++, etc.).
So if you have a team of 10 developers each paid $100K, then you are paying out $1M in salaries. If you replace Python with Java, now you need to hire 10 more developers, and pay out another $1M. In exchange for what, saving $50K of server time? Obviously, that's not worth it!
The founders already knew Python and were ready to go with it. They wanted to get to market as soon as possible to have an early mover advantage. And they knew that they could find out where to optimize once the site was already in production and its features had been decided on. At that time, they could switch to C++ on the back end.
This is a good example for other startups. The combination of rapid development time and flexibility on the front end and speedy service time on the backend is a good example to imitate.
その答えを要約してみましょう。
- 創業者たちはMicrosoftが好きではなかったので、C#は除外されました。
- Javaは手間がかかり、書くのに骨が折れ、Java以外のものではうまく動作しません。
- OCamlやHaskellは書くのが大変で、ライブラリのサポートも十分ではありませんでした。
- 彼らはすでにPythonを知っていたので、ユニットテストで型の不足を補い、バックエンドの高速なコードはC++で補完しました。
私は彼らの決断に同意します。主な問題は、開発者にかかるコストよりもサーバコストの方が安いということです。
Python(またはPHP、Perl、Rubyなど)のようなスクリプト言語は、バイトコードやJava(またはC、C++など)のようなコンパイル言語と比較して、プログラミングにかかる時間が約半分になります。
つまり、10人の開発者からなるチームがあり、それぞれが10万ドルの給料をもらっているとすると、100万ドルの給料を支払っていることになります。PythonをJavaに置き換えた場合、さらに10人の開発者を雇い、さらに100万ドルを支払う必要があります。サーバコストを5万ドル節約できて、それが何になるでしょうか?明らかに、その価値はありません。
創業者たちはすでにPythonを知っていて、それを使う準備ができていました。彼らはできる限り早く市場投入し、先行者利益を得たいと考えていました。そして、サイトがすでに本番稼働していて、機能が決まっていれば、最適化すべき箇所も発見できることを知っていました。その時点で、バックエンドをC++に切り替えることができました。
これは他のスタートアップにとっても良い例です。迅速な開発期間とフロントエンドにおける柔軟性、バックエンドにおける高速なサービス時間の組み合わせは模範的なものです。
0 件のコメント:
コメントを投稿