LINUX.ORG.RU

Clojure 1.3

 , , ,


1

2

Состоялся релиз Clojure 1.3, динамического языка для JVM. Clojure можно использовать в проектах любого рода, при этом важной его особенностью является сочетание удобства скриптового языка с эффективностью многопоточного программирования. Как любой динамический язык, Clojure компилируется в байт-код для JVM непосредственно на этапе выполнения. В то же время Clojure является диалектом Lisp, предоставляя вам все преимущества функционального программирования.

Изменения в новой версии:

  • Монолитная система дополнений clojure-contrib.jar заменена на полностью модульную структуру, что позволяет, во-первых, не включать в готовые приложения код неиспользуемых библиотек, а во-вторых, иметь собственный цикл разработки для каждой отдельной библиотеки. При этом для обновления с Clojure 1.2 рекомендуется сначала обновить библиотеки, а затем уже обновиться до Clojure 1.3;
  • Улучшенная поддержка примитивов для арифметических расчетов;
  • Изменения в определении записей (defrecord) и типов (deftype);
  • Улучшена система оповещения об исключениях и ошибках;
  • Несколько новых функций в clojure.core, clojure.data, clojure.pprint, clojure.repl;
  • clojure.java.shell/sh теперь поддерживает в качестве источника данных объекты типов InputStream, Reader, File, byte[];
  • Поддержка Maven для компиляции и развертывания приложений;
  • Улучшения в плане производительности скомпилированных приложений;
  • Множество устраненных ошибок.

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

★★★★★

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

Clojure

а) ужасная многопоточность (если сравнить с эрлангом)
б) отсутствие инструментов для мета-программирования (если сравнить с CL)
в) в мире нет ни одного предложения по работе на clojure (на haskell их аж 6)
г) в зависимостях очень крутая виртуальная машина, которую можно сравнить только с феррари. Си ей уступает по скорости на всех задачах.

Вышла Clojur-r-r-eee 1.3.666! Ура!

anonymous ()

> Поддержка Maven для компиляции и развертывания приложений

Фу, какая гадость! Запилили бы себе что-нибудь по типу SBT.

Zenom ★★★ ()

прикольно, что жаба постоянно уделывает всех-всех-всех по скорости, но при этом, когда я запускаю какую-нить простейшую прогу на этом языке, вся система встаёт раком.

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

У Вас неправильный мир, пересоберите. «Предложения по работе» на clojure есть.

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

у вас случаем не MacOS ?

detected by position of system

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

>прикольно, что жаба постоянно уделывает всех-всех-всех по скорости, но при этом, когда я запускаю какую-нить простейшую прогу на этом языке, вся система встаёт раком

Абсолютно согласен, ерунда какая-то получается..... в хит-парадах Жаба в первой строчке, но на обычном компе почему-то упорно тормозит....

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

С 64ТБ озу и 512 ядрами? А тесты на си наверное писали сами джависты и запускали на ноутбуке.

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

>Так это ж энетпрайзный комп нужен.

Могу предположить, что на энтерпрайзном компе, все, что угодно будет «летать», поэтому для оценки скорости работы, больше подходят обычные компы, тут как перед богом, никакие маркетинговые и пропагандистские приемы не пройдут, либо прога работает быстро либо тормозит.

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

хорошая, годная ссылка; пройдя чуть дальше к http://groups.google.com/group/clojure/browse_thread/thread/b18f9006c068f0a0?... видим:

The main problem is that the current implementation of actors in Scala suffers from known memory leaks

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

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

У жабы тормозной гуй. Дело совсем не в VM.

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

$ cat Iriska.java


public class Iriska
{
    public static void main(String[] argc)
    {
    System.out.println("Ты не прав");
    }
}

$ cat vkontakte.php

<?php
print "Пхп хароший язык, начялника";
?>

$ time java Iriska.java
cpu 0.142 total
$ time php vkontakte.php
cpu 0.032 total

Вот php быстрее java в 4.4 раза!!!
Только не надо мне говорить, что джаве нужен время разогреться, что не нужно считать время зупуска VM и прочую чушь.

Смирись с действительностью.

anonymous ()

