Как стать автором
Обновить

Комментарии 25

В целом выпуски Python 3 обратно совместимы. Поэтому теоретически вы можете просто перейти на версию 3.7, исправить все ошибки, затем перейти на версию 3.8, и так до Python 3.9
Да но есть нюансы:
Python 3.9.0 cannot be used on Windows 7 or earlier.
Python 3.5.0 cannot be used on Windows XP or earlier.
Здорово, а к blender-у, который использует питон есть патч, что бы на windows 7 пускался?
Если детально посмотреть отличия. То не было причин ломать совместимость с windows 7
ради 3х функций PathCchCanonicalizeEx, PathCchCombineEx, PathCchSkipRoot.
Но теперь очень можно что бы софт особенно (языки и библиотеки которые используют другие) требовали только последнюю версию ОС даже если на то нет причин.
В результате сжигают мосты для старого железа. А потом зеленые ноют что всё пропало.
Более того в апи специально появляются новые модные функции типа CreateFile2 без которых просто жить нельзя, зато можно сказать что пора обновить комп, т.к. новая ось требует новое железа, а новый софт работает только на глючной свежей ос, с последними костылями исправлениями безопасности 3х дневной давности.
Разработчики Python дропнули поддержку Windows 7 не потому что нужны были какие-то новые функции в ОС, а просто потому что официальная поддержка ОС была окончена. То что 2023 года всё ещё выходят платные обновления (ESU) их не волновало.
Скорее всего дропнули поддержку Windows 7 потому что им за это заплатили. Зато теперь все кто использовал python как скриптовый движок после обновления перестают пускаться на win7. Здорово же, не так ли?
image
Какая-то нелепая теория заговора. Точно нет. Они просто следуют PEP-11, где чётко сказано:
Microsoft has established a policy called product support lifecycle [1]. Each product's lifecycle has a mainstream support phase, where the product is generally commercially available, and an extended support phase, where paid support is still available, and certain bug fixes are released (in particular security fixes).
CPython's Windows support now follows this lifecycle. A new feature release X.Y.0 will support all Windows releases whose extended support phase is not yet expired. Subsequent bug fix releases will support the same Windows releases as the original feature release (even if the extended support phase has ended).
Я сам до сих пор пользуюсь Windows 7, и вообще мягко говоря не фанат Python, но иногда приходится с ним иметь дело, поэтому как бы немного в курсе.
Вы лучше представьте что холодильник или стиральная машина после 2х лет перестаёт работать, потому как производитель больше не выпускает заплатки безопасности не поддерживает это оборудование, зато выпускает более новое.
Вообще какое дело питону до микрософт policy? Что им мешает идти своим путём с максимальным покрытием абонентов? (Кроме как взносы спонсоров и не навязчивые рекомендации вип визионеров?) А прекращать поддержу win7 из-за како-го то leftpad-а не очень убедительная причина.
PEP-11 — это никаким образом не полиси Microsoft. Разработчики Python сами лет 10 назад предельно чётко обозначили как долго они поддерживают разные версии Windows, просто чтобы поменьше дурить себе голову о поддержке старых ОС.

Что касается самой Microsoft, VS2019 официально полностью поддерживает Windows 7, даже в тех местах где формально нужны новые API из Windows 10, они прикрутили костылики, чтобы оно работало и на Windows 7. VS2022 официально уже не поддерживает Windows 7, с костыликами для поддержки уже не заморачиваются, но её можно установить, и большинство функций даже работает (но некоторые новые функции глючат и на старой ОС и их лучше выключить). При этом в самой VS2022 до сих пор доступны все инструменты для разработки даже для Windows XP, для тех кто до сих пор хочет поддерживать эту ОС.

То есть сама среда разработки официально поддерживается только на новых ОС, потому что разработчики среды перестали тратить время на поддержку Windows 7, 8 и старых необновлённых 10, но при этом никто не запрещает в ней разрабатывать софт, который будет работать хоть на Windows XP.

