Язык Python: стоит ли учить в 2023 году
С 1996 г., популярность языка Python неуклонно растёт. Это отражено в рейтинге популярных языков программирования по индексу TIOBE — в нём питон занимает третье место после языков C и Java.
Разберёмся, в каких областях применяется этот язык и нужен ли пайтон в 2022 г.
Содержание статьи скрыть
Особенности языка
Python — высокоуровневый язык общего назначения. Это значит, что такой язык быстр и удобен в работе, а программы, написанные на нём, просты для понимания программистами. Обычно его используют для веб-разработки, анализа данных, написания скриптов и игр.
Как появился Python
Разочаровавшись в недостатках существовавших в 80-ых годах языков программирования, голландский программист, Гвидо Ван Россум создал новый язык Python. Это должен был быть язык, с которого далёкие от разработки люди могли начать свой путь в программировании
Его разработка началась в 1989 году, и шла на одном энтузиазме, без бюджета и поддержки. Интерпретатор языка был создан всего за несколько недель работы по вечерам. На выбор названия для языка повлияла популярная в то время телепередача «Monty Python», одним из фанатов которых был Ван Россум
Первый прототип был довольно простым: он состоял из виртуальной машины, среды выполнения, парсера и базового синтаксиса. Главной особенностью языка стала его простота и возможность самостоятельного добавления в систему нужных типов объектов — то есть каждый программист мог добавить что-то своё
Коллеги Гвидо из компании CWI оценили прототип языка и начали использовать его для своих проектов, параллельно помогая его дорабатывать. Главная идея, которую преследовал Гвидо Ван Россум в своей разработке — язык должен быть простым и понятным, но иметь достаточную производительность для решения важных задач
Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться
Популярность
По данным на 2018 год, насчитывалось семь миллионов программистов, использующих Python. Такая популярность вызвана универсальностью и простотой изучения языка — он становится главным ориентиром новичков. Чтобы работать с ним, необязательно быть продвинутым программистом.
На рынке всё ещё чувствуется недостаток специалистов по разработке программного обеспечения. Поэтому количество открытых вакансий на должность питон-разработчика — показатель востребованности специалистов. В 2019 году Java, Python, JavaScript и C++ входили в число популярных языков, требуемых от работодателей.
По данным сайта вакансий hh.ru на июль 2021 года, открыто более семи тысяч вакансий на должность пайтон-разработчиков и инженеров по всей России. Заработная плата специалистов начинается от 105 000 руб. в месяц.
Сфера применения
Python используют в сферах от веб-разработки до работы с искусственным интеллектом. Опрос JetBrains выделил пять главных направлений, в которых питон применяется чаще всего.
Веб-разработка
В веб-разработке питон используется для работы с серверной частью веб-приложений. Для этих целей есть несколько известных фреймворков: Flask, Pyramid и Django. Фреймворк — это каркас для разработки приложений, который предоставляет необходимые программисту инструменты для работы.
Курс «Python для веб-разработки» от SkillFactory за девять месяцев вы научитесь делать рабочие веб-страницы, сможете верстать на HTML и CSS, программировать на JavaScript и Python и сможете написать веб-игру с подключением базы данных
Анализ данных
Python — наиболее эффективный язык для работы с большими данными. Для анализа, визуализации и прогнозирования существуют несколько популярных и производительных библиотек. Так Pandas — фундаментальная библиотека питона, которую используют для анализа данных. Для этих целей также подходят NumPy, SciPy, Seaborn, и Matplotlib.
Посмотрите ТОП-3 курсов обучения Python для анализа данных, чтобы начать разбираться в нём уже через два-четыре месяца
Машинное обучение и AI
Машинное обучение и искусственный интеллект часто программируют на питоне. Это удобно делать на простом языке с эффективной производительностью при обработке данных. Питон для машинного обучения использует две популярные библиотеки: Scikit-learn и TensorFlow. Первая пользуется большей популярностью у новичков, так как встроена во многие популярные алгоритмы машинного обучения.
Парсинг, скрапинг и краулинг сайтов
Питон позволяет эффективно извлекать необходимую информацию с веб-сайтов для последующего анализа. Любую интернет-страницу можно исследовать на информацию, а всё что находится на ней — извлечь парсерами. Один из популярных фреймворков для извлечения данных — Scrapy. В основе его работы автономные сканеры с набором инструкций.
Если вы уже уверенно владеете языком пройдите курс «Разработчик Python. Углубленный уровень» от OTUS. Вы усилите свои знания в области дата-инжиниринга и визуализации данных. В качестве выпускного проекта вы создадите веб-сервис, который будет отвечать за планирование количества ресурсов и аппаратных хостов на базе поступающих заявок
Скриптинг
Чаще всего скриптинг используют для написания несложных программ и автоматизации простых задач. Это позволяет делегировать рутинный ручной труд машине. Следует только написать пару десятков или сотен строк кода, а после забыть о нём. Остальную часть задачи скрипт возьмёт на себя.
Почему актуален сегодня
Сейчас язык находится на пике своей популярности, и будет на нём ещё не менее пяти-десяти лет. Вот пять причин, почему питон всё ещё актуален.
- Питон перечеркнул миф о сложности разработки. У языка понятный синтаксис, который базируется на английском языке. На питоне легко писать и его легко читать.
- Большое количество справочной литературы. Вы не будете испытывать недостатка актуальной информации, потому что её много в открытом доступе — книги, сайты, форумы, видеоролики, платные и бесплатные курсы.
- Множество инструментов. Для питона создано множество инструментов, фреймворков и сред разработки, которые позволяют упростить решение многих задач. Можно воспользоваться готовым решением и не тратить время.
- Минимализм. Не нужно писать полотна лишнего когда. Динамическая типизация и другие функции языка дают возможность меньше заморачиваться над шаблонностью кода и упрощать его.
- Востребованность специалистов. Если вы сейчас начнёте изучать питон, то у вас не будет проблемы, что через пять лет вы останетесь без работы. И став питон-разработчиком легко освоить любой другой язык.
Проблемы языка
Вот основные недостатки, которые выделяют программисты:
- Скорость исполнения кода. Его быстродействия достаточно, чтобы покрыть запросы большинства задач, но в сравнении с конкурентами язык отстаёт. Писать что-то высокопроизводительное на одном только питоне не получится — придётся подключать другие языки или пользоваться типизированными расширениями.
- Динамическая типизация. Эта функция даёт возможность писать код проще и быстрее, но из-за этого могут возникнуть ошибки времени выполнения — это ошибки, которые генерируются, когда программа находится в запущенном состоянии. Из-за этого часто требуется дополнительное тестирование кода.
- Динамические ограничения видимости. Это головная боль многих разработчиков, ведь чтобы оценить выражение, компилятор ищет текущий блок и все вызывающие функции. Это означает, что каждое выражение тестируется во всех возможных контекстах, и на это уходит много времени.
- Сложность мобильной разработки. Теоретически, создавать приложения под мобильные устройства на питоне можно. Но для этого есть много более подходящих инструментов, вроде фреймворков Flutter и Iconic.
Но несмотря на ряд проблем языка, программисты закрывают на это глаза, ведь на кону — удобство и скорость работы.
Какие крупные компании используют python
Если вы всё ещё не уверены, нужен ли вам питон, вот список компаний мирового масштаба, которые активно используют этот язык программирования.
- Компания положительно отнеслась к языку с самого начала, решив использовать python и C++. С++ используется в компании для задач, где необходима высокая скорость и полный контроль над памятью. В остальных задачах инструментов достаточно python. Сегодня пайтон — один из официальных языков разработки Google.
- Известный сервис стриминговой музыки использует python для анализа данных. Чтобы предоставить пользователям рекомендации, Spotify использует большое количество аналитики. В общей сложности сервис использует более 6000 сервисов питона, которые работают одновременно.
- Самая популярная компания-поставщик фильмов и сериалов мирового масштаба Netflix использует пайтон для тех же целей, что и Spotify. Питон стал основой для многих сервисов и ПО, так как язык имеет большое сообщество, множество удобных библиотек, а писать на нём код довольно удобно. Язык также используется для анализа данных на стороне сервиса Netflix.
Подведём итоги
Будущее Python — предмет горячих споров и дискуссий в сообществе программистов. Одни уверены, что лучше этого языка нет и не будет в ближайшее десятилетие точно. Другие говорят, что эпоха языка вот-вот пройдёт, как прошла эпоха языка Perl.
Программирование на питоне можно назвать скилом будущего. Будущее индустрии за автоматизацией и упрощением решения задач, а питон предоставляет для этого большие возможности. На этом языке работают самые разные сферы: от веб-программирования до создания игр. И он удобен и прост для первых шагов в программировании.
Cобрали курсы изучения Python для начинающих и опытных — они помогут с нуля научиться программировать, разобраться во фреймворках и библиотеках, начать применять язык для веб-разработки и анализа данных, закрепить навыки на практике и углубить свои знания
8 компаний мирового масштаба, которые используют Python
В настоящее время существует более 500 языков программирования, и каждый день создаётся всё больше. Следует признать, что большинство из них частично совпадают, и большое их количество никогда не предназначалось для использования вне теоретических или лабораторных условий. Но, среди языков программирования, которые используются ежедневно в программировании и бизнесе, каждый делает свой выбор. Какие языки стоит изучать, и почему необходимо тратить свое время на их изучение?
Поскольку это сайт, посвященный Python, мы уже рассказывали вам, почему Python — отличный язык для изучения. И вы, вероятно, знаете о том, что Python является наиболее предпочтительным языком сценариев для Raspberry Pi (поскольку он является предустановленным). И, зная это, вы понимаете, какие удивительные вещи вы можете сделать с Raspberry Pi, проявив совсем немного изобретательности. А так как разобраться, в работе с Python, относительно несложно, вам может быть интересно, как он применяется в реальных компаниях и настоящих приложениях.
Теперь мы собираемся рассказать вам о восьми ведущих компаниях, которые, как вы понимаете, используют Python. Таким образом, вы можете увидеть, насколько большие возможности существуют для разработчиков на Python.
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 поддерживал 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 исключительно заинтересованы в 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 помогает их инженерам в этом процессе.

