11 августа, 2017 |

Екатерина Шипилова

«Я учусь программировать на Python, что мне с этими знаниями делать дальше», спрашиваете вы. А мы рассказываем в ответ, как используют Python известные компании и проекты.

Екатерина Шипилова
Получайте новые статьи на e‑mail

Пишем о будущем, технологиях и стартапах

Ещё по теме

Не web’ом единым: в каких крупных проектах применяется Python

Как я поборола страх перед программированием

В новом учебном сезоне мы запускаем пятый поток курса «Разработчик на Python». Нас часто спрашивают: «Хорошо, я освою Python. Что дальше? Где именно я смогу применить навыки?». В этом материале мы собрали обзор известных компаний и проектов, которые используют Python в работе.

Часто именно Python рекомендуют начинающим разработчикам в качестве первого языка для изучения, и это вполне объяснимо. Фишка Python — читабельность кода. Именно она обеспечила ему уважение программистов от Токио до Мытищ. Про то, как вообще выбирают язык программирования (и чем так крут Python), мы рассказывали в материале «Python или нет?».

Какие крупные компании используют Python

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

Python — универсальный язык. На нём можно написать практически что угодно — от игр до систем управления жизнеобеспечением. На руку популярности Python играет сообщество «пайтонистов» со своей особой философией. Звание участников сообщества носят не только индивидуальные разработчики и небольшие компании, но и целые IT-гиганты.

Например, Python активно используют:

  • Google;
  • Dropbox (святая святых Python-программистов. В компании работает и сам создатель языка Гвидо ван Россум);
  • Netscape;
  • Facebook;
  • Yandex;
  • Microsoft;
  • Intel.

А что насчет крутых проектов и игр, написанных на Python

Попробуем вспомнить известные проекты, в создании которых задействован этот ассемблер:

  • Большая часть кодовой базы самого известного видеохостинга YouTube написана на Python.
  • Начальная версия поискового паука Google — на Python.
  • Десктопный клиент Dropbox — полностью детище Python.

И это ещё не все. На Python написаны:

  • Spotify;
  • Mozilla;
  • Pinterest;
  • Paypal;
  • И даже Instagram.

Также на Python написана Mercurial — система контроля версий, очень серьезная штука.

В Abaqus, системе расчета на прочность, Python применяется как язык для пользователей — чтобы они могли полностью задействовать возможности программы или же автоматизировать расчеты.

Кроме того, большая часть Civilistation IV написана на Python. Использован Python и в Battlefield. Также есть игры, в которых Python задействован для моддинга — создания дополнений к игре сторонними разработчиками или самими игроками. Это, например, Sims IV, World of Tanks. Список можно продолжать.

Почему важно выбирать язык разработки, востребованный крупными брендами

Звучит здорово, но о чем это говорит? Крупные корпорации — значимые для рынка — уверены в жизнеспособности Python и готовы строить вокруг него бизнес. А потому проблема с поиском работы вряд ли возникнет перед теми, кто освоил разработку на Python.

Если вы прониклись скромным обаянием Python или заинтересовались широтой открывающихся возможностей, ждём на курсе «Разработчик на Python». Вы получите навыки web-разработки на всех этапах — от идеи до поддержки уже работающего продукта.

Python входит в 5-ку самых популярных языков программирования. Он используется в самых разных областях IT, таких, как веб-разработка, машинное обучение, создание приложений и даже геймдев.

Где применяется Python

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

И хотя он не может потеснить Java и PHP с ведущих мест в веб-разработке, в сфере машинного обучения Python – язык номер один.

Создание приложений

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

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

Возможность встроить в Python код на С/C++ сглаживает проблему низкой скорости работы программ.

Веб-разработка

Python захватил определенную часть сферы, но не может соперничать с такими гигантами, как PHP, Java и Node.js. Для реализации серверной логики они удобнее и мощнее Python.

На Python часто создаются решения, которые имеют узкую направленность. Например, отправку документа с сайта на принтер трудно реализовать на PHP, а Python легко справляется с этой задачей.

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

Машинное обучение

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

