Содержание

Почему Python не станет языком программирования будущего, даже если сейчас популярен — Разработка на vc.ru

Команда Mail.ru Cloud Solutions перевела колонку Rhea Moutafis «Why Python is not the programming language of the future». Автор перевода не всегда разделяет мнение автора статьи.

136 799 просмотров

Python появился в мире программирования довольно давно, но с начала 2010 годов переживает бум — он уже обогнал по популярности C, C#, Java и JavaScript. До каких пор будет сохраняться тенденция роста, когда Python заменит какой-то другой язык и почему?

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

Что делает Python популярным прямо сейчас

Популярность языка программирования можно отследить по динамике количества тегов на самом востребованном у разработчиков ресурсе — Stack Overflow. Так, судя по графику, рост Python начался с 2010 года, а стремительным он стал в 2015 году. В то время как R в течение последних нескольких лет находится на плато, а многие другие языки находятся в упадке. У такой популярности Python есть причины.

Популярность языков программирования на Stack Overflow

Время существования

Python можно смело назвать довольно старым языком — он появился в 1991 году, то есть практически 30 лет назад. За это время он постепенно собрал вокруг себя большое сообщество.

Если у вас появится какая-то проблема с этим языком, то решить ее, скорее всего, получится примитивным поиском в Google — наверняка кто-то уже опубликовал мануал с алгоритмом и примером кода.

Простота

Python можно смело рекомендовать как первый язык программирования. И дело не только в том, что он существует давно и поэтому по нему есть много хороших учебников. У него понятный синтаксис, похожий на обычный, «человеческий» язык. и еще он прощает ошибки.

Например, в нем не нужно указывать тип данных, достаточно просто объявить переменную. Из контекста Python поймет, является ли она целым числом, числом с плавающей запятой, логическим значением или чем-то еще. Это огромное преимущество для начинающих.

Если вам когда-либо приходилось программировать на C++, вы знаете, как это печально, когда программа не компилируется только потому, что вы где-то поменяли число с плавающей точкой на целое число.

Код Python довольно просто читать. Просто сравните синтаксис Python и C++.

Универсальность

Python существует так долго, что разработчики смогли сделать специальные библиотеки практически для любых целей. Например:

  • Для многомерных массивов и высокоуровневых матриц используйте NumPy.
  • Для расчетов в инженерном деле подойдет SciPy.
  • Для исследования, анализа и манипулирования данными попробуйте Pandas.
  • Для работы с искусственным интеллектом изучайте Scikit-Learn.

Если вам нужно решить какую-то вычислительную задачу, вероятно, что для нее уже есть специальная библиотека Python. Это позволяет языку оставаться в тренде последние годы, что видно по всплеску его использования в машинном обучении.

Недостатки Python, которые могут уничтожить этот язык

Вот недостатки, которые могут стать критичными для развития Python как самого популярного языка в будущем.

Скорость

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

Python может выполнять только одну задачу за раз, как раз из-за того, что язык должен проверить тип данных. Параллельные процессы всё испортят. Для сравнения, обычный веб-браузер может запустить несколько десятков различных потоков одновременно.

Конечно, вы можете возразить — кого сейчас волнует эта скорость, ведь компьютеры и серверы стали такими мощными, что в итоге «медленно» означает выбор между загрузкой приложения за 0,01 секунды или 0,001 секунды. Действительно, конечному пользователю нет разницы.

Области видимости

В Питоне используются динамические ограничения видимости. То есть для оценки выражения компилятор сначала ищет текущий блок, а затем последовательно все вызывающие функции.

Проблема такого подхода в том, что каждое выражение должно быть протестировано в каждом возможном контексте. Это, мягко говоря, утомительно и долго. Поэтому современные языки программирование используют в основном статическую область видимости.

Питон пытался перейти к статической области видимости, но ничего не вышло. Обычно внутренние области видимости — например, функции внутри функции — могут видеть и менять внешние области видимости. В Python внутренние области могут только видеть внешние области, но не менять их. Такой подход приводит к путанице.

Лямбда-функции