Не очень сходится с вашими догадками.
Это просто заявления, по факту ситуация обратная. Если вы вдуг захотите поддерживать старое железо, то внезапно столкнётесь с тем что по собирается из множества сторонних библиотек, который по умолчанию, тоже не желают заморачиваться и идут по умолчанию за самым последним поддерживаемым. Недавно представители магнита плакались какой они себе создали геморрой для поддержки парка старых машин и сколько граблей они собрали и то как ситуация постоянно ухудшается, а они RHEL5 сидят, не на винде.
Так а Microsoft при чём к тому, что разработчики разных библиотек не хотят поддерживать устаревшую ОС? Microsoft очень долго поддерживает инструменты разработки под старые версии ОС. То что среди разработчиков Python в целом Windows не особо то популярна, а уж Windows 7 тем более, и они дропнули её поддержку «по расписанию» для собственного удобства, опираясь на полиси, которые они сами написали более 10 лет назад — в чём вина Microsoft?
они дропнули её поддержку «по расписанию» для собственного удобства

Я про это и говорю, что везких причин кроме расписания к дропанью нет.
Разработчики других библиотек обычно не виноваты, они просто используют стандартные инструменты куда специально закладываются подобные грабли несовместимости. Например в libstdc++ добавили функцию basic_string::compare и внезапно часть дистрибутивов линукса мгновенно устарела. Вроде хотели же как лучше. Но тенденция во всей индустрии к одноразовому софту прямо видна не вооруженным глазом.
Ну «эта ОС устарела» — достаточно веское основание для отказа от поддержки. Вопрос, в какой момент считать ОС устаревшей. Разработчики Python выбрали свой критерий. Сейчас несовместимостей мало, так как от поддержки отказались недавно, но со временем количество несовместимостей будет увеличиваться, так как разработчикам развязали руки. Обсуждение отказа от поддержки Windows 7 было тут.

Лично мне кажется, что они поспешили (и надо было протянуть хотя бы до 2023), но хоть сколько нибудь заметной волны недовольства от отказа поддержки Windows 7 не было, значит наверное Python мало кому уже нужен на Windows 7. Судя по 15 звёздам в репозитории версии с поддержкой Windows 7, людей кому нужен новый Python на Windows 7 ничтожно мало.

От того что софт в какой-то момент заканчивает поддержку старых ОС, он не становится одноразовым. Если вам нужен какой-то новый софт, который уже не работает на старой Windows 7, и у вас нет возможности или желания самостоятельно собрать его с поддержкой Windows 7, вы всегда можете поставить Windows 10 или 11. Я как-то ставил Windows 10 на компьютер аж 2009 года. Работает. Windows 10 будет поддерживаться ещё минимум 5 лет.
вы всегда можете поставить Windows 10 или 11
иногда такое не возможно. Да и смена «обоев» иногда приводит только к лишнему геморою и страданиям от «новшеств», если раньше всё просто работало, теперь за этим всем надо следить не поломают ли новые обновления принтеры и еще чего просто скажут что на этом железе больше работать невозможно, покупайте новое.
Ну «эта ОС устарела» — достаточно веское основание для отказа от поддержки.
— тут не отказ, а специальная установка палок в колёса.
Дело в том что огромное количество софта использует питон как скриптовый язык и даже если они не планировали их софт автоматом теперь вынуждает обновляться, старый софт это не модно, а еще и очень опасно (как раньше с ним работали и не вымерли досих пор, от поражения страшными дырами в безопасности не понятно).
И то что звёзд в репозитории мало, это потому как проблемы появляются не сразу а постепенно, более того сам посебе патч не исправит проблему с софтом который будет использовать питон без патча.
От того что софт в какой-то момент заканчивает поддержку старых ОС, он не становится одноразовым
Можно назвать запланированным устареванием. Но это сути не меняет.

Так вас никто не заставляет - используйте старый, не обновляющийся, питон на старой, не обновляющейся, windows.

Не вижу причин почему бы и нет. Если вы хотите чтобы он продолжал скачивать пакеты с PyPI (или другого репозитория) - то он будет их скачивать до тех пор пока они там публикуются.

Как я вижу вашу проблему - у вас (ок, теоретически у вас) есть старая система на Windows, которую нельзя обновлять по каким-то причинам.

Ок, скачайте все необходимые бинарники (старый Python, и тп) и пакеты (whl) локально и ставьте их локально когда переустанавливаете что-то. Я так делал.

Не хотите локально - можно поднять репозиторий во внутренней сети и ставить только оттуда.

Обновления безопасности не будут приходить на Python? Так они и на операционку не будут приходить, а в ней дыр гораздо больше.

Дело в том что огромное количество софта использует питон как скриптовый язык и даже если они не планировали их софт автоматом теперь вынуждает обновляться
Разработчики этого софта тоже сами принимают решение, нужен ли им самый новый Python без поддержки Windows 7, или они ещё хотят поддерживать Windows 7, из-за чего они могут решить либо остаться на предыдущей версии Python, либо же могут сами собрать самую последнюю версию Python с поддержкой Windows 7, даже патч для этого готовый есть. Но так как они тоже посчитали Windows 7 устаревшей, то тоже отказались от поддержки.

В начале следующего года Google грозится перестать выпускать мажорные обновления Chrome для Windows 7, а ещё через год прекратить выпускать даже критические обновления для той версии Chrome, что будет последней для Windows 7. Клоны Chromium неизбежно последуют, так как вряд ли кто захочет тратить деньги на самостоятельную поддержку Windows 7. Как и в случае с Windows XP, Mozilla скорее всего будет поддерживать Windows 7 на 2-3 года дольше.

В общем, чем дальше, тем больше ПО будет выходить без поддержки Windows 7. Это неизбежно.

Можно назвать запланированным устареванием. Но это сути не меняет.
Нет, это не запланированное устаревание. Вы всё ещё можете обновить ОС, чтобы новый софт тоже работал. Вы просто хотите странного: чтобы самый новый софт работал на ОС более 10-летней давности. Старой ОС старый софт. Жизненный цикл Windows 7 подходит к концу, и в ближайшие несколько лет она перейдёт в категорию «ретро», как и Windows XP. Грубо говоря, когда все основные браузера (по сути, Chrome и Firefox) перестанут поддерживать Windows 7, тогда и всё. Так как сидеть в интернете в не последней версии браузера долго не получится (уже через год сайты начнут ломаться), плюс это небезопасно.
Вы просто хотите странного: чтобы самый новый софт работал на ОС более 10-летней давности.
По вашему это не возможно?
Старой ОС старый софт
к сожалению вы просто не сможете найти такой софт. Например дрова для старых карт AMD последняя версия которая есть на сайте, не рабочая (поломано апаратное ускорение видео), а рабочую надо еще поискать.
к сожалению вы просто не сможете найти такой софт.
При желании можно очень много чего найти. Я вот несколлько лет назад искал старые программные синтезаторы Yamaha для Windows 3 и 9x, нашёл много всякого, теперь не знаю как найти время чтобы это всё разгрести и систематизировать. Хотя это вообще софт родом из 90-х. А вы говорите про софт для Windows 7, которая ещё только собирается перейти в категорию «ретро».

По вашему это не возможно?
Возможно поддерживать да хоть Windows 95. Но это теряет смысл по мере устаревания ОС, а время и деньги на поддержку — требует.

Вас же не возмущает, что свежий Python не поддерживает DOS. А ведь когда-то поддерживал. То же самое и с Windows 7. Рано или поздно, весь популярный софт перестанет её поддерживать.

Если целесообразно - то возможно, конечно. Но каждая строчка кода, теоретически, должна кем-то поддерживаться и тестироваться. Нужно ли тестировать на старой ОС? А, ведь, для нее и собирать бинарники надо тоже отдельно.

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

Что касается совместимости: в новом Python вводятся, например, новые языковые констукции - async/await, моржовый оператор, switch, ... Раз использовав новую фичу - вы автоматически заставляете всех пользователей вашего приложения или библиотеки использовать версию интерпретатора выше определенной вами. Если где-то еще используется Python 2.4 (например) - это разве повод поддерживать его в новых библиотеках?

Но каждая строчка кода, теоретически, должна кем-то поддерживаться и тестироваться

Внезапно эти строчки уже работали. И тесты проводит машина.

Что касается совместимости: в новом Python вводятся, например, новые языковые констукции — async/await, моржовый оператор, switch

Внезапно питон работает не только под windows и желание использовать именно в версии windows эти «незаменимые» блестящие функции очень настораживает. Каким боком внутри языковые конструкции привязаны к функция работы с именами файлов. Которые отсутствуют в других ос. При этом не вызывая каких то ни было трудностей.

Я вот несколлько лет назад искал старые программные синтезаторы Yamaha для Windows 3 и 9x, нашёл много всякого

Сравнили, раньше по было не большое и автономное. Кто будет хранит сетевые репозитории всех версий питона и библиотек. Оно кому-то надо?

Насколько я понимаю, одна из фич новых версий Windows - поддержка путей длиннее 260 символов. И эти изменения в python, возможно, связаны с тем, чтобы не поддерживать старый код с этим ограничением.

А КДПВ вообще для Python2, который, по идее, уже точно 2 года как не поддерживается...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий