LINUX.ORG.RU

Clojure 1.2

 , , ,


1

0

После 8 месяцев напряжённой работы вышла новая версия языка Clojure — 1.2. Clojure — Lisp'образный язык общего назначения, работающий на платформах JVM и .Net и отличающийся более функциональным подходом и специальными средствами для упрощения разработки параллельного кода.

В новой версии очень много изменений, из которых особо стоит отметить следующие:

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

Статья Введение в Clojure была частично обновлена описанием новых возможностей (кроме протоколов, которые будут чуть позже).

>>> Полный список изменений

★★★★★

Проверено: catap ()

> о которой я уже писал;

где?

функции которых был перенесен

что-то тут не так

anonymous ()

А кто нибудь использует его?

slyjoeh ★★ ()

> Статья Введение в Clojure...

До конца пока не дочитал, но уже интересно, спасибо за статью ;) Может, действительно, попробую уже что-то на нём написать, а то всё Perl да Perl... :)

Casus ★★★★★ ()

мне вот тоже интересно, есть ли проекты юзающие сабж...

Drolyk ★★★ ()
Ответ на: комментарий от slyjoeh

А мозги размять и отвлечься от скучных Java/C#/C++? У меня роль разминателя играет Scala, в будущем еще хочу заценить Haskell.

Лиспоподобные не сильно интересуют, но пусть будут, почему бы и нет?

vertexua ★★★☆☆ ()
Ответ на: комментарий от vertexua

А мозги размять и отвлечься от скучных Java/C#/C++? У меня роль разминателя играет Scala, в будущем еще хочу заценить Haskell.

Лиспоподобные не сильно интересуют, но пусть будут, почему бы и нет?

Пусть будет, конечно, но мой мозг в достаточной степени нагружают Питон с Фортраном.

Vudod ★★★★★ ()
Ответ на: комментарий от Vudod

Есть разная нагрузка. Есть нагрузка сурового программирования. У меня это OpenCL. А есть нагрузка наоборот, очень эффективного программирования, когда пишешь небольшой код, который делает очень мощные вещи. Для этого нужны очень современные и продвинутые ЯП. Классное развлечение.

vertexua ★★★☆☆ ()

>не нужно

как .net и java

А что же тогда нужно?

anonymous ()

Интересна целесообразность изучения сабжа в свете того, что Гослинг ушёл из Оракла.

Учишь так JVM-зависимые языки, учишь... а потом - БАЦ! И JVM становится закрытой (в плане исходников) платформой (например).

Кто что думает по этому поводу? Опасно ли изучать языки, зависимые от JVM? Превратился ли Оракл в обезьяну с гранатой, с которой лучше не связываться? Почему ушёл Гослинг?

anonymous ()
Ответ на: комментарий от vertexua

для clojure есть пакет для работы с opencl, народ вроде его использует для вычислений

ott ★★★★★ ()

ну вот, а вы говорите.. и грозные поступки и заявления Оracl'a не помешали этому свершится)!

maxt ()
Ответ на: комментарий от anonymous

есть порт на .Net, да и вообще, портирование на новую платформу - не слишком тяжелая задача

ott ★★★★★ ()
Ответ на: не нужно от ClanMax

> не нужно как .net и java
И у вас, конечно же, есть кандидаты на замену? Только чтоб стандартизировано, надёжно, а главное с здоровенной инфраструктурой. А то вы одним своим заявлением половину энтерпрайза на помойку выкинули.

mix_mix ★★★★★ ()

А как бы посмотреть, сколько заказчиков реально используют это поделие?

Bioreactor ★★★★★ ()
Ответ на: комментарий от anonymous

Очевидно, баги MIT-SHM интереснее отлавливать на Си. :))

iZEN ★★★★★ ()

