LINUX.ORG.RU

История изменений

Исправление AndreyKl, (текущая версия) :

А вот это использование и корректность типов при этом вполне проверяется тестами

Скажем, ты в итоге придёшь к тому что «программу всё равно надо запустить, а то ведь мы не узнаем, работает она или нет».

Я ещё раз повторяю: то что проверено в типах проверять смысла нет. Это область компилятора. В компиляторе могу быть ошибки, конечно, но я думаю это достаточно редкое явление, чтобы не считать его основным.

И если более-менее осмысленная программа на хаскеле скомпилировалась, это часто значит что она работает корректно. Часто в том смысле что несравнимо чаще чем с++, си, php, javascript в той же ситуации.

То что корректно в динамическом языке - мне пофиг, потому что это не имеет практического смысла.

Ещё раз - смысл в том чтобы возложить возможно большее число проверок на типы, потому что типы проще в написании и поддержке.

То что не все случаи описываются типами - не так важно, важно что трудозатраты значительно уменьшаются.

Кстати, на сколько я понимаю, пример с цельсиями и фаренгейтами некорректен - это вполне проверяется типами, причём доказывается. А тесты могут проверить лишь некоторое ограниченное число тестовых примеров.

Исходная версия AndreyKl, :

А вот это использование и корректность типов при этом вполне проверяется тестами

Скажем, ты в итоге придёшь к тому что «программу всё равно надо запустить, а то ведь мы не узнаем, работает она или нет».

Я ещё раз повторяю: то что проверено в типах проверять смысла нет. Это область компилятора. В компиляторе могу быть ошибки, конечно, но я думаю это достаточно редкое явление, чтобы не считать его основным.

И если более-менее осмысленная программа на хаскеле скомпилировалась, это часто значит что она работает корректно. Часто в том смысле что несравнимо чаще чем с++, си, php, javascript в той же ситуации.

То что корректно в динамическом языке - мне пофиг, потому что это не имеет практического смысла.

Ещё раз - смысл в том чтобы возложить возможно большее число проверок на типы, потому что типы проще в написании и поддержке.

То что не все случаи описываются типами - не так важно, важно что трудозатраты значительно уменьшаются.

Кстати, на сколько я понимаю, пример с цельсиями и кельвинами некорректен - это вполне проверяется типами, причём доказывается. А тесты могут проверить лишь некоторое ограниченное число тестовых примеров.