Здравствуйте, Константин Б., Вы писали:
КБ>А какая разница официально или нет? По факту никто не обещает тебе вечную обратную совместимость. Тут по крайней мере все прозрачно и предсказуемо и никто не мешает тебе использовать старую версию (ну кроме убунты).
Это вообще-то новая мода делать языки несовместимыми снизу вверх, до относительно недавних пор было принято тщательно следить, чтобы такого не происходило, а если никак не избежать, то на это опции у компилятора, например. А вот так заявить, что 2-ю ветку кинули, теперь третью используем, да и в ней 3.0 и 3.9 уже местами настолько разные, что и то и то надо держать — это моветон.
КБ>Мой опыт говорит об обратном. Очень часто для успешной сборки нужно весьма конкретное окружение. Так чтобы проект просто взял и собрался произвольной будущей версией тулчейна — это скорее исключение.
Да, бывают шероховатости с более новыми версиями. Но одно дело, когда например, для C++ можно указать в вызове g++ -fcommon -std=c++98, быть может еще пару опций задать для подстройки под старое поведение и успешно собрать исходники, написанные еще 20 лет назад в начале нулевых и другое, когда надо зоопарк компиляторов заводить, иначе то что три года назад писалось уже не собрать. Да, бывают баги, бывает, что код пишется в расчете на эти баги, но это все такое, чего в нормальном проекте стоит избегать. Конечно есть еще проблема зависимостей от библиотек, но кто сказал,что легко будет? В целом, может я пристрастен, но мне кажется старый проект на C/C++ (Perl, bash и прочий gnu utils) проще собрать в новом окружении, чем разруливать версии питонов и не к ночи будь помянуты, разных *.js