Кому и для чего нужен Python?

Простой и популярный инструмент для широкого применения

Python — язык с низким порогом входа и нотками дзен-буддистской философии. Он нужен не только разработчикам: математики и физики оптимизируют с помощью него работу с данными и графикой, дизайнеры могут писать на нем скрипты в 3D-редакторе, а архитекторы генерировать сложные структуры. Он нужен во всех IT-сферах: от системного администрирования до Data Science, но главное — его совсем несложно выучить. Рассказываем, что еще нужно знать о языке вместе с менторами курсов SkillFactory Семеном Березовским и Анной Агабекян.

Язык: Python

Год появления: 1994

Популярность (индекс TIOBE, март 2021): 3 место

Приветствие и возведение двойки в степень от 0 до 16 (чтобы продемонстрировать минимальным количеством кода некоторые особенности языка)

Кратчайшая история создания Python

Сотрудником Центра математики и информатики Гвидо ван Россум начал работать над Python в конце 1980-х годов в Нидерландах. Предназначение языка, по задумке автора повышение продуктивности разработчиков С и С++ в тех случаях, когда их «родные» языки неэффективны. Язык должен был стать для них вторым, более простым инструментом в решении задач, которые можно решить один раз и потом автоматизировать. При этом Python также удалось развить концепцию своего предшественника, ABC, и стать языком, которому было легко обучить пользователей недавно появившихся персональных компьютеров.

Параллельно с созданием языка Гвидо ван Россум читал сценарии британского комедийного сериала BBC 70-х годов «Летающий цирк Монти Пайтона». Нидерландец хотел придумать для своего детища короткое, уникальное и немного загадочное имя — подошло название любимого сюрреалистичного скетч-шоу. В FAQ языка говорится, что для разработки на Python вовсе не обязательно разделять эту любовь к абсурдному британскому юмору (однако она может помочь).

Python стал быстро распространяться в сообществе новоявленных разработчиков благодаря своей простоте, что принесло Гвидо ван Россуму широкую известность. После он успел поработать с такими гигантами, как Google и Dropbox, и вышел на пенсию, перестав быть «великодушным пожизненным диктатором» проекта (это прозвище — должность, в шутку присвоенная ему коллегой на заре становления Python-сообщества). Пенсия продлилась недолго — в конце 2020 года он объявил в своем твиттере, что присоединился к подразделению разработки компании Microsoft.

А мне нужен Python?

Семен Березовский: «В первую очередь, популярность Python касается, конечно же, машинного обучения и работы с большими данными. В этих областях Python зарекомендовал себя как один из лучших инструментов. Во-вторых, это конечно же веб-приложения. Все мы используем тот же Instagram, написанный на Django, — фреймворке для разработки веб-приложений на Python (который и сам написан на Python).

Python популярен в веб-разработке, поскольку прекрасно подходит для небольших и средних проектов: авторы стандартной библиотеки и многочисленные разработчики Python-сообщества создали пакеты для работы с популярными форматами данных: почтой, базами данных, графикой, сетью и вебом. В то же время, Google использует его для поиска (на Python написан ИИ RankBrain, ранжирующий поисковую выдачу), на нем работает YouTube, Reddit и Dropbox. Fullstack-разработчик, который знает React или Angular для создания пользовательских интерфейсов, может в одиночку написать полноценный сайт, сервис или бизнес-приложение. Бизнес-логика, взаимодействие с базой данных, API — для их реализации подойдут разные языки, и выбор разработчика может пасть на Django, FastAPI или другой популярный и мощный фреймворк на Python.

Python нужен не только программистам: у математиков и физиков язык популярен, потому что делает более удобной работу с графикой и многомерными данными и их анализ; при этом специализированные библиотеки содержат модули на C для большего быстродействия. Помимо применения в научной визуализации, Python также очень сильно облегчает работу дизайнерам: на Python можно писать скрипты в редакторе 3D-графики Blender, автоматизируя все — от рисования моделей до анимации. В другом редакторе для трехмерной графики Rhino архитекторы могут генерировать с его помощью различные сложные структуры.

Анна Агабекян: «Python широко распространен во многих сферах: от системного администрирования до Data Science. Особенно в данный момент он популярен в Data science, машинном обучении, анализе данных и визуализации».

