it-source

Google에서 Python을 많이 사용합니다.

criticalcode 2023. 6. 20. 21:40
반응형

Google에서 Python을 많이 사용합니다.

구글이 파이썬을 많이 사용하는 것은 단지 취향의 문제입니까, 아니면 경쟁 우위를 제공하는 것입니까?

제가 2004년 구글에서 인터뷰했을 때 파이썬은 이미 구글에서 두각을 나타냈기 때문에 저는 확실한 답을 드릴 수 없습니다.

사실, 분명히 부인할 수 있는 한 가지 매력적인 설명이 있습니다. 구글이 파이썬을 사용하는 것은 유명한 파이썬스타를 너무 많이 고용했기 때문이 아니라, 대부분의 "유명한 파이썬스타" 구글러들이 적어도 부분적으로는 구글에 합류했다는 것입니다.우리는 그곳에서 Python의 유명성에 대해 알고 있었기 때문입니다(Peter Norvig와 Jeremy Hylton을 포함한 가능한 예외가 있지만 역사적으로 Google의 Python 선택은 심지어 그들보다 앞서 있습니다).

그것이 제가 처음 관심을 갖게 된 이유입니다. (저의 출판사는 구글이 구매하고 있는 제 책의 많은 양의 복사본에 대해 알려주었습니다.) 처음에는 프리랜서 컨설팅 서비스를 판매할 수 있는 좋은 기회라고 생각했습니다.;-), 제가 나중에 Guido를 설득하여 우리와 함께 할 수 있었던 방법, 그리고 제 생각에, Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Colin Winters, Jeffrey Yasskin과 같은 파이썬 주자들의 동기의 일부입니다.

저는 모든 것이 시작되었다고 생각합니다. 왜냐하면 가장 초기의 구글러들(세르게이, 래리, 크레이그, ...)이 훌륭한 공학적 결정을 내렸기 때문입니다. "우리가 할 수 있는 곳은 파이썬, 우리가 해야 하는 곳은 C++" -- 그들은 매우 짧은 대기 시간과/또는 엄격한 메모리 제어가 중요한 소프트웨어 스택의 부분에 대해 C++을 사용했습니다.다른 부분에 대한 프로그램의 보다 신속한 전달과 유지보수를 가능하게 합니다.90년대 후반, 후자의 역할은 본질적으로 파이썬과 펄 중 하나였습니다. 다른 스크립트 언어는 익지 않았거나(예를 들어 Ruby가 아직 등장하지 않은 것 같습니다) 다른 문제와 제한이 있었습니다.Perl은 (특히 CPAN을 통해 사용 가능한 추가 기능의 생태계 측면에서) 더 성숙했지만 Python은 더 읽기 쉽고 유지 관리가 가능한 것으로 간주되었으며, (SWIG를 통해) C++ 라이브러리와의 인터페이스가 더 쉬웠습니다.

자바는 나중에 중간 틈새시장을 커버하며 등장했습니다. 그리고 물론 최근에는 바둑이 개발되었습니다. (비록 아직 진화하고 성숙하고 있기 때문에 아직 생산 작업이 많지 않다고 생각합니다.)sawzall과 같은 일부 전문 언어도 매우 특정한 작업을 위해 혼합되어 있으며, 물론 Javascript는 브라우저 측면 작업에서 매우 중요합니다.

Greg가 2006년에 언급한 언어를 포함한 다른 언어들은 "우연한" 것이거나 다른 특정 작업(예: iPhone 또는 Mac 클라이언트용 목표 C)에 사용되었습니다. 예를 들어, Google이 첫 번째 시스템 관리자를 고용했을 때, 해당 직원들은 불가피하게 Perl 및 Bash에 대한 매우 강력한 숙달 상태로 왔습니다.복잡한 내부 시스템을 개발하기 위해 이러한 언어 중 하나를 사용하는 경우가 많았습니다. Python에서 이러한 언어를 기록하는 경우(더 쉬운 배포 및 유지 관리를 위해).다른 언어(예: C#)는 인수로 인해 일시적으로 혼합되었을 수 있지만, "주요 구글 언어" 중 하나로 녹음하는 것은 항상 상당히 높은 우선순위입니다(C#의 경우 두 언어가 추상화 수준에서 유사한 영역을 다루기 때문에 일반적으로 자바에서 녹음하는 것이 일반적입니다).

저는 전체 기사를 읽지 않았고 그것이 얼마나 대표적인지는 모르지만 아마도 이것이 당신의 질문에 대한 답일 것입니다.구글파이썬.

네, 대부분 읽었습니다, 안타깝게도 그다지 많은 통찰력을 제공하지는 않지만 여전히 흥미로운 기사라고 생각합니다.아마도 가장 중요한 것은:

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


파이썬을 만든 Guido van Rossum이 2005년부터 2012년까지 Google에서 일했다는 을 잊지 마십시오;)


