Python을 서버 측 언어로 사용하는 것이 좋은 생각인가요?


최상의 답변

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의 장점은 무엇입니까?

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다