Как и было задумано Гвидо ван Россумом, язык повсеместно используется для автоматизации. На многих компьютерах он установлен по умолчанию и конкурирует с Bash на Linux и PowerShell в Windows в удобстве написания скриптов для выполнения рутинных действий по администрированию операционной системы. Сценарии для компьютерных игр World of Tanks и EVE Online или графических редакторов Blender и GIMP тоже пишутся на нем.

Основные области использования:

— скрипты для игр (World of Tanks, EVE Online);

— веб- и мобильные приложения (Instagram, Reddit, Dropbox);

— Data Science (машинное обучение, аналитика);

В работе с большими данными, машинным обучением и нейросетями по популярности и удобству у Python, кажется, нет равных. С его помощью техногиганты анализируют предпочтения в кино (Netflix) и музыке (Spotify), предлагают покупки (Amazon) или агрегируют такси (Uber).

Кроме того, алгоритмы распознавания образов активно используются археологами, а ученые из DeepMind (стартап Google) написали на нем ИИ AlphaFold, решивший проблему биоинформатики, над которой человечество билось целых 50 лет.

Плюсы и минусы

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

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

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

Сложно ли учить Python?

Анна Агабекян: Впервые я познакомилась с Python, когда работала репетитором по программированию для школьников и детей. Мне кажется, что объяснение алгоритмов и синтаксиса на примере Python больше к подходит для старта программирования, чем, к примеру Pascal.

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

У Python низкий порог входа, потому что его синтаксис более понятен для новичка, а сам код выглядит логично и лаконично. К недостаткам относятся простота языка (хотя, на первый взгляд, это преимущество). Так, у программистов, привыкших к простому синтаксису, часто возникают трудности при переходе на более сложные языки, такие как Java”.

Семен Березовский: «C Python я познакомился, когда совсем исчерпал мотивацию программировать на PHP и думал, куда двигаться. Мой друг посоветовал мне этот язык. Это наверное самый легкий язык программирования, который я изучал или с которым работал. Как и любой другой язык, он требует логического склада ума и уверенных навыков обращения с компьютером. Лично мне в нем нравится разносторонность вкупе с простотой. После него учить языки намного проще, вы легко освоите на нем основы программирования».

Курс 

Fullstack-разработчик на Python

Освойте программирование и разработку на Python с нуля. После обучения наш карьерный центр поможет вам подготовиться к собеседованию и предложит несколько вакансий на выбор. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

Бонус: дзен Python

Разработчики языка Python придерживаются определенной философии программирования — «The Zen of Python». Тим Петерс, один из разработчиков Python и автор «Дзена Python», сформулировал ее принципы в виде 19 коротких афоризмов.

Афоризмы вписаны в так называемый PEP (Python Enhancement Proposals, предложения по улучшению Python). PEP — это документы, при помощи которых любой разработчик может предложить внести в язык правки. И еще в них задокументированы уже внесенные правки или рекомендаций (например, по оформлению кода).

Пасхалка: если выполнить команду «import this» в строке интерпретатора, то вы увидите эти тезисы философии Python. Вот они:

  1. Красивое лучше, чем уродливое.
  2. Явное лучше, чем неявное.
  3. Простое лучше, чем сложное.
  4. Сложное лучше, чем запутанное.
  5. Плоское лучше, чем вложенное.
  6. Разреженное лучше, чем плотное.
  7. Читаемость имеет значение.
  8. Особые случаи не настолько особые, чтобы нарушать правила.
  9. При этом практичность важнее безупречности.
  10. Ошибки никогда не должны замалчиваться.
  11. Если не замалчиваются явно.
  12. Встретив двусмысленность, отбрось искушение угадать.
  13. Должен существовать один — и, желательно, только один —очевидный способ сделать это.
  14. Хотя он поначалу может быть и не очевиден, если вы не голландец.
  15. Сейчас лучше, чем никогда.
  16. Хотя никогда зачастую лучше, чем прямо сейчас.
  17. Если реализацию сложно объяснить — идея плоха.
  18. Если реализацию легко объяснить — идея, возможно, хороша.
  19. Пространства имен — отличная штука! Будем делать их побольше!

Текст: Александр Белозеров
Эксперты: Семен Березовский, Анна Агабекян

Блог SkillFactory
Добавить комментарий