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


185

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


21
커뮤니티 위키 여야합니다
AutomatedTester

72
Alex Martelli가 곧 대답을 받아들이게되었습니다. ....
ChristopheD

4
실제로이 답변은 객관적으로 답변 될 수 있다고 생각합니다 (Google에서 어딘가에 사용하는 이유는 무엇입니까?)
Felix Kling

15
@nomemory, "무거운는"매우 정확한 형용사가 여기에있다 (물론 당신은 확인을 위해 우리의 코드베이스에서 볼 수 있어야합니다 거라고 - 방법 C ++ 등 대 자바 대 많은 파이썬 -하지만, 나는 나는 그것을 볼 수 , 그리고 대부분 파이썬으로, 매일 기여합니다 ;-). 그리고 문제는 IT 산업의 모든에없는 - 우리 중 일부는했다 (프로그래머가 아닌 포함) 20,000 직원이 회사는 구글에 특정의 더 나은 , "전체보기를"그보기를 형성에 작용 이후 그것은 우리 업무의 핵심 부분입니다 ;-). 그래서 다시 열기로 투표하고 있습니다.
Alex Martelli

7
@nomemory, 파이썬 컨퍼런스에는 항상 오라클 채용 담당자가 열렬히 있기 때문에 파이썬이 코드베이스에 "존재하지 않는다"는 사실에 놀랄 것입니다. ;-). 어쨌든 Oracle과 Google은 실제로 어떻게 경쟁하고 있습니까?-)
Alex Martelli 14

답변:


286

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, 두 언어가 추상화 수준 측면에서 유사한 영역을 다루기 때문에).


@ Alex는 아마도 올바르게 이해하지 못했지만 Google은 대학에서 수년간 보냈고 C 또는 C ++ 만 손에 든 엔지니어 (특히 연구원)가 환경을 개방하기를 원했습니다 (모두 가이 언어로 시작하고 대부분이 끝났을 때) 그것으로도). 여기서 파이썬은 강력한 경쟁자가 거대한 C / C ++ 라이브러리에 대한 인터페이스를 제공합니다.
Ramiz Uddin


멋진 통찰력 !! 예비 Google 직원을 도울 수 있습니다
kmario23

3
Levy의 훌륭한 책 "In the 'Plex"를 읽음으로써 수집 한 한 가지 좋은 점은 Python이 Google에 어떻게 들어 갔는지 (Google이라는 이름이 붙기 전에는 "backrub")입니다. Larry Page는 당시 새로운 Java 1.0 베타 버전으로 웹 스크래핑 "스파이더"를 작성했으며, 기숙사 룸메이트가 더 안정적이고 견고하며 생산적인 언어 인 Python으로 다시 작성함으로써 그를 도와주었습니다. "스파이더"가 없다면 구글은 결코 존재하지 않았을 것입니다.
Alex Martelli

34

나는 전체 기사를 읽지 않았으며 그것이 얼마나 대표적인지 모르겠지만 아마도 귀하의 질문에 대답 할 것입니다 : 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 검색 품질 담당 이사


맛이나 경쟁 우위의 문제입니까?
Andrei Ciobanu

4
@ nomemory : 아마 둘 다? 엔지니어링 프로세스 (미각)에 적합하기 때문에 제품을 조기에 완성 할 수 있다면 이점을 얻을 수 있습니다.
Felix Kling

1
수십 명의 엔지니어가 Python을 사용합니까? 구글만큼 큰 회사에게는 그다지 매력적이지 않다.
Jason Baker

28

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

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


20

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

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

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

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


2
저주받은 사이트 재 설계! 글쎄, 그는 대체 링크를 가지고 있습니다.
Wayne Werner

11
'0.5 초와 .005 초의 차이를 실제로 알 수 있습니까?' Google 핵심 검색, YouTube 또는 Gmail에서 일하지 않습니까?
jwg

5
Google만큼 필요할 때 하드웨어가 저렴하지 않습니다.
NGRhodes

5
파이썬의 가장 큰 장점은 성능 차이가 크면 (예 : ~ 495ms) C / C ++ 코드를 꽂을 수 있다는 것입니다. Python을 사용하면 신속하게 개발 하고 효율적으로 최적화 할 수 있습니다.
Trevor

3
0.5 초와 .005 초의 차이는 하나는 눈에 띄고 다른 하나는 눈에 띄지 않습니다.
Charlie Schliesser 2014
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.