Несмотря на всю гибкость, использование лямбд в Python ограничено. Они могут быть только выражениями (expressions), но не инструкциями (statements). С другой стороны, объявления переменных и statements и есть инструкции. Проще говоря, добавление statements сделает лямбду многострочной, а синтаксис Python не позволяет так сделать.

Это различие между expressions и statements довольно произвольно, и не встречается в других языках.

Пробелы

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

Другие языки, например C++, больше полагаются на фигурные скобки и точки с запятой. И пусть это не так визуально комфортно для новичков, зато делает код намного удобнее для поддержки. Для больших проектов это намного важнее.

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

Пробелы делают код более читаемым, но менее удобным в сопровождении Irvan Smith на Unsplash

Мобильная разработка

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

В Python такая возможность как бы есть — пакет под название Kivy. Но нужно учитывать, что Python не был создан для мобильных устройств. Использовать его можно, результат будет даже приемлемым, но зачем, когда можно взять более подходящий язык, созданный для разработки мобильных приложений. Например, фреймворки для кроссплатформенной мобильной разработки: React Native, Flutter, Iconic и Cordova.

Если вы планируете стать всесторонне развитым разработчиком, только знания Python недостаточно.

Ошибки во время выполнения (Runtime Errors)

Скрипты в Python компилируются каждый раз во время выполнения, вместо того, чтобы сначала компилироваться, а уже затем выполняться. Поэтому любая ошибка проявляется во время выполнения кода.

Это приводит к низкой производительности, временным затратам и большому количеству тестов. Тесты — это замечательно, особенно для новичков. Но для опытных разработчиков такая необходимость воспринимается как минус и приводит к нехватке производительности.

Что может заменить Python в будущем

На рынке языков программирования есть несколько его конкурентов:

  • Rust — в нем так же, как и в Python, переменная не может быть случайно перезаписана.
    Но за счет концепции владения и заимствования в Rust решена проблема с производительностью. Кстати, именно Rust разработчики называют самым любимым языком.
  • Go стоит рассматривать начинающим разработчикам. Он довольно прост в освоении, поддерживать код тоже не трудно. Плюс разработчики на GO сейчас одни из самых высокооплачиваемых.
  • Julia подходит для крупномасштабных технических вычислений. Раньше для этого нужно было использовать Python или Matlab плюс библиотеки C++. После выхода Julia потребность в жонглировании языками отпала.

На рынке есть масса других полезных языков, но именно эти три закрывают слабые места Python. Rust, Go и Julia подходят для инновационных технологий, особенно для искусственного интеллекта. Сейчас их доля на рынке еще невелика, судя по тегам Stack Overflow, но тенденция роста уже есть.

Динамика роста на Stack Overflow

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

Какой из языков это будет — Rust, Go, Julia или новый язык будущего — пока трудно сказать Но учитывая проблемы с производительностью, которые являются основополагающими в архитектуре Python, каждый из новых языков найдет свое место.

Что еще почитать по теме:

  • Язык Golang на пике популярности у IT-компаний.
  • Необычный подход к автотестам для JavaScript и UI.
  • Наш канал об IT в Телеграме.

Почему Python стал популярным языком программирования

В 2022 году Python возглавил список самых популярных языков программирования по данным индекса TIOBE, опередив таких гигантов, как Java и C++.

Именно с изучения «питона» начинают свой путь в программировании начинающие пользователи, а профессионалы используют его для решения широкого спектра задач — от научных исследований до веб-разработки и искусственного интеллекта.

Что сделало Python таким популярным, и какие факторы повлияли на его успех? В этой статье мы исследуем историю развития этого языка программирования, а также оцениваем перспективы в различных областях IT.

Примечание: это — статья, написанная человеком. Ранее у нас уже выходила статья на эту тему, написанная ChatGPT.

История языка Python

Язык программирования Python создал Гвидо ван Россум, нидерландский программист. Он начал работу над языком в конце 1989 года. Первая официальная версия Python 0.9.0 была опубликована в феврале 1991 года.

Вот краткая история развития языка за прошедшие десятилетия:

