Я слышал, что Google использует Python, Java и C ++. Но я не знаю, как используется каждый из этих языков программирования. Я имею в виду то, что Python, Java и C ++ используются в Google. Почему они используют до 3 языков программирования, когда достаточно одного языка? Кто-нибудь знает?
29
Ответы:
Правильный ответ « потому что разные языки имеют разные сильные стороны » уже был заявлен. Но позвольте мне рассказать подробнее о том, почему:
C ++
С ++ имеет главное преимущество - быть самым быстрым из всех. Не обязательно, потому что Java и Python медленны, а потому, что в C ++ у вас больше контроля над тем, как все выполняется.
Например, если вы пишете веб-интерфейс, который требует задержки менее 30 мс, вы можете настроить код C ++ для достижения этой производительности. В управляемом языке, таком как Java, немного сложнее заставить GC идеально взаимодействовать.
C ++ используется для многих «магии Google», таких как BigTable, MapReduce и search goo.
Джава
Для большинства стандартных приложений Java - прекрасный язык. Это отличные инструменты, множество существующих библиотек и не много времени, затрачиваемого на отладку.
Java используется для большого количества больших веб-сайтов, которые было бы намного сложнее поддерживать на языке более низкого уровня, таком как C или C ++. Например, я понимаю, что GMail написан на Java.
Также обратите внимание, что вы можете использовать Google Web Toolkit для компиляции кода Java в JavaScript. Так что эта удивительная веб-страница или виджет, которые вы видите, могли начать жизнь как класс Java.
питон
Python - это фантастический язык общего назначения, но он не предлагает такого тонкого контроля, как даже Java. (Например, существуют разные сумасшедшие аргументы JVM для вещей - предлагает ли Python аналогичную конфигурацию?)
Тем не менее, Python идеально подходит для простых веб-сайтов и приложений, которые в противном случае были бы ужасными сценариями оболочки. Например, если вы хотите написать простой тестовый сценарий для сбора данных из некоторых источников, их обработки и загрузки в App Engine, Python будет хорошим выбором. (Однако если вам нужно было распределить эту обработку по 1000 машинам, возможно, вы могли бы использовать другой язык ...)
JavaScript
Очевидно, что Google использует много JavaScript. Тем не менее, тип JavaScript, написанный в Google, отличается от того, что вы видите в дикой природе. Google разработал оптимизирующий компилятор JavaScript, который позволяет создавать аннотации в комментариях в обмен на лучшую оптимизацию и статическую проверку. Смотрите Google Закрытие .
Язык не имеет значения (взаимодействие)
Еще одна причина, по которой Google не использует только один язык, заключается в том, что он не нужен. Практически в каждом современном языке программирования есть средства для вызова внешних библиотек, библиотек, которые могут быть написаны на другом языке. (См. Глоток .)
Кроме того, поскольку App Engine запускает JVM, вы можете использовать любой язык, который компилируется в байт-код Java. (В Google мы в основном придерживаемся упомянутых здесь языков, но это не является жестким требованием.) Если вы хотите использовать Closure, Groovy или Scala в App Engine, если вы добавляете правильные файлы JAR, все должно работать.
Открытый источник
Кроме того, Google использует и вносит свой вклад во множество открытых источников, где это возможно. Эти проекты обычно написаны на одном из перечисленных выше языков и требуют, чтобы он использовался в Google.
Суть в двух вещах:
источник
Возможно, одного языка достаточно для адекватного выполнения ряда различных задач, но разные языки имеют свои сильные и слабые стороны и способности.
Так как Google, скорее всего, программирует для большого количества различных ситуаций, это случай лошадей для курсов, лучший инструмент для работы.
источник
Эти три языка используются для разных целей.
Python может быть использован для написания сценариев автоматизации.
C ++ для реализации сложных алгоритмов. (Indexer, Crawler, Map-Reduce, Big Table)
Java для веб-сервисов, веб-приложений и т. Д.
Это только мои предположения.
источник
Python используется для их веб-сайта поддержки, вы можете видеть, что эта страница генерируется скриптом Python, они используют библиотеки Java для веб-приложений, следовательно, GWT и поддержка Java в движке приложения
Я думаю, что они используют C ++ для Google Earth, или для настольных приложений в целом
источник
«1 языка достаточно» может быть правдой только в том случае, если каждый проект, который вы делаете, имеет определенный вид. А для некоторых проектов даже C ++ Java и Python не самые лучшие инструменты. Кроме того, знание только одного языка является отличительной чертой плохого программиста.
источник
Они также пишут собственные приложения для Mac и iPhone, и они находятся в Objective-C. Причина, по которой они это делают, проста: API находятся в Objective-C.
источник