Ну какой смысл поверх ненужной жирной системы костылей и подпорок городить город-сад функциональщины?

Каким образом сия метода хотя бы в теории могла бы привести к успеху?

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

System.out.println(«Ты не прав»);

$ time java

time java

time

Хелловордщики отаке!111

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

>Ну какой смысл поверх ненужной жирной системы костылей и подпорок городить город-сад функциональщины?

Каким образом сия метода хотя бы в теории могла бы привести к успеху?

таким же образом как горождение функциональщины поверх ненужной жирной системы костылей и подпорок x86. никак.

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

Реализаций экторов больше одной. Сходу могу упомянуть реализации от Lift и Akka.

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

ИДЕМ ДАЛЬШЕ

Как мы уже выяснили пхп супербыстр.
Теперь перечислим остальные киллер-фичи.
1) Горячая замена кода. Чтобы обновить пхп-приложение не нужно перезапускать сервер. Т.е. эдакий нон-стоп сервер ;]
2) Отказоусточивость. Даже если что-то там упало, это еще не повод не показывать темплейт сайта посетителю с ошибкой вроде: пользователь pavel не может подключиться к БД example.com с паролем «eralash». Кому нужны данные/информация, когда есть сверстанный дизайн сайта?
3) Доступность для пролетариата. Любой сможет открыть пхп-файл и отредактировать пару строк.

Where are your gods now?

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

>таким же образом как горождение функциональщины поверх ненужной жирной системы костылей и подпорок x86. никак.

Так вот оно чо, Это значит внутренние эмигранты-недоперфекционисты налабали. Не нужно.

AVL2 ★★★★★ ()
Ответ на: ИДЕМ ДАЛЬШЕ от anonymous

>Where are your gods now?

ты открыл нам глаза. our gods now in php

Karapuz ★★★★★ ()
Ответ на: ИДЕМ ДАЛЬШЕ от anonymous

Да, быдлокодить сайты проще на пыхе. И что дальше?

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

> прикольно, что жаба постоянно уделывает всех-всех-всех по скорости, но при этом, когда я запускаю какую-нить простейшую прогу на этом языке, вся система встаёт раком.

Не все ведь так просто. Время запуска — одна характеристика, пропускная способность — другая, время отклика при интерактивной работе — третья.

В OpenJDK/Oracle JDK используется виртуальная машина Hotspot в двух вариантах: server и client. Первая оптимизарована для получения максимальной пропускной способности, что наиболее важно на серверах. Во второй попытались уменьшить время запуска и время отклика в ущерб пропускной способности. Client VM доступна только для x86, 64-битной версии нет. В JDK7 в server VM добавили «tiered compilation» — попытка объединить преимущества обоих VM, по умолчанию пока выключено.

Еще одна важная особенность: максимальная производительность достигается не сразу, а через некоторое время после запуска, когда выполнится JIT-компиляция с оптимизациями, учитывающими поведение программы во время выполнения (подобные оптимизации не доступны при статической компиляции и возможны только с JIT). Подробнее про оптимизацию в Hotspot: http://wikis.sun.com/display/HotSpotInternals/PerformanceTechniques

И это все особенности только Hotspot, а есть еще и совершенно другие реализации JVM...

В общем, для серверных приложений Hotspot вне конкуренции. С интерактивными графическими приложениями сложнее, особенно в Иксах, т.к. там еще и с реализацией 2D проблемы (исправили в JDK7?).

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

анекдоты без ссылок такие анегдоты...

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

Итак, вы измерили время запуска JVM и интерпретатора PHP (выводом нескольких байт данных в stdout можно пренебречь). Обычно интерпретатор PHP запускается при обработке каждого запроса, JVM — один раз. Делайте выводы.

Дальше можно еще поизучать http://shootout.alioth.debian.org/
Например, http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=java&am...

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

А вы запускаете Java в режиме server? В нём она сильно оперативу потребляет, но скорость выполнения на высоте. Рвёт дотнет как Тузик грелку. А в обычном режиме оно не быстрее дот-нетовских подделий. И по памяти, и по производительности. Конечно, это субъективное впечатление. Ведь сравнивая, я полагался только на свои ощущения, не проводя замеров.

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