1990-е годы: Разработка и выпуск Python 0.9.0 (февраль 1991) и Python 1.0 (январь 1994).

  • Простой и понятный синтаксис привлекает программистов, ищущих альтернативу языкам, таким как Perl и C.
  • Формируется и растет сообщества разработчиков, которые активно участвуют в разработке и совершенствовании языка.
  • Появляются первые сторонние библиотеки и инструменты, такие как Numeric, для научных вычислений.

2000-е годы: Выпуск Python 2.0 (октябрь 2000) с новыми функциями, такими как поддержка Unicode и сборка мусора.

  • Улучшены производительность и стабильность языка.
  • Разработаны и выпущены важные сторонние библиотеки и фреймворки, таких как Django (июль 2005), для разработки веб-приложений.
  • Python начинают активно использовать в научных исследованиях и обработке данных, благодаря библиотекам NumPy (2006), SciPy и Matplotlib.
  • Выпускается версия Python 3.0 (декабрь 2008) с обратно несовместимыми изменениями и улучшениями в синтаксисе и поддержке Unicode.

2010-е годы: Сообщество программистов переходит на Python 3. Активно разрабатываются и обновляются библиотеки и инструменты для совместимости с новой версией языка.

  • Развивается область машинного обучения и искусственного интеллекта с использованием Python, благодаря таким библиотекам и фреймворкам, как TensorFlow (2015), Keras и PyTorch.
  • Возрастает популярность в образовательных учреждениях и среди начинающих программистов благодаря простому синтаксису и большому количеству доступных обучающих материалов.
  • Расширяется применение Python в различных областях, таких как веб-разработка, научные исследования, анализ данных, машинное обучение, автоматизация.
  • Разрабатываются новые версии языка, таких как Python 3.5 (сентябрь 2015) с операторами async/await для асинхронного кода, Python 3.6 (декабрь 2016) с f-строками и улучшениями производительности, и других версий с дополнительными улучшениями и новыми возможностями.
  • Появляется Jupyter Notebook (2014) — популярный инструмент для интерактивного программирования, особенно в области научных исследований и анализа данных.
  • Растет популярность языка среди разработчиков и компаний, что делает Python одним из самых востребованных языков программирования на рынке труда.

Краткий обзор версий:

 



Примечание: таблица отражает только основные версии Python и их ключевые изменения. В реальности существует больше версий с минорными изменениями и улучшениями.

В результате активного развития и применения Python в самых разных областях, а также благодаря его простому синтаксису, огромному количеству библиотек и открытому сообществу разработчиков, Python стал одним из самых популярных и востребованных языков программирования в мире.

Отличительные черты Python

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

  1. Читабельность и простота. Python известен своей чистой и лаконичной синтаксической структурой, что делает его легко читаемым и понятным даже для новичков. Этим он выгодно отличается от C++ или Java с более сложным и запутанным синтаксисом.
  2. Большая стандартная библиотека. Python имеет обширную стандартную библиотеку, которая включает множество модулей и пакетов для различных задач, таких как веб-разработка, обработка данных, машинное обучение, сетевое программирование и многое другое. Это сокращает время, необходимое для разработки программ, и уменьшает зависимость от сторонних библиотек.
  3. Кросс-платформенность. Python является кросс-платформенным языком. Программы на «питоне» можно запускать в различных операционных системах (Windows, macOS и Linux) без изменения исходного кода.
  4. Динамическая типизация. В отличие от статически типизированных языков (Java или C++), Python использует динамическую типизацию. Прием позволяет программистам не объявлять тип переменной заранее. В итоге мы получаем более гибкий код и сокращенное количество строк.
  5. Интерпретируемость. Python — интерпретируемый язык. Его код выполняется построчно, без необходимости компиляции. Это упрощает процесс разработки и облегчает отладку программ.
  6. Большое сообщество. Python обладает одним из самых больших и активных сообществ разработчиков, что способствует созданию множества ресурсов, таких как учебники, курсы, библиотеки и фреймворки, которые помогают ускорить процесс разработки и обучения.
  7. Применимость в различных областях. Python широко используется в различных сферах, таких как веб-разработка, научные исследования, анализ данных, машинное обучение, сетевое программирование, автоматизация и многих других. Это делает Python универсальным и гибким языком программирования, подходящим для широкого круга задач и проектов.
  8. Поддержка множественных парадигм программирования. Python поддерживает несколько парадигм программирования: объектно-ориентированное, процедурное и функциональное. Это позволяет разработчикам выбирать наиболее подходящий метод для решения конкретной задачи и создания гибких, масштабируемых приложений.
  9. Широкое использование в индустрии. Python используется множеством крупных компаний (Google, Facebook, Instagram, Spotify), что говорит о высоком уровне доверия к языку и его применимости для решения сложных задач.
  10. Открытый исходный код Python доступен для просмотра и модификации. Это позволяет разработчикам вносить свой вклад в развитие языка и использовать его в коммерческих проектах без оплаты лицензионных сборов.

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

