Founder of Quora: Why are we using Python?

Source: Internet
Author: User

Inadvertently, you can see the following question in Quora: Why did Quora choose Python for its development? The two founders of Quora gave the answer. I think it is of great reference value, so the excerpt is here.

First, Adam d' Angelo once worked on Facebook, a company that uses PHP extensively. But Adam d'angelo has almost no liking for PHPFacebook's use of PHP is a historical reason(I guess Zuckerberg initially only wanted to use PHP to quickly build a website.) It has many shortcomings (I will not list many articles in the original article ).

The second is C #, which is a promising language, but choosing it means joining the Microsoft camp (burning money ),Many open-source software only provides 2nd-level support for. NET (such as a slow update or poor performance), or even does not support it at all. In addition, they cannot take the risk of using Mono (performance, update, or even be killed by Microsoft ).

Compared with Python, Java code is too lengthy and painful to write, and it is difficult to interact with other things that are not Java (I think it should be non-JVM ).. Scala also has many disadvantages of Java and JVM, although it is not as bad as Java. It is a bit new and may have some unnecessary risks.

They have also considered OCaml and Haskell and have enough ecosystem and standard libraries, but it is too difficult for designers and analysts who may need to write some code.

Ruby is also a choice, but he and Charlie Cheever both know Python better..

The biggest drawback of Python is speed and type check.For them, Python is fast enough, and the part that has a key impact on performance is written in C ++; for Type checks, they write enough unit tests to ensure.

Since these two disadvantages are removed, they are happy to choose Python:

By looking at the past five years, they are confident that Python will continue to grow in a direction that will benefit them.

There are many libraries written in Python that can easily communicate with the mail server and task queue. They use Python 2.6, which is enough to support their libraries.

Python has many good frameworks (Django, Pylons, etc.), and most of them are constantly improving. They chose Tornado (not for the reason, but it is estimated that it supports persistent connections .)

PyPy can increase the speed significantly.

The data structure of Python is well mapped to JavaScript (JSON), so the communication between the browser and the server is very easy, and Quora uses a large number of such interactions without loading pages (or persistent connections ).

Python code is easy to read (strong expression ability should also be added ). They need to work with many people, which is very important.

By the way, it is probably because Python and Tornado are chosen for these reasons. The Quora Infrastructure label can be used to know a lot of technical details, but it seems inconvenient to reveal the domestic technical atmosphere. After all, you must consider the issue of shanzhai.

Original article: http://www.keakon.net/2011/09/04/Quora%E4%B8%BA%E4%BD%95%E4%BD%BF%E7%94%A8Python

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.