>А вы запускаете Java в режиме server?

Может мне ещё 10 гигов памяти докупить? :}

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

Ну, это жизнено необходимо для быстрой и эффективной JIT-компиляции. Или скорости не будет:( Это минус почти всех языков использующих виртуальную машину с JIT-компиляцией. Как инжинеры Google заставили WM андроида работать довольно эффективно, они одни знают. Но нативные приложение всегда намного экономичней потребляют ресурсы.

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

Как инжинеры Google заставили WM андроида работать довольно эффективно

1. там V от Volks, а не W от Wagen, или нет?
2. почему именно инженеры Google?

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

Херня. Много гигов только мностры вроде IDEA жрут. Остальное в десятки мегов влазит.

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

> анекдоты без ссылок такие анегдоты...

Анекдоты и со ссылками остаются анекдотами: «Our choices at World Singles were: migrate to Akka, wait for Scala 2.10 (which is when I think Akka will be folded in). Neither were appealing solutions. Migrating to Clojure was less work».

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

Ну так это понятно. Потому на десктопе и эти штуки как-то использовать неудобно.

Deleted ()

>система оповещеня

Проверено: maxcom

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

>Могу предположить, что на энтерпрайзном компе, все, что угодно будет «летать»

Хех, нет ;)

X-Pilot ★★★★★ ()
Ответ на: комментарий от Fice

>И это все особенности только Hotspot, а есть еще и совершенно другие реализации JVM...

Из Hotspot/OpenJDK/IBM_J9 на моем ноутбуке на бенчмарке SPECjvm2008, самой быстрой оказалась HotSpot, так что про остальные не так интересно говорить...

X-Pilot ★★★★★ ()

А что на Clojure написано из того, что обычный хомячW@/юзер бубунты использует в повседневной жизни?

Stalin ★★★★★ ()

Любой хикки может стать богатым.

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

>А вы запускаете Java в режиме server? В нём она сильно оперативу потребляет, но скорость выполнения на высоте. Рвёт дотнет как Тузик грелку. А в обычном режиме оно не быстрее дот-нетовских подделий. И по памяти, и по производительности.

lolwut? Дотнет всегда был быстрее джавы из-за архитектурных особенностей.

Конечно, это субъективное впечатление. Ведь сравнивая, я полагался только на свои ощущения, не проводя замеров.

А ну все ясно. Очередной упоротый на сиплюсплюсе

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

>отнет всегда был быстрее джавы из-за архитектурных особенностей.

выдайте пруф, пожалуйста.

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

Потому как у школоты компьютеры старые, на до 2 Гб оперативки будет больше тормозить аналогов, но кто же ориентируется на русскую школоту. Вы запустите программку хотя бы на современном 2 ядерном процессоре и хотя бы на 2 Гб оперативки, минимальный стандарт на сегодняшний день и убедитесь что даже такой комбайн, как Eclipse летает.

На нормальном железе и сравнивайте с аналогами. А то если программа за $2000 на java тормозит у школоты, разработчикам до этого не дела ибо не их клиент нищеборот, который и за $500 системный блок себе купить не может.

anonymous ()

> Clojure компилируется в байт-код для JVM непосредственно на этапе выполнения.

Практики, подтвердите! Это правда или ошибка в новости?

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

Да там вообще смешно - претензии к нестабильности скальных акторов(святая правда) и выбор кложуры в котрой нет нестабильности акторов по причине того что несуществующая вещь не может быьт нестабильной.

Так что без пруфа я в жизни не поверю что кложура по сравнению со скалой ужала программу в 3 раза. С жабой - легко. Со скалой...

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

>Дотнет всегда был быстрее джавы из-за архитектурных особенностей

То-то он сосет в бенчмарках со свистом

Karapuz ★★★★★ ()
Ответ на: комментарий от X-Pilot

> Из Hotspot/OpenJDK/IBM_J9 на моем ноутбуке на бенчмарке SPECjvm2008, самой быстрой оказалась HotSpot, так что про остальные не так интересно говорить...

Субъективно, GUI на IBM J9 показался более отзывчивым, чем на Hotspot. Эти бенчмарки ведь время отклика не проверяют, только скорость обработки информации.

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