История изменений
Исправление liksys, (текущая версия) :
В кривых руках
Дело не в кривых руках, а в кривом дизайне. Язык позволял конкатенировать юникодные и неюникодные строки, давая на выходе юникодную строку вместо того, чтобы кинуть исключение о несовместимых типах. Подход, который работает для флоатов и интов, является фатальным для строк. Я согласен с тем, что все нужно покрывать тестами, обмазывать линтерами и прочим, но этот момент в языке является еще одной лишней вещью, которую нужно держать в уме. Проблемы начинаются, когда ты используешь чужие библиотеки, из которых в каком-нибудь странном корнеркейсе прилетает юникод вместо строки или наоборот.
реальный смысл появился только в 3.5
Я же в том же каменте написал - смысл в стоимости поддержки. Чем дольше ты откладываешь, тем больше кода придется переносить. Если по фичам 3.2 был равен 2.6, то какой смысл начинать писать на 2.6 новый проект, если потом все равно придется переделывать?
Исходная версия liksys, :
В кривых руках
Дело не в кривых руках, а в кривом дизайне. Язык позволял конкатенировать юникодные и неюникодные строки, давая на выходе строку вместо того, чтобы кинуть исключение о несовместимых типах. Подход, который работает для флоатов и интов, является фатальным для строк. Я согласен с тем, что все нужно покрывать тестами, обмазывать линтерами и прочим, но этот момент в языке является еще одной лишней вещью, которую нужно держать в уме. Проблемы начинаются, когда ты используешь чужие библиотеки, из которых в каком-нибудь странном корнеркейсе прилетает юникод вместо строки или наоборот.
реальный смысл появился только в 3.5
Я же в том же каменте написал - смысл в стоимости поддержки. Чем дольше ты откладываешь, тем больше кода придется переносить. Если по фичам 3.2 был равен 2.6, то какой смысл начинать писать на 2.6 новый проект, если потом все равно придется переделывать?