8 компаний мирового масштаба, которые используют Python

В настоящее время существует более 500 языков программирования, и каждый день создаётся всё больше. Следует признать, что большинство из них частично совпадают, и большое их количество никогда не предназначалось для использования вне теоретических или лабораторных условий. Но, среди языков программирования, которые используются ежедневно в программировании и бизнесе, каждый делает свой выбор. Какие языки стоит изучать, и почему необходимо тратить свое время на их изучение?

Поскольку это сайт, посвященный Python, мы уже рассказывали вам, почему Python — отличный язык для изучения. И вы, вероятно, знаете о том, что Python является наиболее предпочтительным языком сценариев для Raspberry Pi (поскольку он является предустановленным). И, зная это, вы понимаете, какие удивительные вещи вы можете сделать с Raspberry Pi, проявив совсем немного изобретательности. А так как разобраться, в работе с Python, относительно несложно, вам может быть интересно, как он применяется в реальных компаниях и настоящих приложениях.

Теперь мы собираемся рассказать вам о восьми ведущих компаниях, которые, как вы понимаете, используют Python. Таким образом, вы можете увидеть, насколько большие возможности существуют для разработчиков на Python.

Industrial Light and Magic

Картинки по запросу "Industrial Light and Magic"

Industrial Light and Magic (ILM) — студия спецэффектов, которая была основана Джорджем Лукасом в 1975 году для создания FX для Star Wars. С тех пор аббревиатура ILM считается синонимом FX, получив множество наград за свою работу в кино и рекламе.

В первые годы ILM фокусировались на настоящих эффектах, но вскоре поняли, что компьютерные эффекты — это будущее FX в целом. Их отдел CGI был основан в 1979 году, и их первым эффектом была последовательность взрывов проекта Genesis в Star Trek II: Гнев Хана.

Первоначально в CGI студии ILM использовалась оболочка Unix, но она занималась сравнительно небольшим объемом работы. Поскольку студия предвидела будущее CGI, они начали искать систему, которая могла бы справиться с агрессивным масштабированием, которое они видели в будущем.

ILM выбрал Python 1.4 вместо Perl и Tcl, объяснив это тем, что его было намного проще интегрировать в существующую инфраструктуру. Благодаря простой совместимости Python с C и C++, ILM легко импортировала Python в свое проприетарное программное обеспечение (являющееся частной собственностью авторов или правообладателей) для создания освещения. Это позволило им использовать Python в большем количестве сценариев, используя его для свертывания программных компонентов, и расширить свои стандартные графические приложения.

Студия использовала Python во многих других аспектах своей работы. Разработчики создают софт на Python для отслеживания и аудита функциональности конвейера, поддерживая базу данных каждого кадра, созданного для каждого фильма. Поскольку все больше и больше программ ILM контролировались Python, они создали простой унифицированный набор инструментов, который позволил создать более эффективный производственный конвейер.

Вопреки многочисленным нападкам, ILM продолжает находить Python лучшим решением для своих нужд. Комбинация открытого исходного кода в сочетании с возможностью резервного копирования изменений гарантирует, что Python будет продолжать удовлетворять потребности ILM в течение длительного времени.

Google

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

Даже когда другие скрипты писались для Google на Perl или Bash, они часто переписывались на Python. Причина была в простоте развертывания и поддержки. На самом деле, по словам Стивена Леви, автора «In the Plex», самый первый парсер Google для сканирования веб-страниц был изначально написан на Java 1.0 и оказался настолько сложным, что они переписали его на Python.

Python теперь является одним из официальных серверных языков Google — C++, Java и Go — три других, которые разрешено развертывать в рабочей среде. И, в случае, если вы не уверены, насколько важен Python для Google, с 2005 по 2012 год в Google работал сам создатель Python, Гвидо ван Россум.

В довершение всего Питер Норвиг сказал:

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

Facebook

Инженеры Facebook исключительно заинтересованы в Python, что делает его третьим по популярности языком среди гигантов социальной сети (сразу за C++ и их проприетарным PHP-диалектом Hack). В целом, было сделано более 5000 коммитов к утилитам и сервисам в Facebook, которые управляют инфраструктурой, бинарным распределением, отображением оборудования и операционной автоматизацией.

