Google이 Python, Java 및 C ++을 사용한다고 들었습니다. 그러나 내가 모르는 것은 각각의 프로그래밍 언어가 어떻게 사용되는지입니다. Google에서 Python, Java 및 C ++이 사용되는 것은 무엇입니까? 1 개의 언어로 충분할 때 왜 최대 3 개의 프로그래밍 언어를 사용했을까요? 아무도 아는가?
Google이 Python, Java 및 C ++을 사용한다고 들었습니다. 그러나 내가 모르는 것은 각각의 프로그래밍 언어가 어떻게 사용되는지입니다. Google에서 Python, Java 및 C ++이 사용되는 것은 무엇입니까? 1 개의 언어로 충분할 때 왜 최대 3 개의 프로그래밍 언어를 사용했을까요? 아무도 아는가?
답변:
정답은 " 다른 언어가 다른 강점을 가지고 있기 때문에 "이 이미 언급되었습니다. 그러나 이유에 대해 좀 더 자세히 설명하겠습니다.
C ++
C ++은 가장 빠른 것의 주요 이점이 있습니다. Java와 Python이 느리기 때문에 필요하지는 않지만 C ++ 에서는 작업 실행 방법 에 대해 더 많은 제어 권한 이 있기 때문에 필요하지 않습니다 .
예를 들어 대기 시간이 30ms 미만인 웹 서비스 프런트 엔드를 작성하는 경우 C ++ 코드를 조정하여 해당 성능을 달성 할 수 있습니다. Java와 같은 관리되는 언어에서는 GC가 완벽하게 협력하는 것이 조금 더 어렵습니다.
C ++은 BigTable, MapReduce 및 search goo와 같은 많은 'Google magic'에 사용됩니다.
자바
대부분의 표준 응용 프로그램에서 Java는 완벽하게 훌륭한 언어입니다. 훌륭한 도구, 기존 라이브러리가 많으며 디버깅에 많은 시간을 소비하지 않았습니다.
Java는 C 또는 C ++와 같은 저수준 언어로 유지하기가 훨씬 더 어려운 많은 대형 웹 사이트에 사용됩니다. 예를 들어, GMail은 Java로 작성되었습니다.
또한 Google의 웹 툴킷을 사용하여 Java 코드를 JavaScript로 컴파일 할 수 있습니다. 따라서 멋진 웹 페이지 또는 위젯이 Java 클래스로 시작되었을 수 있습니다.
파이썬
파이썬은 환상적인 범용 언어이지만 Java만큼 세밀한 제어를 제공하지는 않습니다. (예를 들어, 모든 종류의 미친 JVM 인수가 있습니다-파이썬은 비슷한 구성을 제공합니까?)
그러나 Python을 사용하면 끔찍한 셸 스크립트 인 간단한 웹 사이트 및 응용 프로그램에 완벽하게 적합합니다. 예를 들어, 일부 소스에서 데이터를 수집하기 위해 간단한 테스트 케이스를 작성하고 처리 한 후 App Engine에 업로드하려면 Python을 선택하는 것이 좋습니다. (그러나 1,000 대의 컴퓨터에 처리를 분산 해야하는 경우 다른 언어를 사용할 수 있습니다 ...)
자바 스크립트
분명히 Google은 많은 JavaScript를 사용합니다. 그러나 Google에서 작성된 JavaScript 유형은 실제로 볼 수있는 것과 다릅니다. Google은 최적화 및 정적 검사를 개선하기 위해 주석에 주석을 작성할 수있는 최적화 JavaScript 컴파일러를 개발했습니다. Google 폐쇄를 참조하십시오 .
언어는 중요하지 않습니다 (interop)
Google이 언어를 하나만 사용하지 않는 또 다른 이유 는 언어 가 필요하지 않기 때문입니다. 거의 모든 현대 프로그래밍 언어에는 외부 라이브러리, 다른 언어로 작성된 라이브러리를 호출하는 기능이 있습니다. ( swig 참조 )
또한 App Engine은 JVM을 실행하므로 Java 바이트 코드로 컴파일되는 모든 언어를 실행할 수 있습니다. (Google에서는 주로 여기에 언급 된 언어를 고수하지만 이는 어려운 요구 사항은 아닙니다.) 올바른 JAR 파일을 포함하는 경우 App Engine에서 Closure, Groovy 또는 Scala를 사용하려면 모든 것이 제대로 작동합니다.
오픈 소스
또한 Google은 가능한 경우 많은 오픈 소스를 사용하고 기여합니다. 이러한 프로젝트는 일반적으로 위의 언어 중 하나로 작성되며 Google에서 '사용'해야합니다.
결론은 두 가지입니다.
1 language is enough
어쩌면 하나의 언어로 여러 가지 다른 작업을 충분히 완료 할 수 있지만 언어마다 다른 강점, 약점 및 능력이 있습니다.
구글은 아마도 많은 다른 상황을 위해 프로그램을 할 것이기 때문에, 직업을위한 최고의 도구 인 코스를위한 말의 경우입니다.
기본 Mac 및 iPhone 응용 프로그램도 작성하며 Objective-C에 있습니다. 그들이하는 이유는 간단합니다. API는 Objective-C에 있습니다.