Плюсы и минусы Python по сравнению с Java

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

Плюсы Python по сравнению с Java:

  1. Простота и читаемость кода. Python обладает более кратким и понятным синтаксисом, что упрощает чтение и написание кода. Java требует больше строк кода для реализации аналогичных задач, и его синтаксис может быть более громоздким.
  2. Большое количество библиотек для машинного обучения и анализа данных. Python имеет множество библиотек, таких как TensorFlow, Keras, PyTorch, Scikit-learn, Pandas. Этот язык более предпочтителен для работы с данными и машинным обучением. Java также имеет некоторые библиотеки для машинного обучения, такие как Deeplearning4j и Weka, но они менее разнообразны и популярны, чем аналогичные библиотеки для Python.
  3. Быстрое прототипирование. Python позволяет быстро создавать прототипы и экспериментировать благодаря своей динамической типизации и интерпретируемости. Java, будучи статически типизированным и компилируемым языком, требует больше времени для компиляции и исправления ошибок.

Минусы Python по сравнению с Java:

  1. Производительность. Python является интерпретируемым языком, что снижает его производительность по сравнению с компилируемыми языками, такими как Java. В некоторых случаях, когда требуется высокая производительность, использование Java может быть предпочтительнее.
  2. Поддержка многопоточности. Python имеет GIL (Global Interpreter Lock), ограничивающий выполнение нативных потоков, что затрудняет эффективное использование многопоточности. Java, с другой стороны, имеет встроенную поддержку многопоточности и синхронизации, что позволяет создавать более эффективные многопоточные приложения.
  3. Мобильная разработка. Java является основным языком для разработки Android-приложений и имеет более широкую поддержку мобильных платформ. Python имеет ограниченную поддержку мобильных платформ и не является предпочтительным выбором для мобильной разработки.

Резюме: Python хорошо подходит для быстрого прототипирования, работы с данными, машинного обучения и веб-разработки, благодаря своему простому синтаксису и обширному набору библиотек.

Java же имеет преимущества в производительности, поддержке многопоточности и мобильной разработке. Выбор между Python и Java в конкретных ситуациях зависит от требований проекта, предпочтений разработчика и доступности ресурсов.

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

Плюсы и минусы Python по сравнению с С-языками

Python и C-языки — это две разные категории языков программирования. C-языки, включая C, C++, и Objective-C, относятся к низкоуровневым языкам.

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

Рассмотрим плюсы и минусы Python по сравнению с С-языками.

Плюсы Python по сравнению с C-языками:

  1. Простота. Python — это простой и легкий в освоении язык программирования, который не требует изучения сложных концепций и синтаксиса, в отличие от C-языков.
  2. Высокая скорость разработки. Python обладает большим набором библиотек и инструментов, которые упрощают и ускоряют разработку приложений.
  3. Читаемость кода. Код Python легко читается, что делает его более подходящим для командной разработки и поддержки приложений.
  4. Динамическая типизация. Python позволяет использовать динамическую типизацию. Тип переменной определяется автоматически во время выполнения кода.

Минусы Python по сравнению с C-языками:

  1. Медленная скорость выполнения. Код Python код выполняется медленнее, чем код на C-языках, из-за динамической типизации и управления памятью.
  2. Низкая производительность. Python может быть неэффективным для разработки системных приложений с повышенной производительностью из-за высокого уровня абстракции.
  3. Ограниченный доступ к низкоуровневым ресурсам. Python имеет ограниченный доступ к низкоуровневым ресурсам, таким как память, процессор и другие аппаратные ресурсы.
  4. Неудобство в разработке приложений с большим объемом данных. Python может столкнуться с проблемами производительности при работе с большим объемом данных, так как не имеет таких мощных возможностей для работы с памятью и процессором, как C-языки.

