Python — универсальный язык программирования: он прост в освоении, а благодаря огромному набору библиотек, его можно применять далеко за пределами бэкенда. С помощью питоновских решений астрофизики исследуют чёрные дыры. Лингвисты — выясняют, у каких писателей богаче словарный запас. Врачи — анализируют рентгеновские снимки и предсказывают развитие болезни. Орнитологи смотрят, как меняются траектории полётов птиц. Python используется для создания компьютерных игр, нейросетей, скриптов для автоматизации различных задач.
Эксперт Евгений Бартенев, техлид и автор курса Python-разработчик, из «Яндекс Практикума» нашёл и поделился примерами, как Python помогает решать задачи не только в сфере IT.
Сегодня Python занимает чуть ли не первое место по количеству разработчиков: по данным inapps его используют не менее восьми миллионов человек по всему миру. Согласно индексам TIOBE и PYPL, на начало 2024 года, Python — самый популярный язык программирования. Такие результаты во многом обусловлены тем, что для него написан огромный набор библиотек с инструментами и готовыми решениями, которые можно применять без дополнительных настроек. В какой области вы бы не задумали проект, можете быть уверены, что пара библиотек на Python для него точно найдется. Его огромный его плюс также в том, что у этого языка программирования сравнительно простой и лёгкий синтаксис. Научиться писать несложный код на Python с нуля быстрее, чем на других языках.
Python на работе
Python часто называют скриптовым языком или языком сценариев. Он отлично подходит для автоматизации повторяющихся задач. Например, поиска и сбора данных в интернете, заполнения онлайн-форм, выгрузки статистики. Скрипты, написанные на Python за секунды справляются с работой, на которую требуется пара дней ручного труда. Например: дата-инженеру поручили найти взаимосвязи в большой таблице с товарами. На выполнение такой задачи, по его оценкам, требовалось два дня. Он использовал GPU-вычисления и библиотеку Numba и решил ее за 20 секунд.
Python — идеальный язык для гуманитариев. Часто его применяют для того, чтобы автоматизировать рутинные задачи не в IT.
Журналисты много работают с данными — и тратят на это дни, недели и месяцы. Python позволяет им не собирать данные вручную, а парсить из разных источников, а затем переводить в понятную инфографику. Знание Python — основа в дата-журналистике. Это направление, где статьи, спецпроекты и расследования строятся на анализе больших данных. Например, чтобы выяснить, кто и зачем приходит на Красную площадь, дата-журналисты Strelka Mag проанализировали 200 тысяч фотографий, опубликованных во ВКонтакте с соответствующий геометкой.
Маркетологи часто изучают Python, чтобы собирать данные из АPI ВКонтакте, Яндекс Директа, Яндекс Метрики, Google Analytics, Google Adwords, и создавать простые чат-боты для сбора обратной связи от клиентов в Telegram. Также они применяют Python в RFM-сегментации: это позволяет быстро подсчитать отток клиентской базы и определить сегмент пользователей, которые делают заказы чаще всего.
Python в быту
На Python можно быстро сделать цифровой календарь с напоминалками. Или простую нейросеть, которая предсказывает, когда закончатся продукты в холодильнике. Так, один инженер-программист оптимизировал полив комнатных растений, создав расписание полива и систему уведомлений по электронной почте.
Все, кто когда-либо учил иностранный язык при помощи популярных приложений, знают, что сервисы делают упор на повторение пройденного, но выдают мало новых слов. Здесь айтишник написал простой скрипт для ускоренного заучивания английских слов на основе словаря и карточек.
А школьный учитель с помощью питона разработал проект — лампу для слежения за фазами солнца, чтобы помочь детям наладить режим сна.
Python в научных вычислениях
Учёные много работают с данными: анализируют, агрегируют, строят предсказательные модели на их основе. Python с его библиотеками для научных вычислений стал полезен и здесь.
Например, в астрономических исследованиях. Это сфера, где постоянно нужно работать с большими данными. Отследить траектории небесных тел на годы вперёд, смоделировать гравитационные взаимодействия между несколькими планетами и звёздами, исследовать свойства чёрных дыр и не только: все эти задачи вполне возможно выполнить с помощью Python. Именно в записных книжках Jupyter (это интерактивный интерпретатор Питона, стандарт для исследователей данных) задокументированы открытие гравитационных волн в 2016 году и изображение чёрной дыры в 2019 году.
Применяют Python и лингвисты. Это логичное развитие сферы, где существуют огромные объёмы данных. Сложно вручную посчитать частоту определённых слов или их среднее количество в предложениях в тексте. Так, например, исследователи анализировали при помощи Python работы Эмерсона, Дикинсона и По на предмет лексического разнообразия. Победили стихи Дикинсона, выяснилось, что у него больше словарный запас и меньше неинформативных слов.
Python в медицине
В медицине ML-модели, созданные при помощи Python, используются в анализе рентгеновских снимков, КТ, или помогают предсказывать развитие болезни. Они выполняют роль помощника для врача. Сегодня многие больницы тестируют или постоянно используют такие решения. Например, в московских поликлиниках в 2020 году начали использовать специальный сервис на базе ИИ, который анализирует данные из электронной медкарты пациентов и помогает врачу поставить диагноз.
Подобные решения распространились в начале пандемии коронавируса. Разработчики вкладывали усилия в софт в помощь врачам, а больницы охотно брали тестировать. Например, исследователи научили нейросеть определять на рентгеновских снимках коронавирус при помощи библиотек Keras, TensorFlow и глубокого обучения (deep learning).
А российские студенты из ВШЭ в 2021 году разработали модели по расчёту вероятности наличия или отсутствия у человека признаков респираторных заболеваний по параметрам ЭКГ.
Python в разработке игр
Minecraft, Eve Online, Civilization, Sims, World of Tanks, Vampire: The Masquerade — это неполный список игр, в которых есть питоновский код. В последние годы Python стал чаще использоваться в разработке игр, однако по-прежнему его популярность в геймдеве значительно ниже, чем у C++ и C#. На них написаны Unreal Engine и Unity — наиболее популярные движки для создания современных компьютерных игр. И собственные игровые движки также пишутся крупными разработчиками, в основном на этих языках.
Python обычно выступает вспомогательным инструментом, например, для написания отдельных частей игры. Так в Battlefield 2 он применялся для скриптинга игровой логики, включая механики поведения AI, создания игровых сценариев и управления мультиплеерными сессиями, в World of Tanks — для скриптинга клиентской и серверной частей.
Библиотека Pygame позволяет создавать 2D игры и в процессе обучаться программированию. Например, на курсе по Python Яндекс Практикума в рамках одного из первых заданий студентам нужно написать проект-игру «Изгиб питона». Это вариант классической змейки с использованием Pygame.
Фреймворк Panda3D предоставляет инструменты для создания графики, анимации, физики, звука в 3D-приложениях и имеет интеграцию с питоном, что делает его популярным выбором для разработчиков игр. RenPy — специализированный движок для создания текстово-графических игр с полной поддержкой Python. Это популярный выбор для создания визуальных новелл. Godot — движок для создания игр, поддерживающий скрипты на Python: предоставляет удобный редактор сцен, систему управления ресурсами и множество инструментов для создания как 2D, так и 3D игр.
Python в программировании нейросетей
Весьма популярен Python и в программировании нейросетей. MidJourney и ChatGPT разработаны преимущественно на нём. В машинном обучении Python — явный лидер и обгоняет по популярности Java, C++, R и все остальные языки.
Опять же с помощью библиотек, простейшую нейросеть на Python можно написать за 10 минут. Она будет состоять из 5-10 строчек кода и сможет решать реальные задачи, например, анализировать реакцию читателей на блог. Предсказывать отток клиентов в летний сезон. Или рост стоимости жилья. Несмотря на эту лёгкость в использовании, за этими строками стоят сложные процессы и много строк кода. Так как чудес не бывает и готовые решения — это код, который кто-то до этого написал.
Большие проекты в ML с помощью Python могут ответить на вопросы, над которыми десятилетиями бьются учёные. Пример: орнитологи отслеживают миграционное поведение птиц. Траектории полётов — это данные, которые трудно анализировать вручную. Python может помочь здесь. Например, при помощи нейросети DeepHL (написанной на Python), ученые провели исследование и сравнили траектории полётов морских птиц. Это облегчило им работу с новыми гипотезами.
Насколько востребован Python
Чтобы выяснить, насколько популярен Python, мы проанализировали вакансии.
Вакансии для не разработчиков со знанием Python
Почти треть вакансий для не разработчиков — это SRE/DevOps/сисадмины. Также среди популярных профессий — инженеры и администраторы Linux, ИИ-инженеры и специалисты по кибербезопасности.
Несколько менее популярными являются вакансии инженера встраиваемых систем, промпт-инженера, биоинформатика и архитектора облачной инфраструктуры.
Вакансии для разработчиков со знанием Python
Здесь лидируют специалисты по разработке и оптимизации инфраструктуры, но в целом распределение по вакансиям более равномерное, чем у не разработчиков.
Сегодня многие популярные сервисы построены на Python: Spotify использует его для создания индивидуальных плейлистов на основе анализа собранных данных. Netflix с каждым годом становится всё более ориентированным на питон, потому что это один из самых удобных языков для машинного обучения. YouTube также частично написан на Python.
Универсальность и гибкость Python позволяет использовать его в разных сферах. И это видно по появляющимся вакансиям, среди которых наблюдается рост спроса на специалистов со знанием этого языка.
Python также продолжает развиваться благодаря множеству активных и открытых сообществ разной направленности, где собираются кодеры со всего мира и обмениваются опытом. Например, участники NHS Python выступают за использование питона в сфере здравоохранения. В группах состоят не только опытные разработчики, но и много новичков, которым всегда готовы помочь и ответить на их вопросы.