В 2016 году команда инженеров Instagram заявила, что они запускают крупнейший в мире Django-проект, полностью написанный на Python. Мин Ни, инженер-программист из Instagram, рассказал о своем опыте инженеринга на Python для этого проекта:
«Изначально мы решили использовать Python из-за его репутации, а также за простоту и практичность, которая хорошо согласуется с нашей философией «сделай простое в первую очередь»».
С тех пор команда разработчиков Instagram инвестировала время и ресурсы в поддержание жизнеспособности использования Python в огромном масштабе (~800 миллионов активных пользователей в месяц):
«Работая над созданием структуры эффективности веб-сервисов Instagram, мы уверены, что будем продолжать масштабировать инфраструктуру с помощью Python. Мы также стали больше инвестировать в сам язык Python и начинаем готовиться к переводу нашего кода на Python с версии 2 на 3».
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 использует Python в тех же сценариях, что и Spotify, полагаясь на этот язык для анализа данных на стороне сервера. Однакo, на этом они не остановились. Netflix позволил разработчикам программного обеспечения выбирать язык для написания кода и заметил значительный рост числа приложений на Python.
В ходе опроса выяснилось, что инженеры Netflix ссылаются на стандартную библиотеку, чрезвычайно активное сообщество разработчиков и богатое разнообразие сторонних библиотек, доступных для решения практически любой конкретной проблемы. Кроме того, поскольку Python очень прост в разработке, он стал основой во многих других сервисах Netflix.
Одно из основных мест, где используется Python — Central Alert Gateway. Это RESTful веб-приложение обрабатывает оповещения из любого места, а затем направляет их людям или группам, которые должны их видеть. Кроме того, приложение может подавлять повторяющиеся уведомления, которые уже были обработаны, и в некоторых случаях выполнять самостоятельные решения, такие как перезагрузка процесса или завершение чего-либо. Это приложение — огромное достижение для Netflix. Интеллектуальная обработка означает, что разработчики и инженеры не занимаются лишними вызовами.
Dropbox
Эта облачная система хранения использует Python в своем клиенте для ПК. Если у вас есть какие-либо сомнения по поводу того, как Dropbox вложился в Python, представьте, что в 2012 году им удалось убедить Гвидо ван Россума, создателя Python, покинуть Google и уйти в Dropbox.
Россум присоединился к Dropbox при условии, что он будет инженером, а не руководителем или даже менеджером. В первый год он смог реализовать систему, которая позволяет обмениваться данными с другими пользователями сообщества Dropbox. Несмотря на то, что многие библиотеки и внутренние компоненты Dropbox являются проприетарными и не имеют открытого исходного кода, компания выпустила весьма эффективный API, написанный на Python, который позволяет увидеть, как думают их инженеры. Вы можете прочитать между строк о том, какой огромный процент их кода на стороне сервера занимает Python, когда будете читать интервью с инженерами Dropbox.
Также интересно отметить, что, хотя программы на стороне клиента написаны на Python, они используют разные библиотеки на компьютерах Mac и Windows, чтобы обеспечить одинаковое взаимодействие. Это связано с тем, что Python не предустановлен в Windows, а в зависимости от вашего Mac, версия Python будет сильно отличаться.
Этот веб-сайт посетило 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!
Python для новичков: сферы применения и возможности
Как устроен Python, чем он хорош, а также кто, как и зачем использует его в работе. Гайд для программистов и интересующихся Python.