Выбор языка зависит от конкретной задачи, которую вы пытаетесь решить. Если вы разрабатываете системные приложения или приложения с высокой производительностью, то C-языки могут быть более предпочтительными. Если же вам нужно быстро и просто разработать приложение, стоит выбрать Python.

Перспективы Python в дальнейшем

Python активно используется во многих областях технологий и программирования, в том числе в AI/ML, веб-разработке, разработке приложений и в областях Big Data/Data Science:

  • AI/ML. Python остается одним из наиболее популярных языков программирования для разработки решений и моделей искусственного интеллекта и машинного обучения. Причина: большое количество библиотек и инструментов, таких как TensorFlow, Keras, PyTorch и Scikit-learn. Python продолжит играть ключевую роль в разработке решений AI/ML в ближайшем будущем.
  • В веб-разработке Python также имеет свои преимущества. Язык используется для создания веб-серверов и приложений, в том числе с использованием фреймворков, таких как Django и Flask. Python позволяет быстро и легко разрабатывать функциональные веб-приложения и сайты, особенно те, которые не требуют больших объемов вычислительных ресурсов.
  • В разработке приложений. Python также остается популярным языком для разработки приложений для настольных компьютеров, мобильных устройств, встраиваемых систем. Благодаря большому количеству библиотек и инструментов, таких как PyInstaller и Py2exe, Python может быть легко превращен в приложение, доступное для запуска на большинстве платформ.
  • В областях Big Data/Data Science. Python также широко используется в области обработки больших данных и Data Science. Благодаря библиотекам, таким как Pandas, Numpy и Matplotlib, Python может быть использован для обработки, анализа и визуализации больших объемов данных. Python также может использоваться для разработки алгоритмов машинного обучения и статистического анализа данных.

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

Заключение

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

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

Как вы считаете, сохранится ли популярность Python в будущем? Какие альтернативы вы видите для его применения в разных областях? Поделитесь своими мыслями в комментариях.

  • Да, определённо, он продолжает развиваться
  • Нет, ничто не вечно, есть языки и покруче

Почему Python: факторы, ведущие к языку…

Python постоянно растет, и в прошлом году, по данным популярной службы ранжирования языков, язык, как сообщается, обогнал Java и C — впервые для любого языка в 20 лет. С этим ростом многие люди спрашивают: «Почему Python?» Правда в том, что объяснение господства Python многогранно.

В первые годы своего существования Python был одним из многих так называемых «языков сценариев», таких как Perl и Ruby. Они были очень популярны среди программистов Unix и интернет-сообщества с открытым исходным кодом, потому что они были более удобны для написания сценариев общих системных задач, чем более формальные языки программирования, такие как C или C++. Тем не менее, Python отличался от других тем, что его дизайн отличался простотой использования. В то время как другие языки часто гордились сложностью или лаконичностью, в Python были такие принципы, как «должен быть один очевидный способ сделать это» и «простое лучше, чем сложное». Эти идиомы пронизывали дизайн языка и его раннюю экосистему дополнительных пакетов с открытым исходным кодом и в конечном итоге стали кодифицированы как «дзен Python».

Эта простота использования не только принесла ему преданных и преданных поклонников, но и стала привлекать к Python другую группу пользователей: ученых и инженеров.

Массовое внедрение в области научных вычислений

Важной причиной популярности Python является его применение в науке о данных, машинном обучении и обработке данных. Но как «язык сценариев» обогнал основные профессиональные языки программирования, такие как C++, C# и Java?

