Стратегия параллельного поддержания веток Python 2 и Python 3 оказалась ошибочной
31 декабря 2013 года
Алекс Гейнор ( Alex Gaynor), входящий в совет директоров организации Python Software Foundation, выразил опасение, что после 5 лет существования, ветка Python 3 до сих пор не получила должного распространения. Первый стабильный выпуск Python 3.0 был опубликован ещё в декабре 2008 года, но с тех пор интенсивность перевода проектов на Python 3 оставляет желать лучшего.
Например, в каталоге Python Package Index с Python 3 связано всего 2% загрузок пакетов. Более того, почти не создано кода, работающего только с Python 3. Такие проекты как Django, добавившие поддержку Python 3, продолжают вести первичную разработку и тестирование с использованием Python 2, попутно проверяя работоспособность в Python 3 через средства непрерывной интеграции. Ни одна опрошенная крупная компания, развивающая проекты на языке Python, не использует специфичный для Python 3 код и не планирует миграцию кодовой базы на Python 3.
В качестве основной причины низких темпов перехода на Python 3 упоминается продолжение параллельного развития ветки Python 2, что привело к отсутствию стимула перехода на Python 3 - при должной поддержке Python 2 и отсутствии мотивов для срочного перехода на Python 3, разработчики приложений могут бесконечно откладывать миграцию, оставляя данную задачу в качестве низкоприоритетных планов.
В качестве второй причины называется отсутствие у разработчиков интереса к ветке Python 3, которая не содержала кардинальных прорывных улучшений, которые могли бы подтолкнуть людей к внедрению новой ветки. В частности, Python 3 не сдвинулся вперёд в таких востребованных областях, как уход от глобальной блокировки (GIL, Global Interpreter Lock) и заметное повышение производительности. Вместо этого в Python 3 был расширен стандартный набор библиотек и проведена чистка проблемных мест, которые опытные разработчики уже научились обходить по привычке. В итоге, 99% разработчиков не используют новшества Python 3 и прекрасно обходятся без них.
В свою очередь, недостаточный объем внедрений рабочих решений на базе Python 3 приводит к проблемам с полноценным тестированием добавляемых новшеств в реальных проектах, что сказывается на ухудшении качества кодовой базы Python 3.x. В качестве одного из выходов из сложившегося тупика предлагается выпустить ветку Python 2.8, в которую бэкпортировать все новшества из Python 3, в том числе объявить устаревшими возможности, для которых нельзя обеспечить обратную совместимость (например, выводить предупреждение при использовании str + unicode), что подтолкнёт разработчиков к адаптации новых возможностей.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.