Иллюстрация: Wikimedia Commons / Pngwing / Annie для Skillbox Media

Евгений Кучерявый
Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Андрей Долгов
Backend-разработчик в VVDEV. Пишет на JavaScript, Python и C#.
Python — это скриптовый язык программирования. Он универсален, поэтому подходит для решения разнообразных задач и для многих платформ: начиная с iOS и Android и заканчивая серверными операционными системами.
Как и где применяется Python
Это интерпретируемый язык, а не компилируемый, как C++ или Java. Программа на Python представляет собой обычный текстовый файл. Код можно писать практически в любом редакторе или использовать специальные IDE:
- PyCharm — мощная среда разработки от JetBrains.
- Spyder — IDE, оптимизированная для работы в Data Science. Идёт в пакете с Anaconda.
- IDLE — стандартный текстовый редактор в составе языка.
- SublimeText — текстовый редактор с множеством плагинов.
- Visual Studio Code — популярный текстовый редактор от Microsoft.
Python можно встретить почти везде: в вебе, мобильных и десктопных приложениях, а также в играх. На нём пишут нейросети, проводят научные исследования и тестируют программы. Поговорим подробнее об основных сферах его применения.
Веб-разработка
Чаще всего Python используют в веб-разработке. Для него написано множество фреймворков: FastAPI, Flask, Tornado, Pyramid, TurboGears, CherryPy и, самый популярный, Django.
Ещё на Python пишут парсеры для сбора информации с веб-страниц. Делают это с помощью таких популярных библиотек:
- Scrapy — кросс-платформенная высокопроизводительная библиотека с большим сообществом пользователей.
- Beautiful Soup — простая и мощная библиотека для парсинга HTML- и XML-документов. Отличается хорошей документацией.
- Selenium — инструмент для автоматизации и тестирования онлайн-приложений, который позволяет имитировать работу браузера.

