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