5 ключевых достоинств и 3 главных недостатка Python

автор рубрика
5 ключевых достоинств и 3 главных недостатка Python

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

Чем хорош Python: ТОП-5 преимуществ

  1. Простота. Python – понятный язык, с которым разберется любой желающий. Не требуется знать принципы ООП или сложные структуры данных. Возьмем для сравнения Java. Как на Java вывести в консоль «Hello, World»? Нужно создать класс, в котором объявить публичный статический метод main, принимающий в качестве аргумента массив строк. Далее в этом методе вызывается другой класс, который, наконец, выведет надпись в консоль. Как это делается в Python? Просто пишем: print(‘Hello, World’) и сразу же получаем результат.
    • Java:
    public class Example { // Класс
      public static void main(String[] args) { // Публичный статический метод
        System.out.println("Hello, world!"); // Статический класс
      }
    }
    • Python:
    print("Hello, world!")
  2. Расширяемость. Большое количество специализированных библиотек включает множество уже готовых программных конструкций. Это позволяет не тратить силы на их самостоятельную реализацию и экономит время программиста. Особенно стоит подчеркнуть библиотеки для Data Science: Scikit-learn, Matplotlib, Seaborn, Pandas, TensorFlow. Они включают различные алгоритмы Machine Learning, статистические инструменты, методы визуализации и интеллектуального анализа данных.
  3. Открытость. В отличие от закрытых и устоявшихся языков программирования, таких как Java (Oracle), C# (Microsoft) и пр., каждый разработчик может внести свой вклад в развитие языка. Например, если вы нашли какой-то баг или хотите расширить функциональные возможности языка, сделайте pull request в репозиторий на github или просто сообщите о своих идеях во вкладке issues [1] Такая открытость дает уверенность, что Python не содержит потенциальных уязвимостей, тайных функций слежений или других опасных аспектов.
  4. Читабельность. Python-сообщество имеет собственную конвенцию, так называемый PEP 8 [2], принципы которого они стремятся соблюдать на практике. Например, соблюдать отступ в 4 пробела после определения класса, функции или условия; импорт модулей делать в начале файла, а после ставить 2 пустые строки; в случае большого количества аргументов у функции, они должны быть написаны друг под другом, образуя визуальную таблицу:
    def long_function_name(var_one, var_two,
                                 var_three, var_four)

    Не приветствуется скомпонованные условия, когда несколько операций лежат на одной строчке:

    # Неправильно
    if foo == 'blah': do_blah_thing()
    do_one(); do_two(); do_three()
    
    # Правильно
    if foo == 'blah':
    do_blah_thing()
        do_one()
        do_two()
    do_one()
    do_two()
    do_three()
    

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

  5. Удобство. Встроенные структуры данных, такие как списки, словари, кортежи и множества, легко понятны и не отвлекают от работы по написанию кода. А способы их создания максимально просты и запоминаемы. Например, списки обворачиваются в квадратные скобки, кортежи – в круглые, множества и словари – в фигурные:
    fruits_l = ["banana", "apple", "lemon"] # список (list)
    fruits_t = ("banana", "apple", "lemon") # кортеж (tuple)
    fruits_s = {"banana", "apple", "lemon"} # множество (set)
    fruits_d = {"banana": 2, "apple": 6, "lemon": 3} # словарь (dictionary)

Что с ним не так: 3 ключевых недостатка

Обратной стороной вышеперечисленных достоинств являются следующие недостатки:

  1. Низкая скорость. Python – интерпретируемый язык, т.е. выполняется построчно и медленно. Как правило, в небольших проектах это не критично: обычно клиент даже не замечает, что код выполняется на полсекунды дольше. А в масштабных системах с большим объемом данных и сложными вычислениями разница уже заметна.
  2. Динамическая типизация, которая позволяет писать кратко, не объявляя тип переменной, например int. С одной стороны, это экономит время разработчика, но может привести к ошибкам при попытке выполнить операцию с несоответствующим типом данных. В результате могут появиться ошибки времени выполнения – runtime errors. Чтобы предотвратить это, потребуется дополнительное тестирование кода и добавление проверок на типы.
  3. Привычка к простоте.Человек быстро привыкает к хорошему: лаконичность и понятность Python-кода приводит к тому, что программист ищет этого же и в других языках. Например, читая Java-программу, питонист может возмутиться от обилия классов, круглых и фигурных скобок, странного объявления переменных и прочих неочевидных особенностей. Однако, мастер не должен зависеть от своего инструмента, а разработчик – от языка программирования.

В следующей статье мы рассмотрим 5 примеров написания Python-кода в одну строчку. А как на практике использовать все преимущества и обойти недостатки языка Python, вы узнаете на практических курсах по Python в нашем лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве.

Источники
  1. https://github.com/python/cpython
  2. https://www.python.org/dev/peps/pep-0008/#indentation
Комментировать

Ваш адрес email не будет опубликован. Обязательные поля помечены *