Adam D'Angelo , Quora.com CEO, answers this question
We were sure that we would not rely on the PHP programming language. Facebook depends in part on PHP for old reasons, not because it is the best option at the moment. What we learned from that experience is that choosing a programming language is very important and changing it at an advanced stage can be very expensive (Adam was a CTO at Facebook before establishing Quora).
Python was the language that we and Charles knew well (meaning co-founder Charlie Shafer ). We also included C Sharp , Java and Scala as our options . The big problem with Python was the speed and the absence of the Static Type Checking feature that we find in C # and Scala, for example.
C-Sharp was a promising option as a programming language, but:
- We did not want to connect ourselves with Microsoft's environment, especially since most engineers prefer the Open Source culture.
- We did not respond to the risk of relying on the Mono project (open source implementation of the. NET environment), as we were not sure about the future of this project and would it still be sufficiently supported. Also, many C # tools assume that we are in a NET environment. The original (harmonic problem).
For many reasons, writing Java codes over time is more difficult compared to Python programs. It is also difficult in Java to deal with non-Java Stuff code .
Scala had a lot of Java and JVM downsides, but she wasn't that bad. At the time, it was a young language, and we did not want to take unnecessary risk, as we were not sure what the situation would be like after 10 years, for example :)
The other two languages we have thought a little about are OCaml and Haskell , but as they seem to everyone, they don't have a Rich Ecosystem compared to Java or Python. In addition, they are difficult languages especially for designers and data analysts who need to write some code occasionally.
We finally decided to go with the Python option, as it is fast enough to meet our needs, and in any case we have been transferring critical parts where we need high speed and performance to servers based on C ++. As for the lack of the Typechecking feature, we compensated it by writing many Unit Tests , and we achieved the same results and objectives.
We had great confidence that Python would continue to evolve in the direction we wanted, based on its evolution in the previous five years.
So far, we are very happy with our selection. All of our developers who came from other languages did not find it difficult to switch to Python, especially those who came from the PHP world.