이 견적서도 찾았지만 확인할 수 없습니다.

"파이썬은 처음부터 구글의 중요한 부분이었고, 시스템이 성장하고 발전함에 따라 계속 유지되고 있습니다.오늘날 수십 명의 Google 엔지니어가 Python을 사용하고 있으며, 우리는 이 언어를 사용하는 기술을 가진 더 많은 사람을 찾고 있습니다."
, Peter Norvig의 Google 검색임자책

저는 CPython의 성능 향상을 목표로 하는 프로젝트인 Unladin-Swallow에 대해 읽고 있었습니다.그들의 토론 게시판을 둘러보다가 우연히 이 토론을 발견했는데, 여기서 콜린 윈터(Google 직원 및 파이썬 핵심 개발자)는 구글 직원들이 새로운 프로젝트에 파이썬을 사용하는 것을 단념하고 있다는 주장에 대해 답변했습니다.

자, 간단한 상식은 구글 규모로 운영될 때 파이썬의 적용 가능성을 제한할 것입니다. 자바나 C++만큼 빠르지 않고, 스레드화가 빠지며, 메모리 사용량이 더 많습니다.새로운 시스템을 설계할 때 직면하는 설계 제약 중 하나는 "부하가 10배 또는 100배 증가하면 어떻게 됩니까?"입니다.만약 전 세계가 당신의 새로운 서비스가 훌륭하다고 생각한다면 어떻게 될까요?"그 제약을 충족시키는 것을 더 어렵게 만드는 모든 기술 - 그리고 저는 파이썬이 이 범주에 속한다고 생각합니다 - 만약 그것이 다른 장점들에 유리하게 만들어진 매우 강력한 사례가 없다면, 그것은 단념되어야 합니다.Python의 장점과 단점의 균형을 맞춰야 합니다. 엔지니어가 Python을 사용하면 생산성이 향상될 수 있지만 볼륨이 증가함에 따라 플랫폼 수준의 성능/스케일링 한계를 극복해야 한다면 앞서 나가시겠습니까?기타.

당신이 간결함 == 힘(즉, 당신이 100줄의 언어 Y를 가져간 것을 달성하기 위해 10줄의 언어 X로 코드를 쓸 수 있다면, 내 언어는 더 강력합니다)이라는 폴 그레이엄의 생각에 동의한다면.

요즘은 철물이 싸고, 고기류는 비쌉니다.배터리가 포함되는 경향이 있기 때문에 다른 언어보다 훨씬 더 많이, 더 빠르고, 더 낫고, 더 명확하게 파이썬으로 쓸 수 있다는 것을 알고 있습니다.물론 더 느릴 수도 있지만 0.05초와 0.0005초의 차이를 정말로 알아차릴 수 있습니까?

좀 더 실제적인 예로, 구글 개발자들이 가비지 컬렉션에 대해 걱정할 필요가 없는 파이썬으로 프로그램을 작성하고, X사가 C++로 프로그램을 작성하고, 메모리 할당과 관련된 버그를 추적하는 데 10%의 시간을 쓴다면,C++ 상점이 나머지 코드를 빠르게 작성하더라도 누가 더 빨리 처리했는지 추측할 수 있습니다.

그래서 네, 저는 파이썬에서 코딩하는 것이 경쟁적인 이점이라고 생각합니다.

언급URL : https://stackoverflow.com/questions/2560310/heavy-usage-of-python-at-google

반응형