Простота использования библиотек Python означает, что производственным инженерам не нужно писать или поддерживать слишком много кода, что позволяет им сосредоточиться на улучшениях. Это также гарантирует то, что инфраструктура Facebook способна эффективно масштабироваться.

Согласно сообщению Facebook в 2016 году, Python в настоящее время отвечает за несколько сервисов по управлению инфраструктурой. К ним относятся использование TORconfig для настройки и формирования сетевого коммутатора, FBOSS для CLI коммутатора whitebox и использование Dapper для планирования и выполнения работ по техническому обслуживанию. Facebook опубликовал множество проектов на Python с открытым исходным кодом, написанных для Py3, включая Facebook Ads API и фреймворк Python Async IRCbot. Facebook в настоящее время находится в процессе обновления своей инфраструктуры и обработчиков до Python 3.4, и AsyncIO помогает их инженерам в этом процессе.

Instagram

Картинки по запросу "instagram"

В 2016 году команда инженеров Instagram заявила, что они запускают крупнейший в мире Django-проект, полностью написанный на Python. Мин Ни, инженер-программист из Instagram, рассказал о своем опыте инженеринга на Python для этого проекта:

«Изначально мы решили использовать Python из-за его репутации, а также за простоту и практичность, которая хорошо согласуется с нашей философией «сделай простое в первую очередь»».

С тех пор команда разработчиков Instagram инвестировала время и ресурсы в поддержание жизнеспособности использования Python в огромном масштабе (~800 миллионов активных пользователей в месяц):

«Работая над созданием структуры эффективности веб-сервисов Instagram, мы уверены, что будем продолжать масштабировать инфраструктуру с помощью Python. Мы также стали больше инвестировать в сам язык Python и начинаем готовиться к переводу нашего кода на Python с версии 2 на 3».

Spotify

Картинки по запросу "spotify"

Этот гигант стриминговой музыки — огромный сторонник Python, использующий язык в основном для анализа данных и сервисов. На бэкенде работает большое количество утилит, которые взаимодействуют через 0MQ или ZeroMQ, сетевую библиотеку с открытым исходным кодом и инфраструктуру, написанную на Python и C++.

Причина того, что сервисы написаны на Python, заключается в том, что Spotify нравится, как быстро происходит разработка при программировании на Python. В последних обновлениях архитектуры Spotify используется Gevent, который обеспечивает быстрый цикл обработки событий с высокоуровневым синхронным API.

Для предоставления предложений и рекомендаций пользователям, Spotify использует большой объем аналитики. Для их интерпретации Spotify использует Luigi, модуль Python, который синхронизируется с Hadoop. Этот модуль с открытым исходным кодом обрабатывает то, как библиотеки работают вместе, и быстро объединяет журналы ошибок, чтобы дать возможность как можно быстрее устранить проблемы и провести повторный деплой.

В общей сложности Spotify использует более 6000 отдельных сервисов на Python, которые работают вместе на узлах кластера Hadoop.

Quora

Создатели этой огромной краудсорсинговой компании долго и упорно решали, какой язык использовать, чтобы реализовать свою идею. Чарли Чивер, один из основателей Quora, ограничился выбором Python, C#, Java и Scala. Их самой большой проблемой в работе с Python стало отсутствие проверки типов и относительная медлительность.

По словам Адама Д’Анджело, они решили не использовать C#, потому что это проприетарный язык Microsoft, и они не хотели быть связанными с какими-либо будущими изменениями. Кроме того, открытый исходный код имел бы поддержку сообщества.

Программирование на Java было более болезненным, чем Python, да и работала Java не так хорошо с не-Java программами, как Python. В то время Java также находилась в зачаточном состоянии, поэтому они беспокоились о будущей поддержке и о том, будет ли язык продолжать расти.

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

Еще одной причиной для использования Python было наличие нескольких хороших фреймворков на то время, таких как Django и Pylons. Поскольку они знали, что Quora будет включать взаимодействия вида сервер/клиент, которые не обязательно будут загружаться на всю страницу, большим преимуществом стала слаженная работа Python и JS.

