[python] 구글에서 파이썬을 많이 사용하는 경우

구글은 파이썬을 많이 사용하고 있습니다. 맛의 문제일까요? 아니면 경쟁 우위를 제공합니까?



답변

2004 년 Google에서 인터뷰 할 때 Python은 이미 Google에서 유명했기 때문에 결정적인 답변을 드릴 수 없습니다.

실제로, 내가 분명히 거부 할 수있는 명백한 매력적인 설명이 있습니다. 구글은 많은 유명한 Pythonista를 사용하기 때문에 Python을 사용하는 것이 아닙니다. 오히려 대부분의 “눈에 띄는 Pythonista”Google 직원은 적어도 부분적으로 Python의 명성에 대해 알고 있었기 때문에 Google에 가입했습니다. 거기에는 Peter Norvig와 Jeremy Hylton이 포함되지만 예외적으로 역사적으로 구글이 선택한 파이썬도 예외입니다.

그렇기 때문에 제가 처음 관심을 갖게 된 이유가 바로 여기에 있습니다 (저의 출판사에서 Google이 구매 한 책의 대량 사본에 대해 알려주었습니다. 처음에는 프리랜서 컨설팅 서비스를 판매 할 수있는 좋은 기회라고 생각했습니다 …;- ), 나중에 Guido가 우리와 함께하도록 설득 할 수 있었으며 Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin 등의 Pythonistas에 대한 동기 부여의 일부라고 생각합니다.

가장 초기의 Google 직원 (Sergey, Larry, Craig 등)이 좋은 엔지니어링 결정을 내렸기 때문에이 모든 것이 시작되었다고 생각합니다. “우리가 할 수있는 Python, 필요한 곳에 C ++”-(사용 된 부분 집합) 대기 시간이 매우 짧고 메모리를 엄격하게 제어하는 ​​것이 중요한 소프트웨어 스택 부분의 경우 C ++ 및 다른 부분의 경우 프로그램을보다 빠르게 제공하고 유지 관리 할 수있는 Python입니다. 90 년대 후반, 후자의 역할에 대한 선택은 본질적으로 Python과 Perl 사이였습니다. 다른 스크립팅 언어는 설득력이 없었거나 (예를 들어 루비가 아직 존재하지 않았다고 생각합니다) 다른 문제와 한계가있었습니다. Perl은 더욱 성숙해졌지만 (특히 CPAN을 통한 사용 가능한 애드온 에코 시스템 측면에서) 파이썬은 더 읽기 쉽고 유지 관리가 용이 ​​한 것으로 간주되었으며 SWIG를 통해 C ++ 라이브러리와의 인터페이스가 더 쉬워졌습니다.

자바는 나중에 중간 틈새 시장을 다루었 고, 더 최근에는 Go가 개발되었습니다 (아직도 발전하고 성숙함에 따라 아직 생산 작업이 많지 않다고 생각합니다). sawzall 과 같은 일부 특수 언어 도 매우 특정한 작업을 위해 혼합되어 있으며 물론 자바 스크립트는 브라우저 측 작업에 매우 중요합니다.

Greg가 ’06 년에 언급 한 언어를 포함한 다른 언어는 “실수”이거나 다른 특정 작업 (예 : iPhone 또는 Mac 클라이언트의 경우 Objective C)에 사용됩니다 (예 : Google이 첫 번째 시스템 관리자를 고용 한 경우) 그 직원들은 필연적으로 Perl과 Bash에 대한 강력한 통달을 얻었으며 종종 복잡한 언어를 사용하여 복잡한 내부 시스템을 개발했습니다. 더 쉬운 배포 및 유지 관리를 위해 Python으로 코딩하는 것이 종종 발생했습니다. 다른 회사 (예 : C #)는 인수로 인해 일시적으로 혼합되었을 수 있지만 “주 Google 언어”중 하나의 코드로 기록하는 것이 항상 우선 순위가 높습니다 (C #의 경우 기록은 일반적으로 Java, 두 언어가 추상화 수준 측면에서 유사한 영역을 다루기 때문에).


답변

나는 전체 기사를 읽지 않았으며 그것이 얼마나 대표적인지 모르겠지만 아마도 귀하의 질문에 대답 할 것입니다 : Python at Google .

좋아, 나는 그것의 대부분은, 불행하게도 그렇지 제공 읽을 많은 통찰력을하지만 난 여전히 흥미로운 기사라고 생각합니다. 아마도 가장 중요한 것 :

Google에서 파이썬은 C ++ 및 Java와 함께 3 개의 “공식 언어”중 하나입니다. 여기서 공식은 Google 직원이 이러한 언어를 프로덕션 서비스에 배포 할 수 있음을 의미합니다. 내부적으로 Google 사람들은 PHP, C #, Ruby 및 Perl을 포함한 많은 기술을 사용합니다. Python은 Google의 엔지니어링 프로세스에 적합합니다. Google의 일반적인 프로젝트에는 소규모 팀 (3 명)과 짧은 기간 (3 개월)이 있습니다.


잊지 않기 위하여 귀도 반 로섬 (Guido van Rossum) 파이썬의 창조자는 2005-2012에서 구글 근무)


