Обложка статьи «Для чего хорош Python?»

Для чего хорош Python?

Автор Алексей Морозов

Python хорош для всего, что хочется сделать быстро, но чтобы при этом всё нормально работало.

Потому что у него:

  • интуитивный синтаксис,
  • строгая динамическая типизация (то есть заранее думать о типе каждой переменной не надо, но случайно поделить число на строку язык всё-таки не даст),
  • почти нет непредсказуемого поведения.

Но самое главное преимущество — не в особенностях самого языка, а в огромном количестве библиотек на все случаи жизни —думать надо будет только про задачу, необходимые инструменты почти наверняка уже написаны. К тому же есть общепринятый инструмент для управления библиотеками (pip), который позволяет легко устанавливать их из репозитория вместе со всеми зависимостями.

Одноразовые скрипты

Самое простое, но распространённое применение — одноразовые скрипты для манипуляций с данными, конвертеры и прочие такие вещи. Да, не самый крутой софт в мире, но мелкие задачи типа «прочитать 200 Мб данных, отфильтровать записи и залить их в базу данных, а заодно посчитать базовую статистику и нарисовать график» или «отфильтровать файлы логов по дате создания, не соответствующие маске удалить, а все старше часа Ч заархивировать» возникают регулярно.

Прототипы

Cкорость и удобство разработки позволяют делать прототипы: например бот для ВКонтакте (автопостинг, удаление комментариев по блэклисту, отрисовка статистики сообщества прямо на аватарке) делается за час от поиска «VK API library python» до рабочего продукта. Начать писать такие мелочи можно буквально после пары уроков.

Бэкенд

При этом язык позволяет браться и за достаточно сложные проекты. На Python (Django, Flask и прочие фреймворки) пишется веб-бэкенд. Это уже не про мелкие скрипты, а про коммерческую разработку и большие проекты с командами. Ну и про трудоустройство, да. Python-бэкендщик с опытом Django/Flask без работы точно не останется. К тому же нативно поддерживается асинхронное программирование и есть быстрые асинхронные веб-фреймворки, такие как AIOHTTP или Sanic.

Data Science и машинное обучение

И, наконец, всякие хайповые штуки про data science и машинное обучение. Если заниматься машинным обучением всерьёз — то надо учить скорее математику, а не программирование, но поиграться с небольшой нейросеткой или собрать статистику своего паблика вполне можно по материалам из интернета. Первичный анализ данных в pandas, вычисления в NumPy/SciPy, машинное обучение в sklearn, нейросети в TensorFlow или PyTorch.

Если получится и захочется делать что-то более сложное — то почему нет, профессионалы в тех же самых библиотеках работают. Для перемалывания данных в промышленных масштабах существуют вещи вроде PySpark, позволяющие управлять распределёнными вычислениями на кластерах.

Data engineering

Отдельно стоит упомянуть data engineering, то есть промышленный подход к data science: не когда дата саентист на коленке набросал решение конкретной задачи, а когда опытный программист взял и превратил это в регулярный процесс поставки данных. Тут всё так же: легко писать скрипты и есть библиотеки для связывания буквально с любым Big Data инструментом — этого достаточно.

Вакансии в тему: