Vladimir Zhbanov <vzhba...@gmail.com> writes: > On Fri, Oct 16, 2015 at 01:33:51AM +0300, Artem Chuprina wrote: > > И, прошу прощения за невежество, что в языках с duck typing хуже по > сравнению с языками со статической типизацией, если не считать размер > объектного кода из-за проверок типа?
Ну, тут есть много мнений, но самое существенное -- возможность выявить проблему во время компиляции, а не в рантайме. Это, кстати, палка о двух концах. Для прототипирования удобнее использовать языки не строго типизированные, потому что Вы потратите меньше времени на то, чтобы "договориться" с компилятором о том, какие типы уместны при вызове данной функции. Но тогда надо иметь в виду, что всякие граничные случаи могут давать ошибки. И тогда на сцену выходит статическая типизация, которая просто не даст проекту скомпилироваться, если Вы в каком-то месте пытаетесь подсунуть в функцию значение несоответствующего типа. > Не знаю за другие языки (и даже за другие лиспы), дюже не пробовал, но > в guile scheme (который я пытаюсь начать осваивать в последние пару > лет) вопрос размера объектного кода сейчас во многом решается на этапе > прекомпиляции (если я правильно понял одного из авторов), причём > работа в этом направлении идёт масштабная. Какая бы там работа не шла, проблема не в размере кода, и даже не в производительности. Вопрос лишь в том, когда выявляются ошибки. И это важно, если Вы намерены отдавать программу в продакшн. > ... >> DK> Сейчас я работаю в основном на Racket Scheme, Emacs/Common Lisps и >> DK> Ocaml. Последний выглядит для меня примерно как Haskell, только без >> DK> ленивости. Синтаксис выразительный, но логика вычислений проще поддаётся >> DK> осмыслению, и дебаг также не вызывает трудностей. >> >> Мозги разные? Для меня логика вычислений на хаскеле на порядок (по >> основанию явно больше 2, но не 10) проще для осмысления. Именно в силу >> функциональности. Ведь императивный алгоритм - это инструкции для > > Ээээмм, ещё раз прошу прощения... А разве названные языки не- (недо-?) > функциональные? Они мультипарадигменные. Позволяют писать в обоих стилях. Функциональный, само собой, поощряется.
signature.asc
Description: PGP signature