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

 

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

Это один из самых простых языков кодирования для изучения, простой в использовании и общепринятый. Согласно недавнему отчету Slashdata State of The Developer Nation, в настоящее время в мире насчитывается более 8,4 миллиона разработчиков Python. За последние несколько лет Python развивался как сумасшедший.

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

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

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

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

Если мы посмотрим индекс TIOBE, то увидим что язык Python показывает уверенный рост своей популярности:

 

Также мы можем посмотреть на место в рейтинге языков программирования по годам:

Языки программирования20242019201420092004199919941989
Python138682623-
C22122111
C++34433222
Java4121116--
C#5657721--
JavaScript6799918--
Visual Basic719236-----
SQL89--92---
Go91736-----
PHP108646---
Objective-C331033341---
Lisp34321420141463
(Visual) Basic--755337

 

 

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

Каковы основные плюсы и минусы Python? 

Преимущества

  1. Довольно современный синтаксис языка и возможность использовать различные парадигмы программирования (объективные, функциональные, реактивные),

  2. Дружелюбное сообщество, много ответов на вопросы о StackOverflow,

  3. Python поставляется в пакете "с батареями", то есть с очень широкой библиотекой стандартных пакетов (не нужно ничего устанавливать, чтобы создавать довольно сложные проекты) и еще большим списком пакетов с открытым исходным кодом, доступных в общедоступных репозиториях (для простой установки). К ним относятся очень зрелые пакеты для обработки изображений, построения графиков, статистического анализа данных, сетевых коммуникаций, искусственного интеллекта (особенно глубокого обучения) и машинного обучения, обработки естественного языка, взаимодействия с базами данных, создания веб-приложений, извлечения данных из веб-страниц, графических алгоритмов,

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

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

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

  7. Управляемая память — сам интерпретатор Python освобождает память, выделенную программе, которая больше не используется. Это облегчает мышление о программе, сокращает код и предотвращает ошибки, связанные с преждевременным освобождением памяти, которые часто встречаются в программах, написанных на C и C++.

Недостатки

  1. Сложная система публикации собственных пакетов с открытым исходным кодом, особенно если они используют библиотеки на языке C. Python, к сожалению, является жертвой успеха здесь и унаследует трудности с созданием собственного кода (например, на языке C) для конкретной системной и аппаратной платформы,

  2. Система типов — это одновременно плюс и минус. Для начинающих программистов может быть шоком, что в программе не нужно указывать типы переменных. Python распознает их сам и проверяет, пока программа работает, чтобы убедиться, что мы не пытаемся выполнить запрещенные операции с данными (так называемая сильная система типов). Однако это происходит только при выполнении определенного фрагмента кода, поэтому мы не узнаем о потенциальной ошибке до тех пор, пока не запустим его. Это означает, что при разработке программ на Python необходимо уделять больше внимания их тестированию. В отличие от компилируемых языков (C, C++, Java, C# и многих других), компилятор не поможет нам обнаружить некоторые ошибки, поэтому мы сами должны убедиться, что код будет надлежащим тестированием. Отсутствие видимых типов также является своего рода препятствием при разработке большой системы. Тогда видимые типы являются важной помощью для программиста, который читает код, написанный кем-то другим. Поэтому более новые версии Python имеют дополнительную возможность описывать функции и классы по типам, что является рекомендуемой практикой для более крупных приложений.

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

 

 

Изучение Python по сравнению с другими языками

 

Изучение Python проще по сравнению с другими языками:

  1. По сравнению с другими языками сценариев (Perl/bash), синтаксис Python легче понять, и здесь меньше исключений или сюрпризов, которые нужно запомнить.

  2. По сравнению с другими веб-языками (PHP, JS), освоение веб-приложений аналогично сложно, хотя для более продвинутых приложений Python, по-видимому, обеспечивает большую гибкость в том смысле, что с помощью Python можно создавать веб-приложения, которые одновременно являются, например, приложениями, использующими машинное обучение, или богатые библиотеки анализа статистических данных в Python. На других языках таких библиотек меньше, что может быть связано с тем, что основной движущей силой развития этих пакетов является научная среда, которая легко приняла Python.

  3. По сравнению с языками, которые были скомпилированы более высокого уровня (Java, C#), Python облегчает запуск для очень коротких и простых программ. То, что он поставляется с "батареями", также полезно для небольших или даже среднесложных приложений. Для крупных систем экосистема (доступность пакетов с открытым исходным кодом и коммерческих пакетов) становится все более важной, и здесь Python не отстает, но раскрывает специфику этих пакетов и некоторую направленность языкового сообщества на различные типы приложений. Например, на C# гораздо проще создавать приложения, предназначенные для Windows, чем на Python.

  4. По сравнению с языками компиляции более низкого уровня (C, C++), с точки зрения программиста, управление памятью во многих случаях может быть проще в Python. В C нужно выделять и освобождать память, используемую программой, в то время как интерпретатор Python делает это сам. С другой стороны, если необходимо сильно оптимизировать код, Python дает меньше шансов, чем эти языки, в том числе по той же причине. Однако важной особенностью Python является то, что он позволяет легко использовать существующие библиотеки C. Существует также множество готовых пакетов для Python — своеобразных "оберток" вокруг библиотек на C — что обеспечивает максимальную эффективность, а также простоту программирования на Python.

Перейти к следующему шагу

Комментарии