최상의 답변
Python은 서버 측 언어로 매우 유용합니다. 필요에 따라 더 나은 선택이 될 수있는 다른 선택 사항이 있습니다.
Go, PHP, Java / Kotlin 및 C # 이름 지정 몇 개. 이들은 서버 측 라이브러리를 설정했습니다 (또는 특별히 서버 측 엔진 으로 빌드 된 Go 및 PHP의 경우).
답변
우리는 “PHP를 사용하고 싶지 않다고 확신했습니다. Facebook은 현재 최선의 선택이기 때문이 아니라 기존의 이유로 PHP를 사용하고 있습니다. [1] 이 경험에서 얻은 주요 사항은 프로그래밍 언어 선택이 매우 중요하고 변경하는 데 막대한 비용이 든다는 것입니다.
Python은 Charlie와 저 모두 합리적으로 잘 알고있는 언어였습니다 (이제 훨씬 더 잘 알고 있지만 나는 우리가 시작할 때했다). 또한 C #, Java 및 Scala에 대해서도 간략히 고려했습니다. Python의 가장 큰 문제는 속도와 유형 검사의 부족입니다.
C #은 매우 유망 해 보였습니다. 프로그래밍 언어로서는 훌륭하지만 :
- 우리는 Microsoft 스택에있는 것을 원하지 않았습니다. 우리는 새로운 것을 배우려고했고 MS SQL Server는 실제로 꽤 괜찮아 보였지만 .NET을 지원한다면 2 등급 만 지원하는 많은 오픈 소스 코드와 통합해야한다는 것을 알고있었습니다. 또한 요즘 최고의 엔지니어들은 대부분 오픈 소스 작업에 익숙합니다.
- 우리는 Mono (C # /. NET의 오픈 소스 구현)에있는 위험을 감수하고 싶지 않았습니다. 그 프로젝트에 대한 자금이 얼마나 오래 있을지는 분명하지 않으며, 다양한 성능 문제에 대해 들었습니다. 또한 C # 에코 시스템의 다른 모든 것들이 우리가 Microsoft 스택에 있다고 가정하는 것처럼 보였습니다.
사소한 이유 때문에 Java 프로그램은 작성하는 데 더 오래 걸리고 더 고통스러워집니다. 동등한 파이썬 프로그램. 자바가 아닌 것들과 상호 운용하는 것도 더 어렵습니다. 스칼라는 자바와 JVM의 많은 단점을 가지고 있었지만 그렇게 나쁘지는 않았습니다. 언어가 너무 새롭고 불필요한 위험을 초래할 것 같았습니다 (예 : 10 년 후 얼마나 좋은 지원이 될지 아는 사람).
우리가 간략하게 생각한 두 가지 다른 언어는 OCaml과 Haskell입니다. (충분한 생태계 나 충분한 표준 라이브러리가 없었으며 둘 다 코드를 작성해야하는 일부 디자이너 / 데이터 분석가 / 비 엔지니어에게는 잠재적으로 너무 어려웠습니다.)
우리는 Python이 충분히 빠르다고 결정했습니다. 우리가해야 할 대부분의 작업을 수행합니다 (가능한 경우 성능에 중요한 코드를 C ++로 작성된 백엔드 서버에 푸시하기 때문에). 유형 검사에 관해서는 어쨌든 작성할 가치가있는 매우 철저한 단위 테스트를 작성하고 대부분의 동일한 목표를 달성했습니다. 또한 지난 5 년 동안 Python이 진화하는 것을 지켜 보면서 Python이 코드베이스의 수명에 좋은 방향으로 계속 발전 할 것이라는 확신도 많았습니다.
지금까지 우리는 “작은 선택 편향이 있지만, 과거에 다른 언어로 작업했던 모든 초기 직원들은 특히 PHP에서 온 사람들이 Python으로 전환하는 것을 기쁘게 생각합니다. 일어난 일 :
- Python 2.6은 우리가 사용한 라이브러리가 충분히 호환되는 지점에 도달했고 매우 쉽게 전환했습니다.
- Tornado (웹 프레임 워크)가 오픈 소스로 출시되었으며 라이브 업데이트 웹 서비스를 여기로 옮겼습니다.
- PyPy는 결국 사용할 수 있고 상당한 속도를 높일 수있는 지점에 도달했습니다.
- li>
이 모든 것이 우리에게 언어와 생태계가 좋은 방향으로 움직이고 있다는 확신을줍니다.
[1] 공포는 무엇입니까? PHP의? Facebook 엔지니어는 PHP 프로그래밍을 좋아합니까? Facebook이 PHP에서 마이그레이션하지 않은 이유는 무엇입니까? 그리고 다른 프로그래밍 언어에 비해 PHP의 장점은 무엇입니까?