Баттл

Jun 28, 2012 00:19

Тут недавно возник такой вопрос - а чем, собственно, по существу отличаются Scala и Clojure?

У меня такие соображения:

  • static vs dynamic typing
  • компилятор найдет больше ошибок
  • но зато писать дольше - за это время можно и юнит-тест наговнякать
  • ориентированность на concurrency (иммутабельные структуры, STM) - в Clojure из коробки, в Scala через Akka
  • ленивые вычисления vs ?
  • большой, сложный язык (классы, объекты, типы, наследование, микс ФП и ООП, сидит сразу на всех стульях - Scala) vs маленький, компактный, открытый, композабельный (данные, функции, неймспейсы, только ФП - Clojure)
  • принципиальная академичность (Scala) vs прагматичность (Clojure)
  • расширяемость - макросы в Clojure, в Scala что есть, то есть
  • примат данных (Clojure) vs примат системы типов (Scala)
  • единый семантически богатый формат обмена данными (edn) vs выбери сам
  • eval и там, и там (в Scala используется редко)
  • REPL и там, и там
  • долгая промышленная разработка, большая команда vs быстрое прототипирование
  • ни то, ни то не отдать [junior] developers в энтерпрайз.
  • многоплатформенность (Clojure переносится на js, .net, python) vs только jvm
  • оба потихоньку где-то используются, но killer apps ни у кого нет
  • interop в clojure хороший, в скале вроде неплохой (но коллекции надо конвертировать)
  • про производительность Scala я слышал много хорошего by default, а в Clojure надо спускаться к java-примитивам в узких местах
Прошу высказаться, что вам кажется важным, поправить если я где ошибся, и уточнить пропуски по Scala, если знаете.

А вообще Clojure побеждает по всем фронтам.

нужна ваша помощь, ru, clojure, fp, формула успеха

Previous post Next post
Up