> Что именно считать синтаксисом и семантикой?Синтаксис и семантику. Например, изменение смысла оператора / для
тех же самых типов аргументов (int). Или вот изменение синтаксиса print.
> Например, был ряд запланированных устареваний
> модулей по этой схеме:
Язык никак не поменялся.
> Я и не собираюсь это делать, потому что данное изменение относится к
> миграции на 3.x, а не сохранения стиля 2.x.
Я не знаю другого руководства для введения несовместимых изменений плавным образом.
> Но если Вы действительно хотите это сделать - путь тоже есть:
> * вводим новую функцию типа divide()
> * вводим во __future__ новый импорт, который генерирует жалобы на все непеределанные
> '/' в тексте; должно быть или '//' или 'divide()'
Никаких __future__. Просто выходит новый релиз - и генерит предупреждения
на использование /
> * на следующих версиях восстанавливаем рекомендацию использовать '/' и депрекейтим divide().
В следующих версиях мы сперва удаляем /, затем только вводим / заново и депрекейтим divide.
> Это и есть те "строительные леса" на время перехода, о которых я
> говорил. Да, громоздко. Да, лишняя работа.
Угу. После такого безумства - считаем оставшихся пользователей по пальцам одной руки...
Вдумайтесь: чтобы заменить "богомерзкий" синтаксис или семантику (на что-то несовместимое) - вы предлагаете какую-то часть синтаксиса языка выпилить *целиком*. И после того как пользователи смигрировали свой код на что-то эквивалентное - восстановить старый синтаксис с нужным "патчем". И заставить пользователей делать изменения еще раз, выпилив эквивалент...
Ничего удивительного, что разработчики Python предпочли иной вариант. Кстати, было бы любопытным понаблюдать ваш сценарий в действии на примере другого языка. Было такое?
>> То что описали вы - делает from __future__ import. Теоретически, наверно
>> нет ничего невозможного во введении *всех* новшеств из py3 подобным образом.
>> А практически - они, как я понимаю разработчиков python, приведут к
>> переусложнению потрохов CPython.
> Только на время перехода и достаточно немного - десяток лишних методов и функций.
Доказательством этого будет полный набор нововведений из py3 в __future__. А пока,
извините, не верю.