Практические бизнес-причины для перехода на Python3

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

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

Поддержка Python

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

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

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

См. также:  Как повысить производительность в Интернете с помощью (Preload, Preconnect, Prefetch)

Поддержка пакетов

Не только команда Python больше не будет поддерживать Python 2.7. Многие пакеты, на которые вы можете положиться, в том числе основные пакеты, такие как Numpy, Pandas, Pytorch и Tensorflow, обещают прекратить поддержку Python 2.7 в январе 2020 года или ранее.

Полный список пакетов, поддержка которых прекратит поддержку Python 2.7, представлен здесь.

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

Новые возможности

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

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

Итераторы. Функции в Python2, которые генерировали списки, такие как лямбда-выражения и range(), теперь являются итераторами в Python3. Это хорошая новость, поскольку она помогает повысить эффективность памяти программы.

Дополнения к стандартной библиотеке. Они продолжают улучшать полезность и функциональность для разработчиков. Например, в Python 2.7 может быть сложно работать с путями, потому что приходится использовать модуль ОС. Для Python3 Pathlib имеет гораздо более простой API и большую функциональность для работы с каталогами.

См. также:  Принудительно настроенный интерпретатор PyCharm (1.5.4) для использования 32-разрядного дистрибутива OSX Lion Python (2.7.1)

Переключение

Для разработчиков, привыкших работать на Python2.7, переход на Python3 должен быть безболезненным. Это означает, что они могут воспользоваться преимуществами всех новых функций, сохраняя при этом скорость и добавляя новые функции и исправления в свой проект.

Однако по мере того, как Python3 постепенно расходится с Python2.7, становится все труднее привлекать новых разработчиков, которые знакомы с кодовой базой Python2.7 или хотели бы работать над ней. Разработчиков привлекают новые технологии, и со всем, что может предложить Python3, многим было бы трудно согласиться на работу с Python2.7.

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

Хорошая новость заключается в том, что у вас еще достаточно времени для планирования и выполнения миграции вашего проекта с Python2.7 на Python3. Если вам все еще нужно определить масштаб миграции, вы можете найти полезный контрольный список здесь.

Понравилась статья? Поделиться с друзьями:
IT Шеф
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: