Версия 1.9 содержит две главные новые возможности — интеграция с spec и cli-утилиты.
spec — это библиотека для описания структур данных и функций с поддержкой валидации, деструктурирования, документации, отчета об ошибках, генерации тестовых данных и обобщенной генерации тестов.
spec интегрируется в Clojure через две новые библиотеки:
Такая модуляризация облегчает обновление spec независимо от релиз-цикла Clojure.
Инструменты командной строки предоставляют быструю и лёгкую установку, Clojure REPL (!!!), использование Maven и локальных зависимостей, функциональный API для управления classpath.
var nums = ki (take 6 (map (fn [x] (js x * 2)) (range 1000)));
Идёт разработка ещё одного языка программирования, транслируемого в JavaScript: ki.
ki дополняет JavaScript приёмами функционального программирования и неизменяемыми структурами данных. На ki можно писать целые приложения, отдельные компоненты или просто функциональные «однострочники».
Синтаксис, семантика и структуры данных языка вдохновлены Clojure и ClojureScript.
Состоялся очередной релиз функционального языка программирования с интеграцией в Java платформу, спроектированного для поддержки concurrency и базирующегося на Lisp — Clojure 1.6.
Основные изменения по сравнению с версией 1.5.1:
Генерация байткода для JDK версии 1.6 (ранее генерировался байт-код, совместимый с 1.5). Библиотека ASM обновлена до версии 4.1;
Добавлено API, упрощающее вызов Clojure-кода из Java и других JVM языков
Операция деструктурирования хеш-мапов стала еще удобнее;
Добавлен синтаксический сахар в виде операции (some? x), эквивалентной вызову (not (nil? x)), а так же if-some и when-some;
Новые алгоритмы хеширования для примитивов и коллекций;
25 октября в Санкт-Петербурге состоится очередная встреча функциональных программистов.
Темы докладов:
Обзор Clojure. Доклад рассматривает Clojure с практической точки зрения: основы синтаксиса, нужные утилиты и библиотеки, подводные камни. Предварительное знание Clojure не требуется.
Зачем нужны зависимые типы. В докладе будут рассмотрены теоретические аспекты систем зависимых типов на примере системы Мартина-Лёфа. Также будут даны примеры использования зависимых типов: изоморфизм Карри-Ховарда, вычисления во время компиляции, инварианты, проверяемые во время компиляции, безопасный printf.
Участие бесплатное. Необходима предварительная регистрация.
Вышла новая версия языка программирования Clojure — современного диалекта Лиспа с поддержкой разработки в интерактивном режиме, поощряющего функциональное программирование и упрощающего поддержку многопоточности. Clojure работает на платформах JVM и CLR.
Среди изменений:
Расширяемая процедура чтения. Теперь разработчик может указывать функцию для чтения своих типов данных. Для этого необходимо указать метку для своего типа данных и соответствующую функцию чтения, которая будет вызвана после того, как следующая за меткой форма будет считана стандартным reader. Пример:
#foo/bar [1 2 3]
;;после чтения метки reader сначала считает форму [1 2 3], затем осуществит вызов процедуры, связанной с этой меткой, и передаст ей считанные данные.
Новый синтаксис для доступа к полям записей. Теперь можно писать так:
Несколько дней назад вышла библиотека Avout он небезызвестной команды clojure/core. Библиотека представляет собой реализацию Distributed Software Transactional Memory. На сайте проекта доступна документация и примеры кода, исходный код самой библиотеки доступен на гитхабе и распространяется на условиях лицензии Eclipse Public License.
Напоминаю, что clojure - это современный диалект лиспа, поощряющий функциональный стиль программирования и упрощающий разработку многопоточных программ. Clojure работает на платформах JVM и CLR. Руководит разработкой языка Рич Хикки (Rich Hickey), который ранее трудился над javac.
После разработки, длившейся больше года, вышла вторая версия платформы для создания интернет-приложений JavaFX. Эта технология имеет давнишнюю историю: будучи созданной в 2007 году под названием «F3», успела претерпеть несколько релизов, а также поменять название и хозяев. Сегодняшний JavaFX - достойный ответ Oracle таким технологиям как Adobe AIR и Microsoft Silverlight. Это подразумевает быструю и эффективную 2D- и 3D-графику, использующую аппаратное ускорение; векторную анимацию, построенную на принципах keyframe и tweening; эргономичный набор виджетов; запуск как в браузере, так и через Java Web Start; возможность инсталляции в качестве desktop-приложения; возможность использовать современные мощные языки программирования.
Ключевым моментом версии 2.0 является то, что вся функциональность JavaFX доступна теперь в виде обычных Java API. Если раньше единственным языком для JavaFX являлся FXScript, то теперь платформа JavaFX открыта для всего спектра JVM-языков: Java, Scala, Groovy, JRuby, Jython, Clojure, Mirah, Fantom и другие; почетное место в списке занимает Visage - достойный наследник FXScript. Авторы JavaFX надеются, что этим списком будут удовлетворены сторонники даже самых экзотических тенденций в программировании. Остальные важные моменты релиза 2.0 вкратце перечислены ниже; подробнее ознакомиться с ними можно по ссылке.
О выходе JavaFX 2.0 было объявлено вчера на конференции JavaOne'2011 в Сан-Франциско. Разработчики пообещали в скором времени открыть исходные тексты всей платформы JavaFX в рамках проекта OpenJDK. Помимо этого, были озвучены небезынтересные идеи касательно будущей Java 9, такие как реификация, оптимизация хвостовых вызовов, продолжения (continuations) и метаобъектный протокол (MOP).
В данный момент доступна стабильная версия под Windows, Developer Preview под Mac OS и альфа версия под Linux. Стабильная Linux версия ожидается в 2012.
Состоялся релиз Clojure 1.3, динамического языка для JVM. Clojure можно использовать в проектах любого рода, при этом важной его особенностью является сочетание удобства скриптового языка с эффективностью многопоточного программирования. Как любой динамический язык, Clojure компилируется в байт-код для JVM непосредственно на этапе выполнения. В то же время Clojure является диалектом Lisp, предоставляя вам все преимущества функционального программирования.
Изменения в новой версии:
Монолитная система дополнений clojure-contrib.jar заменена на полностью модульную структуру, что позволяет, во-первых, не включать в готовые приложения код неиспользуемых библиотек, а во-вторых, иметь собственный цикл разработки для каждой отдельной библиотеки. При этом для обновления с Clojure 1.2 рекомендуется сначала обновить библиотеки, а затем уже обновиться до Clojure 1.3;
После 8 месяцев напряжённой работы вышла новая версия языка Clojure — 1.2. Clojure — Lisp'образный язык общего назначения, работающий на платформах JVM и .Net и отличающийся более функциональным подходом и специальными средствами для упрощения разработки параллельного кода.
В новой версии очень много изменений, из которых особо стоит отметить следующие:
Введены протоколы (protocols) и типы данных (datatypes), позволяющие создавать новые абстракции и полиморфные функции. При этом производительность гораздо выше, чем при использовании мультиметодов;
Расширена деструктуризация структур данных, о которой я уже писал;
В составе языка введено несколько новых пространств имен, функции которых были перенесены из clojure-contrib. Сюда относятся функции для работы со строками, repl, pretty printer, ввод/вывод Java, и т.д.;
Расширен набор функций для работы с последовательностями;
Добавлена поддержка аннотаций Java, что позволяет использовать соответствующий функционал различных фреймворков;
Много изменений, связанных с улучшением производительности кода;
Для указания метаданных теперь вместо #^ используется просто ^.
Статья Введение в Clojure была частично обновлена описанием новых возможностей (кроме протоколов, которые будут чуть позже).
Вышла новая версия языка программирования Clojure. Clojure является динамически типизируемым и компилируемым языком общего назначения для JVM и CLR.
Изменений много. Среди них:
поддержка примитивных массивов (primitive array generators)
chunked-последовательности
futures, предназначенные для асинхронных вычислений
Daniel Weinreb, "один из пяти" авторов книги Common Lisp: The Language, высказал свой прогноз относительно развития своего любимого инструмента. Он считает, что в будущем диалект Clojure вытеснит Common Lisp
4 мая вышла версия 1.0 языка программирования Clojure, представляющего собой функциональный диалект Lisp для JVM. Язык впитал в себя идеи из Lisp, ML, Haskell.
Основные возможности языка
Динамическая типизация
полиморфизм времени исполнения (Runtime Polymorphism)
паралелизм (Concurrent Programming)
Эта версия позиционируется автором, как стабильная и содержит, в основном, багфиксы.
Небезызвестные Daniel Spiewak и Stephan Schmidt обсуждают перспективы двух динамических языков платформы JVM, Scala Clojure и их перспективы стать "следующим языков платформы JVM после Java"