Python стал абсолютным лидером в этой сфере по ряду причин:

  • Язык очень простой, это нравится ученым. Им не нужно тратить много времени на написание кода, вместо этого они могут сосредоточиться на проектировании ИИ.
  • В Python легко встраивается код на C и C++, что позволяет использовать C-код в тех местах, где важна скорость.
  • Python обзавелся достаточным количеством библиотек и фреймворков, созданных для упрощения машинного обучения.
  • Гибкость языка позволяет не ограничиваться какой-то одной парадигмой разработки, программист может писать как объектно-ориентированные программы, так и процедурные.

Интересные проекты на Python

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

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

Mount and Blade

Mount and blade – это RPG, у которой нет аналогов. Игрок погружается в средневековый мир, путешествует по глобальной карте, набирает армию и завоевывает себе славу и власть. Когда начинается битва, игра превращается в средневековый симулятор сражений, игрок управляет персонажем от третьего лица, у него есть несколько десятков воинов, которым можно отдавать приказы, и он должен убить всех воинов противника.

Такой системы нет ни в одной игре. Стратегия, RPG и экшн — странная, но крутая смесь. Кроме того, на поле боя может быть несколько сотен воинов, управляемых компьютером, такой масштаб впечатляет.

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

Battlefield

Battlefield полюбили миллионы человек. Не стоит думать, что игра полностью написана на Python. Разработчики использовали его для создания некоторых скриптов, серверной части игры и её логики.

Игра вышла в 2005 году и имела подходящие для компьютеров того времени системные требования. Использование Python позволило ускорить разработку и не повлияло на производительностью

EVE Online

Как и в случае с Battlefield, в EVE Online Python использовался для создания игровой логики и управления серверной частью игры.

Разработчики использовали улучшенную версию интерпретатора, которая называется stackless python. Так как это ММО, сервер может обрабатывать миллионы запросов, и stackless python отлично справляется с этим.

Sims 4

Sims – это самый известный симулятор жизни.

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

Civilization 4

Про цивилизацию слышал каждый геймер. Это глобальная пошаговая стратегия, сочетающая в себе дипломатию, развитие и войну.

Разработчики не ограничились использованием Python для реализации каких-то частей проекта, они написали на нём практически всю игру.

Программы

BitTorrent

Популярный торрент-клиент, которым пользуются миллионы людей, был полностью написан на Python.

Примечание: 6 версия программы была переписана на C++.

Blender

Это программа для работы с 3D графикой, способная соперничать с такими гигантами, как Maya и 3DMax.

Пользователь получает возможность создавать трехмерные модели, анимацию, а также видео и игры.

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

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

GIMP является редактором растровой графики и, частично, векторной графики.

Он является единственной достойной заменой Adobe Photoshop в системе Linux и установлен на большинстве дистрибутивов по умолчанию.

Python использовали для создания фильтров, дополнительных модулей, некоторых скриптов.

Программа, которая использует метод интервальных повторений, чтобы пользователь мог легко запомнить нужную информацию (новые слова, формулы, ответы на тесты и другое).

Calibre

Любимое приложение каждого, кто читает много книг.

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

Искусственный интеллект

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

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

Обилие библиотек позволяет без проблем создавать ИИ, способные ориентироваться в пространстве, принимать решения, выполнять задачи, недоступные человеку.

Одним из новейших искуственных интеллектов, написанных на Python, является AlphaStar – искусственный интеллект для Starcraft 2.

Разработчики использовали PySC2 — инструменты, написанные на Python специально для SC2.

Сложность заключается в том, что компьютеру нужно делать и оценивать много вещей: разведывать противника, определять его стратегию, подстраивать свою игру под неё, принимать оптимальные решения по передвижению армии и многое другое.

AlphaStar показал поразительные результаты, он обыграл одного из лучших игроков мира.

Сайты

Для работы с сайтами используют обычно фреймворк Django, превращающий Python в язык для веб-программирования.

Google

Это самая популярная поисковая система в мире.

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

YouTube

Это сайт, где пользователи могут загружать и смотреть видеоролики.

