После 8 месяцев напряжённой работы вышла новая версия языка Clojure — 1.2. Clojure — Lisp'образный язык общего назначения, работающий на платформах JVM и .Net и отличающийся более функциональным подходом и специальными средствами для упрощения разработки параллельного кода.
В новой версии очень много изменений, из которых особо стоит отметить следующие:
- Введены протоколы (protocols) и типы данных (datatypes), позволяющие создавать новые абстракции и полиморфные функции. При этом производительность гораздо выше, чем при использовании мультиметодов;
- Расширена деструктуризация структур данных, о которой я уже писал;
- В составе языка введено несколько новых пространств имен, функции которых были перенесены из clojure-contrib. Сюда относятся функции для работы со строками, repl, pretty printer, ввод/вывод Java, и т.д.;
- Расширен набор функций для работы с последовательностями;
- Добавлена поддержка аннотаций Java, что позволяет использовать соответствующий функционал различных фреймворков;
- Много изменений, связанных с улучшением производительности кода;
- Для указания метаданных теперь вместо #^ используется просто ^.
Статья Введение в Clojure была частично обновлена описанием новых возможностей (кроме протоколов, которые будут чуть позже).