Научные исследования и машинное обучение
Благодаря лаконичности, простому синтаксису и богатому набору инструментов Python стал любимым языком учёных. Есть специальные библиотеки для Python, которые позволяют строить графики, проводить исследования и вычисления:
- SciPy — набор инструментов для научных вычислений.
- NumPy — расширение, которое позволяет оперировать матрицами и многомерными массивами.
- pandas — библиотека для аналитики данных.
- Matplotlib — библиотека для построения графиков различной сложности.
Также для Python есть множество свободных ML-инструментов:

Тестирование
Ещё одна область применения Python — автоматизация тестирования. Многие специалисты по автоматизации QA выбирают Python из-за его простоты. Он отлично подходит тем, кто имеет небольшой опыт в разработке приложений. Развитое сообщество, логичный синтаксис и удобочитаемость упрощают процесс обучения.
У Python есть простые фреймворки для модульного тестирования:
Десктоп-приложения
Хоть язык не компилируется, с его помощью всё же можно создать десктопные программы. Вот, например, небольшой список популярных приложений, которые написаны на Python:
- GIMP — визуальный редактор на Linux;
- Ubuntu Software Centre — центр приложений в ОС Ubuntu (один из дистрибутивов Linux);
- BitTorrent до шестой версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
- Blender — программа для создания 3D-графики;
- Ansible — механизм управления конфигурацией, позволяющий развёртывать многоузловое программное обеспечение;
- Mercurial — кросс-платформенный инструмент управления распределённым исходным кодом.
Мобильные приложения
Мобильная разработка на Python менее популярна. Для Android чаще используют Java, C#, C++ или Kotlin, а для iOS — Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент «Инстаграма»* для iOS написан на Objective-C, а сервер — на Python. Тем не менее у Python есть фреймворки для разработки кросс-платформенных мобильных GUI-приложений: Kivy и BeeWare.

