Ситуация: поддержку Python 2.7 прекращают с 2020 года +6


Поддержку Python 2.7 прекращают уже первого января. Но многие компании до сих пор не перешли на его обновленную версию. В материале — обсуждаем причины сложившейся ситуации.


Фото — Jan Kopriva — Unsplash

Не все готовы к новому «питону»


В 2020-м году будет прекращена поддержка версии Python 2.7, и обновления по части безопасности приостановят. Несмотря на то, что об этих планах стало известно еще пять лет назад — в 2014 году Гвидо ван Россум, автор Python, лично призывал разработчиков и компании мигрировать на Python 3 — процесс адаптации новой версии идет медленно.

В начале года около 60% пакетов, скачиваемых из The Python Package Index (PyPI), относились к версии 2.7. К сентябрю эта цифра уменьшилась до 40%, но, скорее всего, она не достигнет нуля до дедлайна.

Что тормозит миграцию


В крупных компаниях внедрение нового фреймворка или переход на обновленную технологию всегда требует существенных ресурсов и времени. В некоторых случаях процесс затягивается на месяцы и даже годы. Это связано с массивной кодовой базой и большим числом зависимостей. В Facebook начали переводить сервисы компании на Python 3 еще в 2014 году. На реализацию этого проекта ушел год — пришлось переписать значительное число библиотек и поправить тысячи регрессий. После этого инженеры компании взялись за Instagram — в этом случае переход занял десять месяцев. У Dropbox — миграция на Python 3 идет уже целых три года.

В некоторых компаниях действуют строгие правила согласования существенных технологических обновлений со службой безопасности. Иногда это подразделение регулирует даже загрузку PIP-пакетов. «Безопасников» беспокоит, что при переходе на Python 3 в сервисах начнут появляться критические уязвимости. Действительно, в таких сферах, как банкинг и здравоохранение, цена ошибки может быть высокой. Так, в прошлом году британский TSB — в процессе внедрения новой IT-системы — столкнулся с багом, который вызвал сбой в работе системы мобильного банкинга. В результате 1,9 млн человек потеряли доступ к своим счетам. Организация до сих пор разбирается с последствиями.

Помимо всего прочего, Python 2 все еще поддерживают ведущие ОС на базе Linux. Например, в RHEL пользователи могут выбрать, с какой версией им работать. Хотя операционная система Red Hat постепенно мигрирует на Python 3, этот процесс идет не так гладко, как того хотелось бы. В процессе регулярно находят баги, в основном связанные с работой указателей. В Debian также остается поддержка Python 2, но переход на обновленную версию уже начался. Он также продвигается медленно — инженеры последовательно тестируют библиотеки на совместимость.

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

Что думает сообщество


Резиденты Hacker News в тематическом треде отмечают, что главная причина медленной миграции — отсутствие (до недавнего времени) какой-либо ощутимой выгоды от этого процесса. В языке не было новых функций, которые могли бы заинтересовать разработчиков и подтолкнуть их к переходу на Python 3. При этом некоторые решения, сделанные авторами языка, наоборот, портили впечатление от программирования на нем. В частности, большую волну недовольства вызвало исключение поддержки байтовых строк и переход на исключительную работу с Unicode. В Stack Overflow также отметили, что в экосистеме Python недоставало встроенных инструментов для автоматизированной трансляции кода с одной версии на другую. Проблему решили с появлением таких утилит, как 2to3 и six.


Фото — Hitesh Choudhary — Unsplash

За последние годы функциональность Python 3 значительно расширилась. Добавили перемножение матриц, модуль asyncio для организации конкурентного программирования, а также аннотации типов переменных, полей класса, аргументов и возвращаемых значений функций. Поддержка Python 3 даже появилась для других популярных библиотек, например scikit-learn для ML. Обновленный набор функций должен убедить компании перейти на следующую версию языка. И хотя число адептов Python 3 в следующем году значительно возрастет, полный переход займет существенное время.


Мы в 1cloud.ru предлагаем услугу DNS-хостинга. Зарегистрированные пользователи получают её бесплатно.

На любые вопросы, связанные с работой сервиса, ответят специалисты из нашего центра компетенции.


Дополнительное чтение в блоге 1cloud:

Спасет ли облако ультра-бюджетные смартфоны
«Как мы строим IaaS»: материалы о работе 1cloud

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





К сожалению, не доступен сервер mySQL