2010-04-01 3 views
173

Тяжелое использование Google Python в Google - это просто вопрос вкуса или дает им конкурентное преимущество?Тяжелое использование Python в Google

+21

Это должно быть сообщество вики – AutomatedTester

+72

Алекс Мартелли, поступающая для обслуживаемого ответ очень скоро, .... – ChristopheD

+4

На самом деле я думаю, что этот ответ можно было бы ответить объективно (там должно быть заявление где-то в Google, почему они используют его ;)) –

ответ

276

Я не могу дать однозначный ответ, потому что к тому времени, когда я взял интервью у Google в 2004 году был Python уже известная в Google.

Действительно, есть одно, по-видимому, привлекательное объяснение, которое я могу определенно отрицать: это не то, что Google использует Python, потому что в нем задействовано так много выдающихся Pythonistas - скорее, большинство «выдающихся игроков Pythonista» присоединились к Google, по крайней мере частично, потому что мы знал о выдающемся положении Питона (возможны исключения: Питер Норвиг и Джереми Хилтон, но исторически выбор Питона на Python предшествовал даже им).

Именно поэтому я сначала заинтересовался (мой издатель дал мне знать о большом количестве копий моей книги, которую покупал Google). Сначала я подумал об этом как о хорошей возможности продать мою внештатную консультационную услугу. .. ;-), как я позже смог убедить Гвидо присоединиться к нам и, я считаю, часть мотивации для таких питонистов, как Грег Штайн, Уэсли Чун, Фредрик Лунд, Томас Вотерс, Коллин Уинтерс, Джеффри Яскин. ..

Все это началось, я считаю, потому что самые ранние Гуглеры (Сергей, Ларри, Крейг, ...) приняли хорошее инженерное решение: «Python, где мы можем, C++, где мы должны» - они используется (подмножество) C++ для частей программного стека, где очень низкая латентность и/или жесткий контроль памяти имеют решающее значение, а P что позволяет более быструю доставку и обслуживание программ для других частей. В то время, в конце 90-х, выбор для последней роли был по существу между Python и Perl: другие языки сценариев были либо незрелыми (я не думаю, что Ruby был вокруг еще, например), либо имел другие проблемы и ограничения. Perl был более зрелым (особенно с точки зрения его экосистемы доступных надстроек через CPAN), но Python считался более читаемым и поддерживаемым, а взаимодействие с библиотеками C++ (через SWIG) было проще.

Ява появилась позже, охватывая промежуточную нишу - и совсем недавно, конечно, Go был разработан (хотя я не верю, что в нем еще много работы, так как оно все еще развивается и созревает). Некоторые специализированные языки, такие как sawzall, также находятся в миксе для очень специфических задач, и, конечно же, Javascript очень важен для работы на стороне браузера.

Другие языки, в том числе те, которые Грег упоминает в '06, либо «случайны», либо используются для других конкретных задач (например, Objective C для клиентов на iPhone или Mac) - например, когда Google нанял его первые системные администраторы, эти сотрудники неизбежно приходили с очень сильным овладением Perl и Bash и часто использовали любой из этих языков для разработки сложной внутренней системы; частое перекодирование в Python (для упрощения развертывания и сопровождения). Другие (например, C#), возможно, были в миксе временно из-за приобретений, но, опять же, перекодирование на одном из «основных языков Google» всегда является довольно высоким приоритетом (в случае C# перекодировка обычно будет в основном на Java, поскольку два языка относятся к аналогичным областям с точки зрения уровней абстракции).

+0

@Alex, возможно, я не понял правильно, но кажется, что Google хочет, чтобы их среда открыта для инженеров (особенно исследователей) тех, кто провел годы в университете и выходил только на C или C++ на руках (поскольку все, начиная с этих языков, и большинство из них закончил с ним тоже). Здесь python - сильный соперник, обеспечивающий интерфейс к огромному lib C/C++. –

+5

Линия «sawzall» мертва. –

+8

Время путешествия FTW: http://web.archive.org/web/20091222094118/http://labs.google.com/papers/sawzall.html –

32

Я не читал всю статью, и я не знаю, насколько она представительна, но, возможно, это отвечает на ваш вопрос: Python at Google.

Хорошо, я прочитал большую часть этого, к сожалению, он дает не , что много проницательности, но я думаю, что это все еще интересная статья. Возможно, самое главное:

В Google, python является одним из трех «официальных языков» наряду с C++ и Java. Официальный здесь означает, что Googlers разрешено развернуть эти языки на производственные услуги. (Внутри Google люди используют множество технологий, включая PHP, C#, Ruby и Perl). Python хорошо подходит для инженерного процесса в Google. Типичный проект в Google состоит из небольшой команды (3 человека) и короткой продолжительности (3 месяца).


Не следует забывать, что Guido van Rossum создатель Python работал в Google с 2005-2012;)


Я также нашел эту цитату, но я не могу проверить это:

«Python является важной частью Google с самого начала и остается таким, что система растет и развивается. Сегодня десятки инженеров Google используют Python, и мы смотрим г больше людей с навыками в этом языке»
- Питер Норвиг, директор качества поиска в Google

+0

Так это вопрос вкуса или конкурентного преимущества? –

+4

@nomemory: Может быть, и то и другое? Он соответствует инженерному процессу (вкусу) и благодаря этому может дать им преимущество, если они могут закончить свою продукцию раньше. –

+1

* Десятки инженеров используют Python? Для компании, такой большой, как Google, вряд ли это убедительный случай. –

18

Если вы подписались на Paul Graham's идею, что краткость == сила (то есть, если я могу писать код на языке Х в 10 строк, чтобы выполнить то, что вы взяли 100 строк языка Y, мой язык является более мощным)

Эти дней hardware is cheap, meatware is expensive. Я знаю, что в Python я могу писать намного больше, быстрее, лучше и яснее, чем на других языках, просто потому, что батареи обычно включаются. Конечно, это может быть медленнее, но действительно ли вы заметите разницу между 0,55 секунд и 0,0005 секунд?

В более реальном примере, если разработчики Google пишут программу на Python, где им никогда не придется беспокоиться о сборке мусора, а компания X пишет программу на C++, и они тратят 10% своего времени на отслеживание связанных ошибок к распределению памяти, угадайте, кто сделал быстрее - даже если магазину C++ удается написать остальную часть своего кода так же быстро.

Итак, я бы сказал, что это конкурентное преимущество для кода на Python.

+0

Ваша мясная ссылка мертва :( – Quonux

+2

Проклятый сайт редизайна! Ну, у него есть альтернативное звено, так что идите. –

+11

'ты действительно ли заметим разницу между 0,5 секундами и 0,55 секундами? «Вы не работаете с основным поиском Google, YouTube или Gmail, не так ли? – jwg

27

Я читал о Unladen-Swallow, проекте, целью которого является улучшение производительности CPython. При просмотре через доску обсуждений я наткнулся на this discussion, где Collin Винтер (сотрудник Google и основной разработчик Python) ответы на претензии что сотрудников Google в настоящее время не поощряли с помощью Python для новых проектов:

Ну , простой здравый смысл будет предела применимости Пайтона, когда работает в масштабе Google: это не так быстро, как Java или C++, резьб отстоя, использование памяти выше, и т.д. Одним из конструктивных ограничений, мы сталкиваемся с при проектировании любая новая система i s, "Что происходит, когда нагрузка увеличивается на 10x или 100x? Что произойдет, если вся планета думает ваш новый сервис является удивительным»Любая технология, которая делает отрадно, что ограничение сильнее - , и я думаю, что Python попадает в эту категорию - должны расстраивайтесь, если это не имеют очень сильный случай , сделанный в свою пользу по другим причинам.Вы должны уравновесить силы языка Python со своими слабостями: ваши инженеры могут быть более продуктивными использованием Python, , но если они должны работать вокруг более производительности на уровень платформы/масштабирования ограничения при увеличении объема, сделайте вы вышли вперед ? и т.д.

Смежные вопросы