Aleksey Cheusov -> debian-russian@lists.debian.org @ Thu, 19 Mar 2009 18:58:59 +0200:
>> AC> Имеет. Динамические языки требуют на порядок большего количества >> AC> тестов. Это и есть "цена" динамичности. >> >> Из вышеизложенного следует, что нифига не большего. Ровно такого же. AC> Читать внимательно. Проверка соответствия типов в кусках кода, AC> который не покрыт тестами дает _минимальную необходимую_ гарантию AC> корректности этого куска кода. А с какого перепугу ты решил, что минимальная необходимость именно такова? С того, что легче написать транслятор, способный это проверить? Так задаче-то с того не легче... Я бы скорее сказал, что с точки зрения задачи минимально необходимой является запись контракта. И пусть транслятор из этого контракта выведет, что сумеет, на стадии компиляции. Там в принципе можно проверить гораздо больше, чем тип. Ну и соответственно, автоматически зажухать лишние проверки, если есть контракт и у вызывающего, и у вызываемого кода. >> Потому что статического контроля для реальных задач совершенно >> недостаточно. AC> Надевать обувь зимой при выходе на улицу совершенно недостаточно AC> для того, чтобы не замерзнуть, но почему-то все ее надевают. Ты же AC> матемак, а тут элементарная логика :-) Так обувь надевать необходимо, а тип объявлять - нет... >> AC> То, что многие опенсорсники их не пишут, полагаяюсь исключительно >> AC> на бетатестирование - это их проблемы. >> >> А вот функциональный подход - на порядок меньшего (позволяет >> декомпозицию и тестов тоже). AC> Угу, в проектах уровня hello world. С хренов ли? Собственно, самый толстый набор тестов, который я видел, написан к проекту на языке со статической типизацией. Потому как толку там с той типизации... А проверять надо, как искажены документы, когда устарели ключи, и т.п., и что при этом выводится в лог... И от того, что типы сходятся, никому не легче. AC> И это, технологии формального доказательства правильности программ AC> вполне развиты и для императивного подхода тоже. Вот только не работают. Ну, то есть все бы ничего, но сложность доказательства - экспонента от размера программы, и вероятность ошибки в доказательстве, соответственно, тоже. Программы уровня hello world, правда, доказывать можно... -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: r...@jabber.ran.pp.ru /итд/почтопосылалка.нстрк (c) -- To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org