От интернет-магазинов до марсохода: где применяется Python и почему изучать его в 2022 — перспективно?

Python — что это за язык программирования? Почему он популярен сегодня и в каких сферах используется? На эти и другие вопросы специально для блога Anywhere Club отвечает Lead Software инженер EPAM Юрий Зайцев.

Юрий Зайцев

Что значит Python?

— Простыми словами Python — это высокоуровневый язык программирования, на котором можно писать практически все. Первые наметки будущего Python появились еще в году 1989, релиз Python1.0 свет увидел в 1994-м. Нужно отметить, что он сильно отличался от Python 2.0, релиз которого случился в 2000-м, — рассказывает Юрий, — В версии 2.0 Python стал очень популярным языком программирования, быстро развивался. Текущая версия — Python 3.0 — вышла в 2008-м.

Для чего нужен язык программирования Python?

— В теории язык Python можно использовать в любых ситуациях, где нужен язык программирования: от разработки простого интернет-магазина до марсохода. Программное обеспечение дрона марсохода Perseverance Ingenuity разработано при помощи F Prime. Это многокомпонентный фреймворк для моделирования и разработки софта для космических аппаратов, разработанный NASA. Написан он на С++ и Python: в основном, конечно, на С++, но около 25% Python все же есть. В реальности использовать Python не всегда целесообразно.

В чем хорош язык Python?

— Сферы применения Python — разнообразны и многообразны. Основные направления я бы обозначил так:

Разработка back-end веб-приложений

Это интернет-магазины, онлайн-игры, стриминговые видео-сервисы, в качестве примеров можно привести Django, FastApi, Flask.

Решение научных и околонаучных задач

Таких, как расчеты, анализ данных их визуализация. Например, анализ генома, расчет траекторий полета космических тел, реализованные через Pandas, jupyter, Plotly.

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

Распознавание лиц, документов, прогнозирование продаж. Здесь круто себя проявили TensorFlow, Keras, PyTorch.

Автоматизация

Бизнес-процессы, производство, умный дом: посмотрите, как это сделано с помощью AirFlow, Luigi.

Встраиваемые системы

Бортовой компьютер автомобиля, робот-пылесос. Все подробности можно найти здесь: MicroPython.

Минусы пайтона назвать сложнее. Не бывает плохих языков программирования, бывает неправильное использование. Если попытаться что-то найти, то это будет разве что скорость. Из коробки CPython существенно уступает в производительности компилируемым языкам вроде Си, потому что более высокоуровневый.
Но:

  • Во-первых, большая скорость нужна не всегда.
  • Во вторых, популярные библиотеки для обработки данных, где производительность важна, обычно используют C-extensions и работают почти со скоростью Си.
  • В-третьих, есть разные решения вроде Cython, Numba, PyPy, которые вводят определенные ограничения, но позволяют сильно улучшить производительность.

Для чего Python не подходит и лучше поискать более подходящий инструмент?

Разработка front-end веб-приложений

Проекты вроде Pyodide позволяют исполнять исходный код на Python в браузере через WebAssembly, но пока что это скорее занятие для энтузиастов.

Мобильные приложения

Фреймворки вроде Kivy и BeeWare дают возможность разрабатывать полноценные приложения под Android и IOS, но это не слишком удобно и в отрасли не принято.

Разработка игр

Хотя игровые движки, поддерживающие Python, существуют (Panda3D, Сocos2d, PyGame), для AAA лучше выбрать С++. А вот визуальную новеллу написать вполне возможно.

Почему Python популярен?

  • Python используется в разных сферах — разработке, автоматизации тестирований, анализе данных, машинном обучении. Это значит, что хорошо разбираясь в Python, можно гибко строить карьеру и при необходимости переключаться между смежными областями.
  • Python лаконичен, элегантен и обладает очень простым синтаксисом. Программа, написанная на языке пайтон, часто читается как связный текст на английском языке. Можно быстро разобраться вязыке и начать работать.
  • Еще один плюс — легкость разработки. В силу простоты языка и большого количества готовых к использованию бесплатных модулей он позволяет писать и тестировать программы очень быстро. А быстро — значит дешевле. Поэтому Python часто выбирают в качестве основной технологии при старте проекта.
  • Какие крупные компании сегодня используют Python?

    Безусловно, существует огромное множество компаний во всем мире, которые используют Python, перечислю самые именитые:

    • Google применяет Python как один из основных языков программирования, Microsoft активно использует для веб-сервисов, Amazon применяет повсеместно.
    • Dropbox, Spotify, Instagram, Reddit — большей частью написаны на Python.
    • Netflix, Uber — написаны на Python не полностью, но используют его весьма активно.
    • В таких играх, как World of Tanks, EVE Online, на Python была написана серверная часть.

    Стоит ли начинать учить Python в 2022?

    — Сейчас Python популярен как никогда. В прошлом году язык вышел на первое место индекса TIOBE, обойдя С и Java. Он активно развивается, синтаксис расширяется, постепенно решаются «проблемы», с которыми Python часто ассоциируется — вроде низкой производительности.Открытых библиотек в PyPI все больше.

    Сколько времени занимает изучение Python?

    — Чтобы выучить базу, уйдет 3-4 месяца. Дальше желательно поработать «на подхвате» 3-6 месяцев, посмотреть, как все работает на практике.

    Что нужно сделать, чтобы начать разбираться в Python?

  • Чтобы начать разбираться в Python, нужно сперва привыкнуть к синтаксису, ознакомиться сфункционалом стандартной библиотеки и вникнуть в стандарты и соглашения — хотя бы PEP8. Не лишним будет подтянуть пробелы в основах алгоритмизации и парадигмах программирования — ООП будет достаточно.
  • Затем будет полезно разобраться в «батарейках» — сторонних библиотеках, доступных на PyPI. Досконально знать интерфейсы всех функций каждой готовой библиотеки, конечно, не требуется. Достаточно разбираться, какие популярные фреймворки существуют и в каких ситуациях они могут быть полезны.
  •  На десерт — базы данных (SQL/NoSQL) и облачные технологии (AWS/Azure/GCP). Хоть это и не обязательно, на практике большая часть enterprise проектов невозможно представить без их использования.
  • — Python сложно не любить: это очень лаконичный и простой язык, он быстро пишется и у него много «батареек». Но если вдруг он вам надоест, то, продолжая использовать Python, можно работать инженером по автоматизации тестирования, инженером по машинному обучению и даже аналитиком данных, — подводит итоги Юрий.

    Подробнее о Python можно узнать в выпуске АйТиБорода Shorts на YouTube-канале Anywhere Club.

    Появилось желание обсудить Python?

    Го в Discord