Необязательно быть айтишником, чтобы часто слышать слово «Python». Кажется, что скоро знать его нужно будет как третий иностранный. Рассказываем, что такое Python, кто его придумал, где его использовать в IT-сфере языке вместе с менторами курсов SkillFactory Семеном Березовским и Анной Агабекян.
Язык: Python
Год появления: 1994
Популярность (индекс TIOBE, март 2023): 1 место
Кратчайшая история создания 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 широко распространен во многих сферах: от системного администрирования до 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), предлагают покупки или агрегируют такси (Uber).
Кроме того, алгоритмы распознавания образов активно используются археологами, а ученые из DeepMind (стартап Google) написали на нем ИИ AlphaFold, решивший проблему биоинформатики, над которой человечество билось целых 50 лет.
Плюсы и минусы
Python — универсальный инструмент. Он был задуман как язык, который можно легко расширять, дописывая собственные модули и функции. Он может выполнять одни и те же действия на различных операционных системах без переписывания программ под них. Если раньше для работы с графикой, разными форматами файлов, системными и сторонними библиотеками требовалось изменение кода и модели программирования, то с Python эта необходимость отпадает.
Одно из главных преимуществ языка — низкий порог входа. Отсюда и большое сообщество питонистов, которое, если что, всегда поможет с вопросами. Один из главных недостатков — это высокоуровневый язык, поэтому у программирования на нем есть ограничения, например, по доступу к оперативной памяти или процессору.
Среди слабостей Python:
Производительность. Здесь Python проигрывает таким языкам, как C или C++, которые обычно используются для системного программирования и создания высокопроизводительных приложений.
Мобильные приложения. В разработке мобильных приложений Python используется не так часто, как Java, Swift или Kotlin. Существуют библиотеки для создания мобильных приложений на Python, например, Kivy, но широкого распространения в разработке они не нашли.
Не компилируется в машинный код. Это делает Python более универсальным, но в то же время снижает производительность по сравнению с кодом, написанным на компилируемом языке.
Читайте также: Какой язык программирования мне выбрать?
Сложно ли учить Python?
Анна Агабекян:
Впервые я познакомилась с Python, когда работала репетитором по программированию для школьников и детей. Мне кажется, что объяснение алгоритмов и синтаксиса на примере Python больше к подходит для старта программирования, чем, к примеру Pascal.
Главное для изучения языка — интерес, желание и наличие логического мышления. А еще практика, практика и еще раз практика — без нее никуда. Нужно посвящать кодингу каждый день, и представлять себя спортсменом, который готовится к чемпионату на тренировках.
У Python низкий порог входа, потому что его синтаксис более понятен для новичка, а сам код выглядит логично и лаконично. К недостаткам относятся простота языка (хотя, на первый взгляд, это преимущество). Так, у программистов, привыкших к простому синтаксису, часто возникают трудности при переходе на более сложные языки, такие как Java.
Семен Березовский:
C Python я познакомился, когда совсем исчерпал мотивацию программировать на PHP и думал, куда двигаться. Мой друг посоветовал мне этот язык. Это наверное самый легкий язык программирования, который я изучал или с которым работал. Как и любой другой язык, он требует логического склада ума и уверенных навыков обращения с компьютером. Лично мне в нем нравится разносторонность вкупе с простотой. После него учить языки намного проще, вы легко освоите на нем основы программирования.
Бонус: дзен Python
Разработчики языка Python придерживаются определенной философии программирования — «The Zen of Python». Тим Петерс, один из разработчиков Python и автор «Дзена Python», сформулировал ее принципы в виде 19 коротких афоризмов.
Афоризмы вписаны в так называемый PEP (Python Enhancement Proposals, предложения по улучшению Python). PEP — это документы, при помощи которых любой разработчик может предложить внести в язык правки. И еще в них задокументированы уже внесенные правки или рекомендаций (например, по оформлению кода).
Пасхалка: если выполнить команду «import this» в строке интерпретатора, то вы увидите эти тезисы философии Python. Вот они:
- Красивое лучше, чем уродливое.
- Явное лучше, чем неявное.
- Простое лучше, чем сложное.
- Сложное лучше, чем запутанное.
- Плоское лучше, чем вложенное.
- Разреженное лучше, чем плотное.
- Читаемость имеет значение.
- Особые случаи не настолько особые, чтобы нарушать правила.
- При этом практичность важнее безупречности.
- Ошибки никогда не должны замалчиваться.
- Если не замалчиваются явно.
- Встретив двусмысленность, отбрось искушение угадать.
- Должен существовать один — и, желательно, только один —очевидный способ сделать это.
- Хотя он поначалу может быть и не очевиден, если вы не голландец.
- Сейчас лучше, чем никогда.
- Хотя никогда зачастую лучше, чем прямо сейчас.
- Если реализацию сложно объяснить — идея плоха.
- Если реализацию легко объяснить — идея, возможно, хороша.
- Пространства имен — отличная штука! Будем делать их побольше!
Читайте также: Смена профессии. Как я освоила Python на карантине и теперь работаю в консалтинге
* Принадлежит компании Meta, деятельность которой признана экстремистской в России.