В течение нескольких десятилетий сфера «численных вычислений» игнорировалась основными технологическими компаниями, которые сосредоточились на продажах на прибыльных рынках бизнес-вычислений, баз данных и ИТ-инфраструктуры. Хотя числовые вычисления имеют решающее значение для развития науки и человеческой цивилизации, они в основном относились к нишевой дисциплине, и ученым приходилось писать большую часть своего собственного программного обеспечения, несмотря на то, что они не были профессиональными инженерами-программистами. Хотя многие в конце концов выучили C++ или даже Java, ни один из этих языков не позволял легко выражать математические идеи. Часто их абстракции и синтаксис создают концептуальные накладные расходы, которые не имеют значения или даже вредны для написания хорошего численного программного обеспечения.

Начиная с конца 1990-х, ученые и инженеры начали открывать для себя Python и влюблялись в его простоту использования и расширяемость. В течение следующего десятилетия появилось много жизненно важных проектов: Numpy, Scipy, Matplotlib, IPython (теперь Jupyter), Pandas, scikit-learn и множество других. Благодаря дружественному синтаксису Python специалисты-практики собрали свои собственные инструменты, подходящие для их работы. Ученым приходится иметь дело с обширными наборами данных и требовать максимальной производительности, поэтому научная экосистема Python с открытым исходным кодом быстро превратилась в доступную, разнообразную коллекцию мощных и эффективных инструментов.

Большие данные для искусственного интеллекта и не только

С появлением «больших данных», облачных вычислений и Интернета вещей в конце 2000-х годов в бизнес стали поступать большие объемы потребительских данных. Традиционная аналитика и хранилища данных на основе SQL с трудом справляются с огромным объемом данных. Кроме того, инструменты бизнес-аналитики не могли выполнять расширенное моделирование, необходимое для получения информации из больших данных. В результате продвинутые бизнес-аналитики начали обращаться к инструментам с открытым исходным кодом — и все чаще к экосистеме Python — для выполнения гибкой обработки данных, интеграции, исследования и моделирования. Примерно с 2015 года метод «глубокого обучения» возвестил о возрождении ИИ, и Python стал девятым0019 де-факто язык этого поля.

Популярность Python для науки о данных и аналитики продолжает расти. В нашем отчете о состоянии науки о данных за 2021 год 63% респондентов заявили, что используют Python часто или всегда, что делает его самым популярным языком, включенным в опрос этого года.

У Python есть что-то для каждого

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

Люди используют Python во многих отраслях, таких как финансы и здравоохранение. Он используется для обработки изображений с космических телескопов и создания ИИ для повседневных приложений, таких как Lyft, Uber, Instacart, Netflix, Dropbox и Instagram. Python используется во всем Голливуде — создатели вашего любимого блокбастера с потрясающей 3D-графикой почти наверняка использовали Python на многих этапах конвейера обработки графики. Даже посадка марсохода Perseverance на Марс была бы невозможна без Python.

Python как клей

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

Изучите Python уже сегодня!

Для тех, кто не является программистом, вы можете быстро выучить Python за выходные, чтобы выполнять простую аналитику и проекты. Python также служит отличным языком обучения машинному обучению и искусственному интеллекту. Поняв основы программирования на Python, пользователи могут изучить основные блоки, прежде чем переходить к более сложным проектам ML/AI.

За последние два года в Anaconda наблюдалось 14-процентное увеличение количества загрузок пакетов Python в период с августа по сентябрь, когда ученики возвращаются в школу, что связано с тем, что профессора требуют Python на своих уроках. Кроме того, 100% школ Лиги плюща преподают с использованием Anaconda в своих учебных планах.

У Python есть вариант использования для вас, независимо от того, являетесь ли вы специалистом по данным, студентом или любителем. Благодаря своей доступности и удобству использования язык программирования позиционирует себя как связующее звено для всех уровней опыта, вариантов использования и технологических стеков. Python вырыл огромный ров. Когда нас спрашивают, почему мы являемся такими сторонниками Python, мы рассматриваем все факторы, которые превратили его из языка, преимущественно используемого для научных вычислений, в язык, который может использовать каждый, и спрашиваем, почему бы и нет?

Python — плохой язык программирования | Арслан Мирза | Medium

Удивительная правда!

Опубликовано в

·

5 минут чтения

·

4 мая

https://cdn.discordapp.com/attachments/.png

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

Однако является ли это утопией программирования?