이 인용구도 찾았지만 확인할 수 없습니다.

“Python은 처음부터 Google의 중요한 부분이었으며 시스템이 발전하고 발전함에 따라 여전히 남아 있습니다. 오늘날 수십 명의 Google 엔지니어가 Python을 사용하고
있으며이 언어에 대한 기술을 가진 더 많은 사람들을 찾고 있습니다.” -Peter Norvig, Google 검색 품질 담당 이사


답변

CPython의 성능을 향상시키는 프로젝트 인 Unladen-Swallow 에 대해 읽었습니다 . 자신의 토론 게시판을 검색하는 동안 나는 우연히 발견 이 논의 콜린 겨울 (구글 직원 및 파이썬 핵심 개발자)가에 응답, 주장 하는 것이 구글 직원이 새로운 프로젝트를위한 파이썬을 사용하여 낙심하고 있습니다 :

글쎄, 간단한 상식은 구글 규모로 운영 할 때 파이썬의 적용 성을 제한 할 것이다. 자바 나 C ++만큼 빠르지 않고, 스레딩이 빨라지고, 메모리 사용량이 더 높다. 새로운 시스템을 설계 할 때 직면하는 설계 제약 중 하나는, “부하가 10 배 또는 100 배 증가하면 어떻게됩니까? 지구 전체가 새로운 서비스가 훌륭하다고 생각하면 어떻게됩니까?” 제약 조건을 충족시키기가 더 어렵고 파이썬이이 범주에 속한다고 생각하는 모든 기술 다른 장점에 유리한 사례가 없다면 낙담하십시오. Python의 강점과 약점의 균형을 맞춰야합니다. 엔지니어가 Python을 사용하여 생산성을 높일 수 있지만, 볼륨이 증가함에 따라 더 많은 플랫폼 수준 성능 / 스케일링 제한을 해결해야하는 경우 앞서 나옵니까? 기타


답변

간결함 == power라는 Paul Graham의 아이디어 를 구독하면 (100 줄의 언어 Y를 취한 것을 달성하기 위해 10 줄의 언어 X로 코드를 작성할 수 있다면, 언어가 더 강력 해집니다)

요즘 하드웨어는 싸고, 미트웨어는 비싸다 . 배터리가 포함되는 경향이 있기 때문에 다른 언어보다 파이썬에서 훨씬 더 빠르고 빠르며 명확하게 작성할 수 있다는 것을 알고 있습니다. 물론 속도가 느릴 수 있지만 실제로는 .05 초와 .0005 초의 차이를 알 수 있습니까?

좀 더 실제적인 예에서 Google 개발자가 가비지 수집에 대해 걱정할 필요가없는 Python으로 프로그램을 작성하고 Company X가 C ++로 프로그램을 작성하고 메모리 할당과 관련된 버그를 추적하는 데 10 %의 시간을 소비하는 경우, C ++ 상점에서 코드의 나머지 부분을 빠르게 작성하더라도 누가 더 빨리했는지 추측하십시오.

예, 파이썬으로 코딩하는 것이 경쟁 우위라고 말하고 싶습니다.


답변