Netflix

Картинки по запросу "netflix"

Netflix использует Python в тех же сценариях, что и Spotify, полагаясь на этот язык для анализа данных на стороне сервера. Однакo, на этом они не остановились. Netflix позволил разработчикам программного обеспечения выбирать язык для написания кода и заметил значительный рост числа приложений на Python.

В ходе опроса выяснилось, что инженеры Netflix ссылаются на стандартную библиотеку, чрезвычайно активное сообщество разработчиков и богатое разнообразие сторонних библиотек, доступных для решения практически любой конкретной проблемы. Кроме того, поскольку Python очень прост в разработке, он стал основой во многих других сервисах Netflix.

Одно из основных мест, где используется Python — Central Alert Gateway. Это RESTful веб-приложение обрабатывает оповещения из любого места, а затем направляет их людям или группам, которые должны их видеть. Кроме того, приложение может подавлять повторяющиеся уведомления, которые уже были обработаны, и в некоторых случаях выполнять самостоятельные решения, такие как перезагрузка процесса или завершение чего-либо. Это приложение — огромное достижение для Netflix. Интеллектуальная обработка означает, что разработчики и инженеры не занимаются лишними вызовами.

Dropbox

Картинки по запросу "dropbox"

Эта облачная система хранения использует Python в своем клиенте для ПК. Если у вас есть какие-либо сомнения по поводу того, как Dropbox вложился в Python, представьте, что в 2012 году им удалось убедить Гвидо ван Россума, создателя Python, покинуть Google и уйти в Dropbox.

Россум присоединился к Dropbox при условии, что он будет инженером, а не руководителем или даже менеджером. В первый год он смог реализовать систему, которая позволяет обмениваться данными с другими пользователями сообщества Dropbox. Несмотря на то, что многие библиотеки и внутренние компоненты Dropbox являются проприетарными и не имеют открытого исходного кода, компания выпустила весьма эффективный API, написанный на Python, который позволяет увидеть, как думают их инженеры. Вы можете прочитать между строк о том, какой огромный процент их кода на стороне сервера занимает Python, когда будете читать интервью с инженерами Dropbox.

Также интересно отметить, что, хотя программы на стороне клиента написаны на Python, они используют разные библиотеки на компьютерах Mac и Windows, чтобы обеспечить одинаковое взаимодействие. Это связано с тем, что Python не предустановлен в Windows, а в зависимости от вашего Mac, версия Python будет сильно отличаться.

Reddit

Этот веб-сайт посетило 542 миллиона человек каждый месяц в течение 2017 года, что делает его четвертым по посещаемости веб-сайтом в США и седьмым по посещаемости в мире. В 2015 году было зарегистрировано 73,15 млн. пользователей и 82,54 млрд. просмотров записей. И за всем этим, формируя программный каркас, стоит Python.

Reddit изначально был написан на Lisp, но, в декабре 2005 года, через шесть месяцев после его запуска, сайт был переписан на Python. Основной причиной изменений стало то, что Python имел более широкий спектр библиотек и был более гибким в разработке. Веб-фреймворк, который изначально управлял сайтом, web.py, теперь стал проектом с открытым исходным кодом.

В 2009 году, во время Pycon, Стива Хаффмана и Алексиса Оганяна спросили, почему Reddit все еще использует Python в качестве своего основного яхыка. По словам Хаффмана, причина та же, что и причина ухода с Lisp:

«У Python есть библиотеки для всего. Мы изучали многие технологии и множество архитектур по ходу работы. Если не разбираюсь в веб-фреймворках, буду использовать чужие, пока не создам свои собственные… У Python есть такой замечательный костыль.

Кто-то еще?

В этой статье мы рассмотрели восемь (вообще девять, но Instagram принадлежит Facebook) успешных компаний-разработчиков программного обеспечения мирового класса, которые используют Python для разработки. Но они не единственные. В 2020 году использование Python достигло нового пика и продолжает расти.

Мы пропустили кого-нибудь важного? Оставьте комментарий ниже и дайте нам знать о вашем любимом сервисе, написанном на Python!