LINUX.ORG.RU
ФорумTalks

Откопал старость конца 2013-го года о тяжёлом внедрении 3-его Питона

 ,


0

1

Собственно, сабж. Тяжела была участь 3-его Питона 6 лет назад, пока 2-й не закопали принудительно.

Вот как это было:

Алекс Гейнор (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.

https://www.opennet.ru/opennews/art.shtml?num=38761

★★★★★

Тяжела была участь 3-его Питона 6 лет назад, пока 2-й не закопали принудительно.

Теперь тяжела участь тех, чьи программы не успели портировать.

question4 ★★★★★
()

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

Всё верно: py3 и не дал ничего такого, ради чего сферической компании в вакууме стоило бы вбухивать сотни человекочасов на перевод всей кодовой базы.

aidaho ★★★★★
()

2.7 ещё не закопали, 2.6 разве что. И даже там, где формально 3.*, на самом деле до сих юзаются морально устаревшая джанга и pyramid. А под asyncio до сих пор не хватает стабильных взрослых библиотек. К тому же в стандартной библиотеке полно всякого легаси и не хватает простейших вещей типа асинхронной работы с файлами.

То есть: стабильное — мёртвое, от 2.7 не далеко ушло, свежее — лютый unstable.

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

То есть: стабильное — мёртвое, от 2.7 не далеко ушло, свежее — лютый unstable.

Я насколько помню, третепистон уже лет 10 пытаются внедрить. Помню, еще году в 2010 я покупал себе книжку по питону, как раз тогда решил его поизучать немного для самообразования, и купил сразу две - по 2.7 и по 3, потому что «Он вроде скоро уже везде 3 будет». Что, ничего не поменялось? Он скоро уже везде будет?

Zhbert ★★★★★
()
Ответ на: комментарий от question4

Теперь тяжела участь тех, чьи программы не успели портировать.

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

Речь идёт про Mercurial (hg).

EXL ★★★★★
()
Ответ на: комментарий от WitcherGeralt

2.7 ещё не закопали, 2.6 разве что.

EOL 2-го Питона уже позади:

We have decided that January 1, 2020, will be the day that we sunset Python 2. That means that we will not improve it anymore after that day, even if someone finds a security problem in it. You should upgrade to Python 3 as soon as you can.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Novator

Утраиваю. Небольшую прослойку совместимости с Python 2 можно было запихнуть в Python 3 и тогда этот Python не превращал бы дистрибутивы Linux в помойку, в которых некоторые тягают две или целых три на 90% схожих копии Python.

Я надеюсь, что теперь Гвидо лично и всех Python-разработчиков отшлёпают ссаной тряпкой по лицу, если они решат таким же образом релизнуть Python 4 и ещё больше раздуть этот клубок змей.

EXL ★★★★★
()
Ответ на: комментарий от saahriktu

Уйма людей всё ещё с py2. Некоторые из них переписывают на вменяемые языки вместо py3.

x3al ★★★★★
()
Ответ на: комментарий от saahriktu

Это ничего не значит. Во-первых, 2.7 ещё в шляпе и фряхе как минимум. Во-вторых, ну, не поддерживают и не поддерживают, существующий софт от этого не сломался.

WitcherGeralt ★★
()

С питоном один дебилизм. Вот представьте 2015 год, внутренний проект на python, начало. Пара разрабов начинают его на Py2. (Да, имхо это туповато) Год 2018, проект работает, жизнь кипит. Поддержка py2 уже сомнений не вызывает - её дропнут. Проект начинают фиксить для py3. CI удваивается, ибо кастомеры (внутренние) жаждут стабильную версию на py2, новые кастомеры и сами питон разрабы - на ру3. Кароче чертовщина. А потом оказывается, что py3 до версии 3.5 (или какой-то там) - это отдельная песня, сами разрабы это признают. CI разрастается до 3 параллельных платформ. Кошмар. И все это результат посылки «да питон же прост, стабилен, повсеместно применяется бла бла бла». Ненавижу, эти чертов pyenv, эти чертовы проблемы с кодировкой при io. При этом я не разработчик этого проекта ни разу, и даже не питонщик. Но ревьюить приходится, и не мне одному. Иначе там совсем ппц. И никто не решается выкинуть совместимость. Я хз как надо, может тут есть гуру, которые скажут «да отрежь и выбрось без зазрения совести», я бы послушал.

zendrz ★★
()
Ответ на: комментарий от saahriktu

Пока жив RHEL 7/CentOS 7, на котором завязана огромная доля рынка, пока Let’s Encrypt не выкинул поддержку Python 2 из Certbot, пока Mozilla, Oracle, Nginx и прочие крупные IT-компании не переехали с Mercurial на Git – Python 2 будет жить и поддерживаться ещё кучу времени. Скорее всего неофициально, как сегодняшняя Java 8, которую форкнули некоторые крупные игроки, в.т.ч. Amazon и RedHat.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Гвидо лично и всех Python-разработчиков отшлёпают ссаной тряпкой по лицу, если они решат таким же образом релизнуть Python 4 и ещё больше раздуть этот клубок змей.

Уже нет. Возможно, поэтому он и ушёл в отставку.

question4 ★★★★★
()
Ответ на: комментарий от kirk_johnson

Знаешь, если софт не портировали за шесть лет, он не нужен.

Oh, really? Тут совершенно справедливо пишут наоборот: если до сих пор не портировали на py3, значит py3 не нужен.

В частности, Python 3 не сдвинулся вперёд в таких востребованных областях, как уход от глобальной блокировки (GIL, Global Interpreter Lock)

Без комментариев. Вернее, один комментарий есть – по поводу результатов недавней голосовалки «язык для души», но он матерный.

dimgel ★★★★★
()
Ответ на: комментарий от dimgel

Ну бога ради, считающие, что py3 не нужен, могут начать поддерживать py2 сами.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от Lordwind

Коммерческий софт сообщество вряд ли может портировать, в силу определенных ограничений :D

kirk_johnson ★☆
()
Ответ на: комментарий от kirk_johnson

Знаешь, если софт не портировали за шесть лет, он не нужен.

Чуваки из CCP Games (Eve Online) с первого-то пистона долго не могли слезть, потому что у них дофига кастомного кода было, включая свой импортер пакетов. А ты про переход на третий.

Тут немного интересного чтива шестилетней давности по теме: https://www.robg3d.com/2014/01/why-ccp-is-still-using-python-2/

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от zendrz

Проект начинают фиксить для py3. CI удваивается, ибо кастомеры (внутренние) жаждут стабильную версию на py2, новые кастомеры и сами питон разрабы - на ру3. Кароче чертовщина. А потом оказывается, что py3 до версии 3.5 (или какой-то там) - это отдельная песня, сами разрабы это признают. CI разрастается до 3 параллельных платформ.

this

Но объяснять это авторам хеллоувордов, которые автоматически может транслировать какой-нибудь futurize, бесполезно.

aidaho ★★★★★
()
Ответ на: комментарий от EXL

Я надеюсь, что теперь Гвидо лично и всех Python-разработчиков отшлёпают ссаной тряпкой по лицу

Гвидо то за что, о но же мухожук?

ya-betmen ★★★★★
()
Ответ на: комментарий от aidaho

Секрет в том, что python (для написания программ) больше не нужен, потому что Go. А python оставить для скрептов, которые транслируются в новый API хоть седом.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

https://www.robg3d.com/2014/01/why-ccp-is-still-using-python-2/

even if Stackless was available for Python 3 (it isn’t)

Давно есть.

the solution is a nightmare, and our string handling is often a mess, but that just means changing it would be even more difficult

Примерно так же мой работодатель говорил о поддержке Юникода в 2010 году. Потом срочно потребовалась поддержка иероглифов. После 2 лет добавления поддержки легаси-локалей и ловли сопутствующих багов за пару месяцев сделали Юникод, и жалобы клиентов прекратились. Да, значительную часть работы к тому моменту выполнили для Shift-JIS.

Sure it would be great to get rid of that tech debt!

Гораздо лучше, чем кажется :) И переход на новую версию компилятора или библиотеки, ломающий грязные хаки, служит хорошим стимулом в этот раз писать правильно. Единственная проблема — время.

EVE Online’s codebase is still an ancestor of the original codebase that EVE released with in 2001

Он перепутал ancestor с чем-то ещё? Или там такая запутанная генеалогия?

question4 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.