Игры
Многие компьютерные игры полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
- Battlefield 2;
- World of Tanks;
- Civilization IV;
- The Sims 4;
- EVE Online.
Хоть Python позволяет писать пользовательские интерфейсы и работать с графикой, чаще всего на нём пишут скрипты — например, для взаимодействия персонажей, запуска сцен и обработки событий. На Python написан искусственный интеллект AlphaStar для StarCraft 2, способный победить сильнейших профессиональных игроков.

Какие компании используют Python
В основном Python используют стартапы и компании, которые разрабатывают крупные проекты. Вот лишь часть огромного списка его пользователей — крупных организаций:
- Google — использует язык в качестве компонента поискового движка.
- Dropbox — применяет Python для оптимизации серверной части и внешнего интерфейса.
- Spotify — использует Python для аналитики данных.
- «Инстаграм»*, «Фейсбук»* — используют в серверной части.
- BitTorrent — в компании построили на Python сеть peer-to-peer.
- Агентство национальной безопасности США — шифрует и анализирует разведданные.
- Esri — использует Python в качестве инструмента настройки геоинформационных программ.
- Pixar, Industrial Light & Magic — создают на Python анимационные фильмы.
- Intel, Cisco, HP, Seagate, Qualcomm и IBM — тестируют и анализируют рынок с помощью Python.
- NASA, Los Alamos, Fermilab, JPL — применяют язык в научных вычислениях.
Кроме того, Python используют в Positive Technologies, Houdini, Yahoo, Red Hat, Pinterest, Quora, VK и «Яндексе». Короче, Python есть практически в каждой компании.
Преимущества Python
Главное преимущество Python — его простота. Не нужно тратить месяцы на изучение сложного синтаксиса, как в C++, и переживать об утечках памяти. Язык всё сделает за вас.
Другие достоинства Python:
- Это интерпретируемый язык. До запуска программа на Python представляет собой обычный текстовый файл, который можно запустить на любой платформе, где установлен интерпретатор.
- Он отлично подходит новичкам. Python хорошо спроектирован и логичен. Для его изучения даже не нужно знать английский язык. Благодаря его простоте разработка идёт намного быстрее, потому что программист пишет меньше кода.
- У языка мощное сообщество. Сообщество пользователей Python настолько большое, что если вы столкнётесь с непонятной ошибкой, то, скорее всего, быстро найдёте её решение в интернете. Ведь до вас кто-то уже столкнулся с похожей и выложил решение на Stack Overflow.
Недостатки Python
А теперь перейдём к «ложке дёгтя»:
- Программы на Python — среди самых медленных. Приложения для iOS на Swift работают в 8,7 раза быстрее, чем на Python. Реализация PyPy по скорости близка к Java, но в ней есть не все возможности оригинального языка. Python не подходит для задач, требующих большого объёма памяти, — их лучше решать вставками на C или C++.
- Сильная зависимость языка от системных библиотек. Это затрудняет перенос приложений на другие системы. Чтобы решить проблему, придумали Virtualenv, но и у него есть недостатки: избыточность полных методов изоляции, костыли, дублирование системных библиотек.
- Global Interpreter Lock (GIL) не позволяет выполнять несколько потоков одновременно в реализации CPython. Однако GIL можно отключить на какое-то время, как это сделано в пакете NumPy.
- Динамическая типизация. «Вот это да! — скажете вы. — Разве динамическая типизация — это не круто»? С одной стороны — да, но именно из-за неё ошибки отображаются во время выполнения (runtime), а не компиляции (compile time).

