После нескольких месяцев разработки вышла новая версия языка Clojure — 1.4. Clojure — Lisp'образный язык общего назначения, работающий на платформах JVM и .Net, известный специальными средствами для упрощения разработки concurrency кода.
Среди изменений стоит отметить:
- Появились mapv, filterv (который возращает векторы), reduce-kv (обрабатывает вектор как коллекцию индексированных пар)
- require может использовать ключевое слово :refer. :refer может принимать набор символов из области видимости(namespace, ns) или :all для подтягивания всех публичных переменных, так что теперь нет необходимости перед этим описывать все ns
- *compiler-options* можно отключить очистку локальных переменных (locals), тем самым улучшить опыт отладки
- = для char аргументов, убрано reflection предупреждние и улучшена производительность
- исключения больше не обрабатываются через RuntimeException, следовательно проще отлавливать основное исключение.
- улучшена производительность contains?
- clojure.core/hash больше не работает на основе .hashCode
Полный список изменений доступен в репозитории.
Релиз не очень большой, но сделаны важные улучшения в производительности и плавно начинают обкатывать Java 7.
Параллельно с релизом обновились некоторые интересные библиотеки, которые входят в состав Clojure Libraries:
- clj-time, обертка над известной joda-time библиотекой
- congomongo, тулкит для работы с NoSql БД Mongo
Напомню, что разработкой Clojure/core занимается небольшая команда разработчиков во главе с основателем языка Ричем Хики, а сообщество занимается разработкой дополнительных библиотек, которые постепенно могут входить в ядро или поставляться в пакете libraries.
P.S: Для тех кто еще не заметил, недавно, обновился Leiningen 2.0 preview3, облочка для разворачивания Clojure проектов.
Автор: Zeldan