Founder в FRESHCODE
  • Как перестать бояться и полюбить Clojure

    Интересное замечание про комьюнити.

    Размеры комьюнити сильно связанны с продакшеном. И у меня есть стойкое ощущение что Clojure больше используется в продакшене чем другие «альтернативные» языки(возможно это confirmation bias).

    Могу выделить несколько причин/гипотез:
    1. JVM + экосистема
    2. Дизайн заточен на практическое применение
    3. Простота и композируемость(expression problem и мультиметоды как варианты решения)
    4. Простой monkey-patching. Не раз спасал в продакшене

    Так что, при всей моей любви к строгой сильной типизации — на свой проект я бы брал кложу

  • Как перестать бояться и полюбить Clojure

    Из практики с Haskell и Clojure:
    1. Типы приложения тоже нужно проектировать. Чем больше свойств софта мы хотим выразить в типах — тем сложнее будет его писать. Некоторые свойства вообще требуют Advanced системы типов которых даже в GHC нет.
    2. Типизация добавляет приключений с сайд эффектами. Приходится придумывать монады, монадические трансформеры.
    3. На Clojure цикл write-run-change значительно быстрее за счет REPL(да, в Haskell тоже есть REPL, но опыта подключения к работающему софту и замене целых частей кода на лету у меня нет)
    4. Скобочки перестаешь замечать уже через 2 недели. А если работаешь с paredit режимом в Emacs — начинаешь жалеть что другие языки не имеют такого простого и мощного синтаксиса.

    Справедливости ради это касается только моего опыта с Haskell. С ocaml и rescript(и другими воплощениями типа purescript) я не работал