Трудоустройство и средняя зарплата Python-разработчика
Популярность Python растёт уже больше восьми лет, язык часто занимает первые места в индексе TIOBE. Параллельно растёт и востребованность Python-разработчиков. Средняя зарплата «питониста» в России — 180 тысяч рублей. Правда, чтобы получать такую зарплату, нужно знать не только сам язык, но и его фреймворки и другие дополнительные технологии.

Нижняя зарплатная планка для начинающих разработчиков находится на уровне 30 тысяч рублей. Программисты со стажем от двух лет могут рассчитывать на зарплату в 100–150 тысяч рублей.
Зачастую на должность стажёра или младшего специалиста можно устроиться только в крупную компанию, а расположены они в больших городах вроде Москвы и Санкт-Петербурга. Из-за этого новичкам сложно найти работу в регионах — остаётся искать заказы на фрилансе.
Заключение
Язык программирования Python с каждым годом становится всё популярнее и востребованнее. Он отлично подходит для многих направлений разработки: от веба до тестирования и анализа данных.
Программы на Python гибкие, легко масштабируются, а для их создания не требуется содержать большую команду разработчиков. У языка простой и понятный синтаксис и мощное сообщество, которое его развивает и популяризирует.
* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».
Результаты опроса Python-разработчиков 2020
В октябре 2020 года мы в четвертый раз провели большой опрос Python-разработчиков в сотрудничестве с Python Software Foundation. Более 28 000 человек из почти 200 стран/регионов приняли участие в исследовании и помогли нам определить текущее состояние экосистемы Python.
Результаты опросов 2017, 2018, 2019 и 2021 годов.
Использование Python
Python в качестве основного и второстепенного языка
Для 85% участников опроса Python — основной язык программирования.
Использование Python с другими языками
Основной Второстепенный Совместно
Чаще всего в комбинации с Python используется JavaScript. Вместе с HTML/CSS, Bash/Shell и SQL он входит в топ языков, хотя бы один из которых используют совместно с Python 40% опрошенных.
JavaScript и C/C ++ — самые популярные основные языки среди тех, кто назвал Python второстепенным.
Инструменты для веб-разработки и Data Science
Диаграмма «Веб-разработка» построена на основе ответов тех, кто выбрал веб-разработку, отвечая на вопрос «С какой целью вы используете Python чаще всего?». На диаграмме «Анализ данных», собраны ответы тех, кто выбрал анализ данных и машинное обучение.
Только 8% пользователей Python, работающих с данными, не используют никаких дополнительных языков, и только 3% веб-разработчиков пользуются исключительно Python. 75% веб-разработчиков используют и Python, и JavaScript, что неудивительно.
Для чего используют Python
Мы спрашивали, с какой целью люди используют Python, какими видами разработки они занимаются и как совмещают разные варианты применения языка.
Для чего вы используете Python?
С какой целью вы используете Python?
Основной Второстепенный Совместно
Незначительные различия в цифрах за два года объясняются тем, что в этом году в опросе участвовало больше студентов (13% против 10%). Поэтому больше респондентов выбрали вариант «Образовательные цели», а на долю других областей применения языка пришлось меньше ответов.
Насколько активно вы занимаетесь следующими видами деятельности?
С какой целью вы используете Python чаще всего?
Основной Второстепенный Совместно
Вы считаете себя дата-сайентистом?
Только 32% Python-разработчиков, занимающихся анализом данных и машинным обучением, считают себя дата-сайентистами.
Они используют Anaconda для обновления версий Python в два раза чаще, чем остальные пользователи языка, которые предпочитают Python.org.
На вопрос отвечали только те, кто занимается анализом данных и машинным обучением.
Версии Python
Python 3 vs Python 2
Области применения разных версий языка
Версии Python 3
Установка и обновление Python
Пользователи Windows обычно устанавливают Python с сайта Python.org, тогда как пользователи Linux и macOS чаще используют пакеты, предоставляемые операционной системой, Docker-контейнеры или pyenv.
Способы изоляции окружения
Между инструментами изоляции окружения и IDE обнаружились интересные зависимости:
- Больше половины пользователей Jupyter Notebook и JupyterLab предпочитают Conda. А среди пользователей других редакторов доля Conda составляет меньше 20%.
- Пользователи Virtualenv и Docker чаще всего выбирают PyCharm Professional Edition.
- Среди тех, кто предпочитает Pipenv, наиболее популярны VS Code и PyCharm.
- Vim лидирует среди пользователей Vagrant и Poetry.
Возможности языка
За что любят Python
По результатам ответов на открытый вопрос «Какие три особенности Python нравятся вам больше всего?»
* Исключая стандартные библиотеки, встроенные структуры данных и выражения, которые мы вынесли в отдельные варианты ответа:
- Генерация списков
- Список и словарь
- Декораторы
- Asyncio, многопоточность, многопроцессорность
- Менеджеры контекста
- Лямбда-функции
** Другие характеристики, которые были отмечены
Что ждут от языка
По результатам ответов на открытый вопрос «Какие три языковые возможности вы хотите увидеть в Python больше всего?»
* Исключая улучшения стандартной библиотеки, которые мы вынесли в отдельные варианты ответа.
** Другие характеристики, которые были отмечены
Фреймворки и библиотеки
Веб-фреймворки
Мы впервые включили FastAPI в варианты ответа, и он сразу оказался на третьем месте по популярности.
Фреймворки и библиотеки для анализа данных
Пользователи NumPy чаще используют Conda для изоляции окружения, чем другие Python-разработчики (32% против 22%).
Фреймворки для юнит-тестирования
Использование фреймворков для юнит-тестирования коррелирует с профессиональным опытом. Начинающие Python-разработчики гораздо реже проводят юнит-тестирование.
Те, кто занимаются анализом данных и машинным обучением, используют тестовые фреймворки чаще, чем веб-разработчики и DevOps. А наиболее часто ими предсказуемо пользуются те, кто занимается тестированием ПО и написанием автоматических тестов.
Другие фреймворки и библиотеки
72% разработчиков, предпочитающих AWS, используют фреймворк Requests.
Tkinter и Pygame в основном выбирают молодые специалисты с опытом работы менее года.
ORM
Большинство Python-разработчиков, использующих Flask, предпочитают SQLAlchemy, а пользователи Django используют Django ORM.
Базы данных
PostgreSQL — самая распространенная база данных среди Python-разработчиков. Еще популярнее она среди пользователей AWS: ее предпочитают 65%.
Инструменты для работы с большими данными
Большинство пользователей инструментов для работы с большими данными предпочитают JupiterLab, особенно те, кто работает с Apache Spark и Dask. На втором месте — Jupyter Notebook, а PyCharm Professional чаще всего выбирают пользователи Apache Kafka.
Облачные технологии
Популярные облачные платформы
Heroku и PythonAnywhere популярны среди молодых специалистов с опытом работы до 2 лет. Более опытные Python-разработчики чаще выбирают AWS и DigitalOcean.
Как у вас реализовано выполнение рабочего кода в облаке?
Контейнеры — по-прежнему самый популярный способ запуска кода, а вот виртуальные машины понемногу сдают позиции: в 2020 году их использовали только 43% респондентов. Два года назад виртуальные машины были на первом месте с долей 47%.
Как вы разрабатываете облачные приложения?
Тестировщики составляют большинство тех, кто ведет разработку в контейнерах Docker.
Веб-разработчики значительно реже пользуются удаленными окружениями и виртуальными машинами, чем другие респонденты. Они предпочитают работать локально, пользуясь virtualenv.
Инструменты
Операционная система
Чем опытнее Python-разработчики, тем чаще они предпочитают работать в Linux и macOS и тем реже выбирают Windows.
Системы непрерывной интеграции (CI)
На этот раз первое место занимает Gitlab CI, опередив прошлогоднего лидера Jenkins/Hudson.
Тестировщики — самые активные пользователи систем непрерывной интеграции. Почти 80% респондентов, участвующих в тестировании ПО или написании автоматизированных тестов, используют CI-системы.
Инструменты управления конфигурацией
Редакторы и IDE
Основной Data Science Веб
Чтобы определить, какие IDE и редакторы наиболее популярны, мы задали вопрос, в котором можно было выбрать только один вариант ответа. Варианты, набравшие меньше 0,5% в 2019 году, объединены в группу «Другое».
Совокупная доля PyCharm Community и PyCharm Professional — 33%, что соответствует результатам прошлого года. VS Code продолжает расти, набрав за год 5%. Между тем, большинство текстовых редакторов, таких как Vim или Sublime Text, сдают позиции.
Jupyter Notebook, Jupiter Lab и Spyder привлекли больше пользователей из Data Science.
Среди пользователей VS Code примерно поровну веб-разработчиков и аналитиков данных.
А среди пользователей PyCharm веб-разработчиков почти вдвое больше, чем тех, кто работает с данными. Эта разница особенно заметна среди пользователей PyCharm Professional Edition.
Инструменты для Python-разработки
Большинство действий, перечисленных в этом вопросе, имеют явный сдвиг в пользу более опытных пользователей. Чем дольше люди в профессии, тем выше вероятность, что они будут использовать перечисленные технологии. Однако это не относится к опциональному указанию типов и автодополнению. Разработчики с более чем 11-опытом гораздо реже пользуются этими функциями, чем те, кто занимается программированием 3-5 лет.
Работа и занятость
В команде vs самостоятельно
Работа над проектами
Размер команды
Вид занятости
Размер компании
Сфера деятельности компании
Целевая отрасль
Рабочая роль
Опыт программирования на Python
Опыт профессионального программирования
Возраст
В какой стране/регионе вы живете?
Страны/регионы, которые указали меньше 1% респондентов, объединены в группу «Другое».
Исходные данные и методология
Хотите изучить данные самостоятельно? Скачайте анонимизированные ответы, чтобы провести собственный анализ. Делитесь выводами и наблюдениями в Твиттере с хештегом #pythondevsurvey и отмечайте @jetbrains и @ThePSF.
Прежде чем анализировать данные самостоятельно, обратите внимание:
Набор данных включает в себя ответы, полученные только через официальные каналы Python Software Foundation. После того как мы исключили дубликаты и ненадежные ответы, в наборе данных осталось 28 000 ответов, собранных с октября по ноябрь 2020 года за счет продвижения опроса на сайте python.org, в блоге Python Software Foundation, его аккаунтах в Твиттере и LinkedIn, а также через официальную рассылку Python и связанные с Python сабреддиты. Чтобы избежать искажения результатов в пользу определенного инструмента или технологии, для сбора ответов не использовались никакие каналы, связанные с какими-либо продуктами, сервисами и поставщиками.
Данные полностью анонимны и не содержат информации о респондентах и их местонахождении. Чтобы исключить вероятность идентификации респондентов по их комментариям, мы удалили все ответы на открытые вопросы.
Чтобы вам было проще понять логику опроса, мы делимся набором данных, вопросами и всей логикой анкеты. Мы использовали разные способы упорядочивания вариантов ответов (алфавитный, случайный и прямой). Порядок ответов указан для каждого вопроса.
JetBrains и Python Software Foundation благодарят всех, кто участвовал в опросе. Вы помогли нам составить актуальное представление об экосистеме Python.
Результаты опросов 2017, 2018, 2019 и 2021 годов.
Спасибо, что уделили время!
Если вам было интересно, поделитесь результатами исследования с друзьями и коллегами.
