Гугле використання Python від Google - це лише питання смаку чи це дає їм конкурентну перевагу?
Гугле використання Python від Google - це лише питання смаку чи це дає їм конкурентну перевагу?
Відповіді:
Я точно не можу дати остаточної відповіді, тому що до того, як я взяв інтерв'ю в Google в 2004 році, Python вже був помітним в Google.
Дійсно, є одне, мабуть, привабливе пояснення, яке я напевно можу заперечити: Google не використовує Python, оскільки в ньому працює стільки видатних Pythonistas - скоріше, більшість "видатних Pythonista" googlers приєдналися до Google, принаймні частково, тому що ми знали про відомість Python є (можливі винятки включають Пітера Норвіга та Джеремі Хілтона, але історично вибір Python від Google перед ними навіть був).
Ось, безумовно, тому я вперше зацікавився (мій видавець дав мені знати про велику кількість примірників моєї книги, яку Google купував - спочатку я вважав це гарною можливістю продати свою позаштатну консультаційну послугу ...; - ), як я згодом зміг переконати Гвідо приєднатися до нас, і, я вважаю, є частиною мотивації таких піфоністів, як Грег Штейн, Веслі Чун, Фредрік Лунд, Томас Вутерс, Коллін Вінтерс, Джеффрі Яскін, ...
Почалося все, я вважаю, тому що найдавніші Googlers (Сергій, Ларрі, Крейг, ...) прийняли хороше інженерне рішення: "Python, де ми можемо, C ++, де треба" - вони використовували (підмножина) C ++ для частин стеку програмного забезпечення, де дуже низька затримка та / або жорсткий контроль пам’яті були вирішальними, і Python, що дозволяє більш швидку доставку та обслуговування програм, для інших частин. У той час, наприкінці 90-х, вибір останньої ролі був по суті між Python та Perl: інші мови сценаріїв були або недозрілими (я не думаю, що Рубі ще не було, наприклад), або мали інші проблеми та обмеження. Perl був більш зрілим (особливо з точки зору його екосистеми доступних додатків через CPAN), але Python вважався більш читабельним та ремонтопридатним, а взаємодія з бібліотеками C ++ (через SWIG) була простішою.
Java з'явилася пізніше, охоплюючи проміжну нішу - і останнім часом, звичайно, Go був розроблений (хоча я не вірю, що в ньому ще багато роботи над виробництвом, оскільки вона все ще розвивається і дозріває). Деякі спеціалізовані мови, такі як sawzall , також є сумішшю для дуже конкретних завдань, і звичайно Javascript дуже важливий для роботи на базі браузера.
Інші мови, включаючи мови, про які Грег згадував ще у 2006 році, або є "випадковими" або використовуються для виконання інших конкретних завдань (наприклад, ціль C для клієнтів на iPhone або Mac) - наприклад, коли Google найняла своїх перших системних адміністраторів. , ці співробітники неминуче приїжджали з дуже сильним володінням Перлом і Башем, і часто використовували будь-яку з цих мов для розробки якоїсь складної внутрішньої системи; перекодування даних у Python (для більш легкого розгортання та ремонту) часто трапляється. Інші (наприклад, C #), можливо, були тимчасово в поєднанні через придбання, але, знову ж таки, перекодування на одній з "основних мов Google" завжди є досить високим пріоритетом (у випадку C #, перекодування, як правило, здебільшого відбувається на Java, оскільки обидві мови стосуються подібних областей з точки зору рівнів абстракції).
Я не прочитав всю статтю і не знаю, наскільки вона репрезентативна, але, можливо, це відповідає на ваше запитання: Python в Google .
Добре я прочитав більшість з них, до жаль , це дає не що набагато більше інформації , але я думаю , що це все ще цікава стаття. Можливо, найважливіше:
У Google python є однією з 3-х «офіційних мов» поряд із C ++ та Java. Офіційне тут означає, що Googlers дозволено розгорнути ці мови у виробничих службах. (Внутрішньо Google використовує багато технологій, включаючи PHP, C #, Ruby та Perl). Python добре підходить до інженерного процесу в Google. Типовий проект в Google має невелику команду (3 людини) та невелику тривалість (3 місяці).
Не забувати, що Гідо ван Россум, творець Python, працював у Google з 2005-2012 рр .;)
Я також знайшов цю цитату, але не можу її перевірити:
"Python був важливою частиною Google з самого початку і залишається таким, як система росте і розвивається. Сьогодні десятки інженерів Google використовують Python, і ми шукаємо більше людей, які володіють цією мовою"
- Пітер Норвіг, Директор з якості пошуку в Google
Я читав про Unladen-Swallow , проект, спрямований на покращення продуктивності CPython. Під час перегляду їх дошки обговорень я натрапив на цю дискусію , де Колін Вінтер (працівник Google та основний розробник Python) відповідає на твердження, що співробітники Google відмовляються використовувати Python для нових проектів :
Ну, простий здоровий глузд буде обмежувати застосовність Python під час роботи за масштабами Google: це не так швидко, як Java або C ++, всмоктування ниток, використання пам'яті вище і т. Д. Одним із обмежень дизайну, з якими стикаємось при розробці будь-якої нової системи, "що станеться, коли навантаження зросте на 10 або 100 разів? Що станеться, якщо вся планета вважає, що ваша нова послуга є приголомшливою?" Будь-яка технологія, яка ускладнює задоволення цього обмеження, - і я думаю, що Python потрапляє до цієї категорії - повиннане варто відсторонятись, якщо це не дуже вагомий випадок, зроблений на його користь з інших причин. Ви повинні збалансувати сильні сторони Python з його слабкими сторонами: ваші інженери можуть бути більш продуктивними з використанням Python, але якщо їм доведеться працювати над більш високими обмеженнями продуктивності / масштабування на платформі в міру збільшення гучності, ви виходите наперед? тощо.
Якщо ви підписуєтесь на ідею Пола Грехема, що стислість == сила (тобто якщо я можу написати код мовою X у 10 рядках, щоб виконати те, що ви взяли 100 рядків мови Y, моя мова є більш потужною)
В наші дні обладнання дешеве, м'ясо - дороге . Я знаю, що я можу писати набагато більше, швидше, краще І чіткіше на Python, ніж можу на інших мовах, просто тому, що батареї, як правило, включаються. Звичайно, це може бути повільніше, але чи дійсно ви помітите різницю між .05 секундами і .0005 секундами?
На прикладі більш реального світу, якщо розробники Google пишуть програму на Python, де їм ніколи не потрібно турбуватися про збирання сміття, а компанія X пише програму на C ++, і вони витрачають 10% свого часу на відстеження помилок, пов’язаних з розподілом пам'яті, здогадайтесь, хто все швидше - навіть якщо магазину C ++ вдасться так само швидко записати решту свого коду.
Так, так, я б сказав, що це конкурентна перевага в коді в Python.