Он известен каждому пользователю интернета и ежедневно собирает миллиарды просмотров.

Facebook

Это самая популярная социальная сеть в мире, ежедневно пользователи загружаются миллионы картинок, меняют статусы, создаются посты — всё это обрабатывается с помощью инструментов языка Python.

Instagram

Популярная социальная сеть, которая используется людьми, чтобы делится историями из жизни, фотографиями, мыслями и так далее.

Всё, что связано с картинками (поиск, постинг, просмотр) обрабатывается кодом на Python.

Потенциал Python в крупных проектах

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

Да, этот язык можно использовать во всех крупных проектах, как инструмент для создания прототипов, но как насчет применения в финальной версии?

Если не рассматривать машинное обучение, и брать программы, которым жизненно важна скорость выполнения, то вряд ли для Python найдется место. Однако часто практикуется гибрид разных языков, например, Python и C++. Такой подход позволяет достичь и высокой скорости разработки и высокой скорости выполнения программы. На Python пишется большая часть кода, а на C++ лишь те участки, которые сильно влияют на скорость выполнения (например, функция по обработке и передаче большого количества данных в единицу времени).

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

#1 — YouTube

Крупнейший видео хостинг YouTube является частью компании Google, которая во многих своих проектах использует язык Python и фреймворк Django. YouTube также не стал исключением и вся эта гигантская платформа написана на этом фреймворке.

#2 — Google Search

Компания Google с давних пор использует язык Python во многих своих продуктах. Они всегда видели потенциал данного языка и старались внедрять его как можно больше и как можно чаще. Компания использует язык Python и фреймворк Django и для своего главного проекта — Поисковика Гугл.

#3 — DropBox

Один из крупнейших в мире сайтов для хранения данных или проще говоря облачное хранилище. DropBox создал новый способ хранения данных: вместо компьютера — на облаке. Dropbox позволяет нам хранить, синхронизировать и делиться почти чем угодно, используя мощь Python.

#4 — Instagram

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

#5 — Reddit

Reddit это крупнейший социальный новостной проект. Сами пользователи могут размещать различные статьи, а также комментировать и голосовать за други статьи других авторов. На этом сайте вы найдете тысячи Интернет новостей и споров на различные тематики. Большая часть всего функционала сайта выполнена как раз на Python.

#6 — Pinterest

Ресурс Pinterest очень схож с инстаграмом. Здесь пользователи также могут делиться различными фотографиями, но лишь теми фотографиями, которые отвечают их интересам или же их подборке. К примеру, если пользователь ведет Pin про самые быстрые машины, то подписавшись на него вы будете получать кучу фотографий с быстрыми машинами.

#7 — Quora

Сайт Quora это американский аналог сайта Отеты Mail.ru. На этом сайте пользователи могут задавать различные большие или не очень вопросы и другие пользователи могут отвечать на них. Чем больше вы ответите на вопросы, тем больший рейтинг у вас будет на сайте. Так, если вы не знаете ответа на что-либо, то самым легким вариантом добиться ответа — будет написать его на этом сайте.

#8 — Yahoo Maps

В целом Yahoo использует для своих проектов платформу Node.js . Тем не менее, они решили использовать язык Python для создания своих карт. Yahoo Maps это обычная, хорошая карта, которая позволяет вам получить маршрут из точки А в точку B. В странах СНГ данный поисковик не особо популярен, но на западе он является весьма крупным и популярным поисковиком. Карты от Yahoo считаются надежными, поэтому многие люди используют именно их в своих ежедневных поездках.

#9 — Spotify

Spotify — это приложение, которое позволяет вам бесплатно находить, прослушивать и делиться музыкой с друзьями. Приложение очень удобно, так как позволяет быстро находить релевантную музыку и добавлять её к себе в плейлист.

#10 — Onion

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

Это лишь небольшая часть всех сайтов, которые были созданы при помощи технологии Django. Если вы знаете еще какие-либо крупные проекты, которые также созданы при помощи этой технологии, то обязательно оставляйте ваш отзыв с ссылкой на проект в комментариях к этой статье!