Тяжелое использование Google Python в Google - это просто вопрос вкуса или дает им конкурентное преимущество?Тяжелое использование Python в Google
ответ
Я не могу дать однозначный ответ, потому что к тому времени, когда я взял интервью у 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, поскольку два языка относятся к аналогичным областям с точки зрения уровней абстракции).
@Alex, возможно, я не понял правильно, но кажется, что Google хочет, чтобы их среда открыта для инженеров (особенно исследователей) тех, кто провел годы в университете и выходил только на C или C++ на руках (поскольку все, начиная с этих языков, и большинство из них закончил с ним тоже). Здесь python - сильный соперник, обеспечивающий интерфейс к огромному lib C/C++. –
Линия «sawzall» мертва. –
Время путешествия FTW: http://web.archive.org/web/20091222094118/http://labs.google.com/papers/sawzall.html –
Я не читал всю статью, и я не знаю, насколько она представительна, но, возможно, это отвечает на ваш вопрос: 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
Так это вопрос вкуса или конкурентного преимущества? –
@nomemory: Может быть, и то и другое? Он соответствует инженерному процессу (вкусу) и благодаря этому может дать им преимущество, если они могут закончить свою продукцию раньше. –
* Десятки инженеров используют Python? Для компании, такой большой, как Google, вряд ли это убедительный случай. –
Если вы подписались на Paul Graham's идею, что краткость == сила (то есть, если я могу писать код на языке Х в 10 строк, чтобы выполнить то, что вы взяли 100 строк языка Y, мой язык является более мощным)
Эти дней hardware is cheap, meatware is expensive. Я знаю, что в Python я могу писать намного больше, быстрее, лучше и яснее, чем на других языках, просто потому, что батареи обычно включаются. Конечно, это может быть медленнее, но действительно ли вы заметите разницу между 0,55 секунд и 0,0005 секунд?
В более реальном примере, если разработчики Google пишут программу на Python, где им никогда не придется беспокоиться о сборке мусора, а компания X пишет программу на C++, и они тратят 10% своего времени на отслеживание связанных ошибок к распределению памяти, угадайте, кто сделал быстрее - даже если магазину C++ удается написать остальную часть своего кода так же быстро.
Итак, я бы сказал, что это конкурентное преимущество для кода на Python.
Я читал о Unladen-Swallow, проекте, целью которого является улучшение производительности CPython. При просмотре через доску обсуждений я наткнулся на this discussion, где Collin Винтер (сотрудник Google и основной разработчик Python) ответы на претензии что сотрудников Google в настоящее время не поощряли с помощью Python для новых проектов:
Ну , простой здравый смысл будет предела применимости Пайтона, когда работает в масштабе Google: это не так быстро, как Java или C++, резьб отстоя, использование памяти выше, и т.д. Одним из конструктивных ограничений, мы сталкиваемся с при проектировании любая новая система i s, "Что происходит, когда нагрузка увеличивается на 10x или 100x? Что произойдет, если вся планета думает ваш новый сервис является удивительным»Любая технология, которая делает отрадно, что ограничение сильнее - , и я думаю, что Python попадает в эту категорию - должны расстраивайтесь, если это не имеют очень сильный случай , сделанный в свою пользу по другим причинам.Вы должны уравновесить силы языка Python со своими слабостями: ваши инженеры могут быть более продуктивными использованием Python, , но если они должны работать вокруг более производительности на уровень платформы/масштабирования ограничения при увеличении объема, сделайте вы вышли вперед ? и т.д.
- 1. Тяжелое использование тега «<? Php» PHP
- 2. рельсы тяжелое использование хешей ... требуется объяснение
- 3. Glassfish 4 Grizzly Threads Тяжелое использование процессора
- 4. Тяжелое использование jQuery уязвимо для хакеров?
- 5. GAE + Picasa тяжелое использование. Ограничения или цитаты
- 6. Hbase Тяжелое Исключение записи
- 7. Слишком тяжелое выполнение запроса
- 8. Тяжелое использование замков TortoiseSVN/Subversion NT Учетная запись пользователя
- 9. Использование Google Geocoding с Python
- 10. Resizing дает мне тяжелое изображение
- 11. Использование python для поиска в Google?
- 12. Использование CombinePerKey в Google Cloud Dataflow Python
- 13. Использование пакета Google Finance в Python
- 14. Использование Google Maps JQuery в Python CherryPy
- 15. Использование отражения google protobuffers в python
- 16. Индексация Тяжелое набор данных в Solr
- 17. Как ускорить тяжелое условные правила форматирования
- 18. Использование других API Google в проекте конечных точек Google (Python)
- 19. Производительность очереди? Ожидая иметь интенсивное использование ОЗУ, но вместо этого я получаю тяжелое использование ЦП
- 20. Google App Engine Python - Использование хранилища данных
- 21. Использование Google App Engine с Python SDK
- 22. Android: операции Тяжелое DB с прогрессом диалогового
- 23. Использование библиотеки отбеливателя Python с Google AppEngine
- 24. INSERT INTO Google Fusion Tables Использование Python
- 25. Использование API Google API Python с SignedJwtAssertionCredentials
- 26. Использование SignedJwtAssertionCredentials на Python Google App Engine
- 27. тяжелое настроенное ограничение маршрутизации замедляет работу сайта?
- 28. Тяжелое изображение (очень большое изображение) Эффект загрузки
- 29. Тяжелое обновление на ui из темы
- 30. Использование `->` в Python?
Это должно быть сообщество вики – AutomatedTester
Алекс Мартелли, поступающая для обслуживаемого ответ очень скоро, .... – ChristopheD
На самом деле я думаю, что этот ответ можно было бы ответить объективно (там должно быть заявление где-то в Google, почему они используют его ;)) –