В этой статье мы прольем свет на менее гламурные аспекты Python, которые могут заставить вас подвергнуть сомнению все, что вы, как вам казалось, знали об этом популярном языке.

Сегмент 1: Хороший, плохой и злой

Хороший

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

Разработчик 1: «Эй, мне нужно создать парсер, но я не знаю, с чего начать».
Разработчик 2: «Нет проблем! Просто используйте BeautifulSoup и Requests from Python. Это будет легко!»

Плохой

Несмотря на похвальные достоинства, у Python есть несколько ошеломляющих особенностей. Например, существует четыреста (плюс-минус) способов интерполяции строк. Это заставляет Python чувствовать себя не как язык «одного очевидного способа сделать это», а как запутанный клубок опций.

Разработчик 1: «Почему в Python так много способов форматирования строк?!»
Разработчик 2: «Потрясает меня. Просто выберите один и придерживайтесь его, я думаю».

Уродливый

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

Разработчик 1: «Мне нравится принудительный отступ в Python! Это делает код намного чище».
Разработчик 2: «Тьфу, не могу! Такое ощущение, что мой код в смирительной рубашке».

Сегмент 2: Особые ловушки Python

Запутанные троичные выражения

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

Разработчик 1: «Я не могу понять тернарные выражения Python».
Разработчик 2: «Расскажи мне об этом. Это как пытаться прочитать предложение задом наперед».

Проблемные кортежи

Синтаксис Python для кортежей с одним элементом может быть головной болью. Если вы забудете завершающую запятую, это будет уже не кортеж, а выражение. Это может привести к тонким ошибкам и разочарованию.

Разработчик 1: «Я снова забыл запятую в своем кортеже!»
Разработчик 2: «Ой. Это классическая ошибка Python».

Сегмент 3: Регулярные выражения и магические методы

Шаблонный блюз

Регулярные выражения Python требуют больше шаблонного кода, чем некоторые другие языки, такие как JavaScript или Ruby, что делает их более громоздкими и менее элегантными.

Разработчик 1: «Написание регулярных выражений на Python похоже на сборку пазла».
Разработчик 2: «Согласен. Это не совсем воплощение элегантности «Pythonic».

Таинственная магия

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

Разработчик 1: «Что со всеми этими атрибутами двойного подчеркивания в Python?»
Разработчик 2: «Они называются «магическими методами». Поверьте мне, они эффективны, как только вы их освоите».

Сегмент 4: Обработка ошибок и неизменная загадка

Поймай меня, если сможешь

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

Разработчик 1: «Почему я не могу поймать все ошибки в одном выражении в Python?»
Разработчик 2: «Все дело в продвижении лучших практик. Но да, это может раздражать во время разработки».

Неизменяемые тайны

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

Разработчик 1: «Почему в Python нет встроенной поддержки неизменяемых словарей?»
Разработчик 2: «Хороший вопрос! Я всегда задавался одним и тем же вопросом. Слава Богу, сторонние библиотеки!»

Сегмент 5: Столкновение культур

Парадокс Pythonic

Некоторые энтузиасты Python могут показаться чрезмерно оборонительными или придирчивыми к «пути Python». Из-за этого сообщество может чувствовать себя немного неприветливо по отношению к новичкам или тем, у кого разные точки зрения.

Разработчик 1: «Мне кажется, что мне постоянно говорят, что я «недостаточно Pythonic».
Разработчик 2: «Не беспокойтесь об этом. Просто сосредоточьтесь на написании чистого и эффективного кода, и все будет в порядке».

Комплекс превосходства

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

Разработчик 1: «Почему некоторые разработчики Python ведут себя так, будто Python — лучший язык на свете?»
Разработчик 2: «В любом сообществе программистов всегда будет некоторый уровень гордости. Просто помните, лучшие разработчики всегда открыты для обучения и роста».

Ending Words

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

Очень важно знать об этих проблемах и сохранять непредвзятость при изучении других языков программирования и парадигм.

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

Заявление об отказе от ответственности:

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

Мы стремимся вызвать критическое осмысление Python и его роли в пути программиста, а не дискредитировать или принижать Python или его сообщество.