Ruby 1.9.2 релиз уже, считай, 2 дня назад вышел, а новости об этом на сайте так и нет. :(

ЗЫ Скрипты: Кому нужны быстрые и грязные скрипты - Ruby (ну Perl уж сильно устарел), кому нужно что-то подобное Java и C# - Python, кому голову поломать - Haskell, ну а по поводу доброго старого Лиспа - в Emacs (или DrScheme - Rocket). А Closure - Java + типа многозадачность... Хм... Даже если последнее верно, одно слово Java отбивает всякую охоту пробовать.

anonymous ()
Ответ на: комментарий от Legioner

Ну и чем может быть Лисп современен (который, по определению, всегда мог все)? Кусками синтаксического сахара? Ню-ню... Многозадачность? Так Лисп бегал на десятко-процессорных параллельных машинах еще лет двадцать назад. Что еще?

anonymous ()
Ответ на: комментарий от anonymous

Более функциональный язык (данные иммутабельные по умолчанию). Поддержка конкуррентности на уровне языка - STM, агенты, атомы. Вы почитайте - это не многозадачность на тредах и локах, это по другому сделано (хотя треды и локи доступны)

ott ★★★★★ ()

Пипец. Образчик из введения - отличие от Лиспа:

вместо функций car и cdr используются функции first и rest;

Все остальное абсолютно из той же оперы.

anonymous ()

Lisp на Жабе ?!?

Я один думаю что мир сошел с ума ?

Может .NET на Java залабать ?

vasya_pupkin ★★★★★ ()
Ответ на: комментарий от anonymous

покажите в лиспе иммутабельные данные? эх блин, знатоки...

ott ★★★★★ ()
Ответ на: комментарий от anonymous

>Опасно ли изучать языки, зависимые от JVM?

Очень опасно. Говорят, вызывает импотенцию и волосы на ладонях начинают расти.

Alve ★★★★★ ()
Ответ на: комментарий от ott

Вот спрошу как раз, какова производительность модели многозадачности в этом языке? Есть какие-либо реальные тесты или сравнения со Scala/Erlang/etc.? Ну или субъективные ощущения хотя бы :)

anonymous ()
Ответ на: комментарий от vasya_pupkin

> Lisp на Жабе ?!?

разницу между языком Java и JVM твой мозг не осиливает?

Я один думаю что мир сошел с ума ?


ну ты понел... :D

atiyakkha ()
Ответ на: комментарий от slyjoeh

> А кто нибудь использует его?

Человек пять-шесть во всем мире. Было бы больше, но психиатрия не дремлет, особо борзых изолируют.

anonymous ()
Ответ на: комментарий от Legioner

О да, шикарно осовременили, поломав cons. Что это за лисп такой, где нет точечных пар?

anonymous ()
Ответ на: комментарий от ott

> покажите в лиспе иммутабельные данные? эх блин, знатоки...

Termit Scheme)

buddhist ★★★★★ ()
Ответ на: комментарий от buddhist

и сколько у них пользователей? :-) я знаю, что есть и в racket/plt scheme немутабельные данные, меня просто всегда поражает уровень ЛОРовских аналитиков

ott ★★★★★ ()
Ответ на: комментарий от slyjoeh

Ну вот Отт и использует... :) Других не знаю.

gns ★★★★ ()
Ответ на: комментарий от atiyakkha

>разницу между языком Java и JVM твой мозг не осиливает?

Осилил, я чего-то новость видно жопой в первый раз прочитал.

vasya_pupkin ★★★★★ ()

Разве что на Нэт. Джава это уже «мeртвi бжёлы».

kristall ★★ ()
Ответ на: комментарий от kristall

>>Разве что на Нэт. Джава это уже «мeртвi бжёлы».

дурик, дуй на винфак. нэт под линухом какбы не работает.

qwerky ()
Ответ на: комментарий от kristall

> А моно это не нет?

Нет, конечно. Если бы это было одно и то же, то оно называлось бы одинаково.

sign ()
Ответ на: комментарий от kristall

> В смысле «Net,конечно» или «нет,конечно»?

Мне кажется, что Mono и .Net это разные вещи. К тому же не ясна судьба Mono с точки зрения патентных преследований со стороны Microsoft.

sign ()
Ответ на: комментарий от ott

>> Более функциональный язык (данные иммутабельные по умолчанию).

Иногда, после прочтения статей по ФЯ, складывается такое впечатление, что мутабельность данных это не просто плохо, а что это п--ц какой страшный грех! И то, что на, например, С в приницпе нельзя написать ничего путного, а если и получится, то будет жуткое, глючное, неподдерживаемое говно. В чем смысл связывать себя по рукам отказываясь от мутабельности??? (только не надо рассказывать про транспаретность кода и отсутсвие ситуаций типа «неизвестно кто присвоил глобальной переменной», это к мутабельности не относится, говеные, непонятно как работающие программы можно писать и на чистейших ФЯ).

cathode ()
Ответ на: комментарий от ott

ваше мнение - насколько racket (и язык, и «батарейки») применимы для реальных, серьезных задач? или это больше педагогический набор?

atiyakkha ()
Ответ на: комментарий от vasya_pupkin

> Осилил, я чего-то новость видно жопой в первый раз прочитал.

:) бывает...

atiyakkha ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.