10 мифов о Python
Если вы слышали о Python только от бабушек возле подъезда, вам срочно нужна прививка от популярных мифов.
vlada_maestro / shutterstock
Признаемся, что статья о мифах — лишь прикрытие для настоящего разоблачения. Так что сейчас будет шок-контент. Одного змеиного названия языка достаточно, чтобы сразу смекнуть: Python создан исключительно для установления нового мирового порядка. Рептилоиды, мировая закулиса, Луна с Сатурном в качестве вселенского ретранслятора, все эти «понятный и лаконичный язык» (см. Миф 8), «красивый стиль» (см. Миф 7) — просто пытаются сбить нас с толку. И что бы там ни говорил Гвидо ван Россум о названии своего языка программирования (см. Миф 4), мы-то с вами всё понимаем…
Миф 1. Миф о мифах
Начнём с самых нелепых мифов — и это будут мифы о мифах. Почему-то авторы многих статей «N мифов о Python» наперебой твердят: «Python считают дорогим, но на самом деле это бесплатный язык», «На Python-программистов маленький спрос». Простите, но это какая-то коллективная галлюцинация. То ли вы опрашиваете людей, которые, кроме платного Бейсика, ничего не использовали, то ли опираетесь на исследования 91-го года, когда Python действительно не был так популярен.
Как можно считать непопулярной технологию, о которой пишут столько книг, статей, выпускают подкасты, проводят вебинары? Кажется, скоро даже в маршрутках и на рынках вместо «Чёрных глаз», Лободы и «Бутырки» будут играть аудиоуроки по Python.
Про дороговизну и вовсе забавно — авторы как мантру повторяют: «Нет, что вы, Python — бесплатный язык программирования». А кто-то может с ходу назвать платный язык? Они вообще существуют в природе? Ну да, бывают проприетарные компиляторы или среды разработки (IDE). Но вы когда-нибудь слышали жалобы вроде «Купил книгу по C++, и оказалось, что надо ещё заплатить за компилятор — иначе язык не выучишь»?
Вывод: Похоже, два этих мифа добавляют в подборки только потому, что не хватает пары пунктов для круглого числа в заголовке. Мы честнее, и закрыли ими только один пункт.
Миф 2. Python не поддерживает параллелизм
Параллелизм — это когда две задачи выполняются практически одновременно. То есть параллельно :) По умолчанию Python действительно не поддерживает параллелизм, зато есть Python-фреймворки Twisted и Gevent, а также отдельные реализации языка — например, PyPy и Stackless. У них в настройках есть опции, которые включают параллелизм. Для этого есть два инструмента: процессы и потоки.
Процесс — это специальный фрагмент программы с выделенным местом в памяти, который помогает оптимизировать выполнение инструкций программы в ЦП. Внутри процесса может быть несколько потоков.
Поток — это фрагмент кода внутри процесса. Потоки внутри одного процесса пользуются одним и тем же кусочком памяти. Многопоточность обеспечивает параллелизм в Python эффективнее, чем процессы.
Вывод: Всё не так сложно, как с котом Шрёдингера. Но в стандартной, из коробки, реализации Python параллелизма нет.
Миф 3. Python медленный
И это правда! В тестах Python показывает достаточно слабые результаты — особенно по сравнению с C++ и Java. Скорость выполнения может быть ниже в десятки раз. Выигрывает он только у тяжеловесов вроде JavaScript или Ruby. Но кому нужна эта ваша скорость исполнения программы, когда есть такие мощные компьютеры? Конечно, писать на Python новую операционную систему — глупо. Зато он неплохо выигрывает в скорости разработки — у языка лаконичный и понятный синтаксис, компактный код. То, что на Python уместится в пару десятков символов, на С++ может занять пару страниц.
А теперь подумайте, сколько времени у программистов уходит на набор кода и сколько бизнес недополучает из-за долгой разработки. Так что посредственная скорость выполнения (пользователь это вряд ли почувствует) с лихвой компенсируется скоростью разработки и экономией. А ещё код на Python гораздо легче читать и редактировать — а чуть ли не большую часть времени программист читает и правит чужой код, а не пишет свой.
Вывод: Python выполняется медленнее многих языков, зато разработка на нём идёт быстрее.
Миф 4. Python назван в честь змеи
Каа, бандерлоги, Каа и Маугли — это прекрасно и романтично, но, несмотря даже на логотип в виде змейки, который мелькает даже на официальных сайтах, Python назван в честь британского скетч-шоу «Летающий цирк Монти Пайтона». И кстати, произношение «питон» — это так «a la russe», mes chers jeunes programmeurs (ме шер жён программёр).
Это легендарное шоу любят разработчики во всём мире и интеллектуалы, а в комедийную группу входил Терри Гиллиам, режиссёр «12 обезьян», «Страха и ненависти в Лас-Вегасе» и «Воображариума доктора Парнаса». И именно оттуда пошло слово «спам» в современном значении — навязчивая, ненужная реклама.
Вывод: Скорее включайте VPN, идите на торрент-трекеры и качайте «Летающий цирк» — это главный шаг на пути в ИТ :)
Миф 5. Python — молодой язык программирования
А вот это точно неправда. Первый релиз языка вышел 20 февраля 1991 года — за 4 года до появления Java, PHP и JavaScript.
Вывод: Тут вроде бы всё очевидно :)
Миф 6. Python — исключительно язык скриптов
Да сколько ж можно! Python давно уже не просто язык сценариев, как эти ваши Perl или Bash. На нём пишут веб-приложения, мобильные приложения, программы для настольных компьютеров. На нём написаны многие части YouTube, Dropbox или Facebook*. Но как скриптовый язык он тоже широко используется — например, в Power BI, Blender, Maya.
Отдельная область применения Python — научные вычисления, маркетинг и машинное обучение. Здесь он используется очень активно. Достаточно зайти на Ozon и посмотреть, о чём пишут в книгах про Python или какие языки программирования предлагают использовать в курсах по AI или маркетингу — Python здесь практически нет равных.
Вывод: Python — полноценный, универсальный и мощный язык программирования.
Миф 7. Эти ваши пробелы хуже, чем фигурные скобки
Python структурирует и задаёт иерархию кода через пробелы, а в большинстве языков для этого используются разного вида скобки. На деле же это помогает сэкономить время (скобки приходится печатать!) и вынуждает программиста писать чёткий и читабельный код. Например, в Java или C++ отступы считаются правильным стилем — но кому какое дело, если надо пахать, дедлайн был уже вчера, а тимлид разогревает паяльник. Главное ведь, чтобы работало.
Вывод: Фэшн — из Пайтон девелопер’s профешн.
Миф 8. Вы можете выучить Python за 24 часа
Даже если иметь в виду не одни сутки, а чистое время на изучение — всё равно нет. Это всё же ИТ, серьёзные продукты и зарплата $300k в секунду. Но Python действительно очень приятный и простой для изучения язык. Плюс он сразу учит новичка хорошему стилю (см. Миф 6) и краткости — а это важный навык для программиста.
Вывод: За 24 часа вы сможете изучить основные операторы и функции Python — гораздо больше, чем во многих других популярных языках программирования.
Миф 9. Python — универсальный язык, он подходит для всех типов программ
Python-то, конечно, универсальный язык, но вот писать на нём все типы программ — неразумно. Так же, как и на любом другом языке. Python хорош в веб-разработке, работе с AI и Machine Learning, создании сценариев, обработке текстов и массивов информации. Но писать на нём операционные системы или какие-то критически важные части программ не стоит. Также Python — не лучший выбор для игр (писать их можно, но чаще всего выглядят они так себе), космических кораблей, бортовых компьютеров.
Ещё у Python довольно скудные возможности для создания графических интерфейсов — зато он кроссплатформенный и программа будет выглядеть и работать одинаково на Mac, Linux, Windows, Raspberry Pi и так далее.
Вывод: Мечтаете о космосе и хотите когда-нибудь сказать легендарное «Хьюстон, у нас проблемы» — учите C и C++.
Миф 10. А его нет
Уж простите, но надо же было как-то дотянуть до десятки — кто же станет публиковать какие-то жалкие девять мифов? Десять — другое дело: солидно, академично и просто прелесть!
Вывод: Учите Python, и будет вам счастье (но не сразу).
Авторы подборок с мифами о Python разбивают ещё много разных фактов: мол, его нельзя использовать для больших проектов, у него проблемы с безопасностью и поддержкой, он не компилируется. Но все эти «мифы» больше похожи на выдумки журналистов. Python уже давно доказал свою состоятельность и снискал популярность как среди технарей, так и среди представителей бизнеса.