[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl or Python?



 >> Спецификация типов параметров в прототипе функции — самый лаконичный способ
 >> указания такой проверки. Плюс на один фрейм меньше в стектрейсе ошибки
 >> (проверка не изнутри функции, а снаружи). Плюс автодокументированность.
 >> 
> Эти плюсы перекрываются одним большим минусом: далеко не всегда (если
> не сказать сильнее) список допустимых значений параметра в точности
> совпадает с полным списком значений его типа.
Список допустимых значений здесь и сейчас -- всегда подмножество
значений, который допускается типом. Чем "ближе" первое ко второму, тем
более строгая типизация. Вспоминаем хотя бы перечислимые типы Pascal-е
подобных языков и их полное отсутствие в С-подобных.

> Другими словами, дополнительные проверки скорее всего всё равно
> потребуются.
Да, в поле действительных чисел квадратный корень можно извлекать только
из неотрицательных чисел. Run-time проверки все равно нужны.
Run-time ошибки все равно случаются. Увы.

>  А следовательно совсем не факт, что строгая типизация
> решает хотя бы не меньше проблем, чем создаёт.
Ни из чего, что написано выше это не следует. Не указано даже, какие
конкретно проблемы вам создает "строгая типизация".
Какие проблемы создает динамическая было уже указано не раз.

-- 
Best regards, Aleksey Cheusov.

Reply to: