LINUX.ORG.RU

Clojure 1.0

 , , ,


0

0

4 мая вышла версия 1.0 языка программирования Clojure, представляющего собой функциональный диалект Lisp для JVM. Язык впитал в себя идеи из Lisp, ML, Haskell.
Основные возможности языка

  • Динамическая типизация
  • полиморфизм времени исполнения (Runtime Polymorphism)
  • паралелизм (Concurrent Programming)
Эта версия позиционируется автором, как стабильная и содержит, в основном, багфиксы.

Сайт проекта

>>> Подробности

★★★★

Проверено: boombick ()
Ответ на: комментарий от mst_72

>Ударим по Nemerle и F# нашим Лиспом на Жабе?

На самом деле, лисп это тоже ответ эфшарпу. Только выпустили его почему-то раньше. Помолимся микрософту.

melkor217 ★★★★★
()

Смесь ужа с ежом? В смысле -- лиспа с ЭмЭлем? :)) Смотрится феерично и (не)читается тоже. Как-то это все интуитивно-непонятно...

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

Написав несколько программ на Clojure (правда не больших), могу сказать что он на редкость удачный и удобный язык. Он соединяет удобства Лиспа с большым количеством готовых библиотек для Java.

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

А ниша у языка есть? Или это вот такая функциональная обёртка для java-библиотек? Если я знаю джаву и знаю зачем она мне нужна, то зачем мне это?

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

Это язык общего назначения. В нем очень интересная реализация мультитредового программирования - модная сейчас "транзакционная память". Это позволяет легче писать мультитредовые программы. Потенциально без дедлоков. Язык реально быстрый. Есть много ленивых конструкция как-то листы и секвенсы и др. В общем мне в нем удобно! Для справки: мои основные рабочии языки - С++ и меньше Python.

Например если сравнивать Clojure и Python то Python я знаю лучше а Clojure - удобней

oleggal
()

>ML, Haskell.

Можно поподробнее про идеи впитанные из хаскела и мл?

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

>В нем очень интересная реализация мультитредового программирования - модная сейчас "транзакционная память".

Слайды Слайды!

r ★★★★★
()

Расскажите, пожалуйста, как начать его изучать, с чего начать.
Можно ли с Clojure использовать Eclipse и применять интсрументы сборки (ant) и поддержки жизненного цикла программ (maven2).

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

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

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

>Расскажите, пожалуйста, как начать его изучать, с чего начать. Можно ли с Clojure использовать Eclipse и применять интсрументы сборки (ant) и поддержки жизненного цикла программ (maven2).

Введение в Clojure http://jnb.ociweb.com/jnb/jnbMar2009.html

Еще http://www.moxleystratton.com/article/clojure/for-non-lisp-programmers

Karapuz ★★★★★
()

сабж не нужен, groovy - наше всё!

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

Ну ничего страшного, зато теперь все ссылки в одном треде будут :)

boombick ★★★★★
()

Кто работает в Eclipse с этим языком, назовите, пожалуйста, URL "site" для добавления clojure-плагина к Eclipse 3.4.1.

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

>>паралелизм

>Угу...

Это где ты там паралелизм надыбал? Я это слово правильно писал еще когда ты под стол пешком ходил

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

>А ниша у языка есть? Или это вот такая функциональная обёртка для java-библиотек? Если я знаю джаву и знаю зачем она мне нужна, то зачем мне это?

just for lulz

Tails
()

Угу... Больще ЯП, хороших и разных! Ток вот, а на *уя??? Знания С, С++ и Ява хватает на все случаи жизни. Плюс Пролог - и можно отрулить...

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

> Знания С, С++ и Ява хватает на все случаи жизни.

Жизни только не хватает, чтобы на C, C++ и Яве написать здоровые малобажные проекты.

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

>Там ещё все до копейки ограничния jvm.

5 млн прогеров пишут под JVM и одному только mv ограничения мешают. Может быть плохому танцору что-то другое мешает какобычно?

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

> Жизни только не хватает, чтобы на C, C++ и Яве написать здоровые малобажные проекты.

А, может, знания особенностей каждого конкретного языка? ;-)

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

> OMG. Перечисли все ограничения которые тебе жить не дают

Из лежащего на поверхности: явовские эзепшены вместо лисповских рестартов. Если копать глубже, то в sbcl можно прямо в самой программе править компилятор и рантайм.

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

> А, может, знания особенностей каждого конкретного языка? ;-)

Какие особенности нужно знать в Си, чтобы там появилась STM?

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

> Какие особенности нужно знать в Си, чтобы там появилась STM?

Как не молите Бога, оно там не появится... :-) Ну, а подумать? ;-)

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

Что думать? В одном языке ничего нет, в другом есть всё. Надо написать супернадёжную программу для банковской сферы. На чём же её писать? На Си(++, яве), в которой руками с мьютексами геморроиться надо? Половина явокодеров мьютексами пользоваться не умеют. А в плюсах с памятью работать не умеют. А в сях ещё и со строками проблема. Городить вагон правил, писать обёртки и т.п.? Нахрена, если есть язык, который это всё умеет, и выдаёт всё тот же код под jvm?

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

> Ну так это проблема знаний а не ущербности языка. Так можно про любой сказать.

Понятное дело! Профессионалы, вон, машкодом сразу хреначат, и в ус не дуют.

По существу, есть претензии к транзакционной модели в Clojure или её ненужности в области конкурентного программирования?

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

> В одном языке ничего нет, в другом есть всё. Надо написать супернадёжную программу для банковской сферы. На чём же её писать? На Си(++, яве), в которой руками с мьютексами геморроиться надо? Половина явокодеров мьютексами пользоваться не умеют. А в плюсах с памятью работать не умеют. А в сях ещё и со строками...

Где-то тут я с Вами согласен. Но не во всём. Главное - писать программы ПРАВИЛЬНО... А сиё можно делать и... на асме... Правда, под конкретный проц, но это - детали. Ежель Вы знаете язык ДОСКОНАЛЬНО - пишите на нём, флаг в руки, причём на ЛЮБОМ, который годится для реализации Ваших конкретных задач. Вообще, в моей юности, мне вдалбливали в ЛГУ, что избыточное знание языков - не есть здорово... Вот ;-))

R_Valery ★★★
()

Не пойму нафига нужен очередной диалект лиспа (их и так миллион мертвых существует) да еще и на убогой jvm? Даешь scheme на mono! Да и потом, это идеалогически неверно делать лисп на жаве. Идеологически верно делать жаву на лиспе :))

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

Меня в АлтГТУ учили правильно и в больших количествах жечь уголь, газ и мазут, но если в каком-то языке можно избежать 90% типичных граблей, я его только ради этого выучу. Даже если он на jvm.

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

>> Надо написать супернадёжную программу для банковской сферы.

Как представитель той самой сферы могу сказать, что ты не представляешь себе, что стоит за фразой "надо написать" в банковской сфере :)))

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

> Как представитель той самой сферы могу сказать, что ты не представляешь себе, что стоит за фразой "надо написать" в банковской сфере :)))

Банки разные бывают. Вон, в JP Morgan Chase сами начали AMQP разрабатывать.

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

>Да и потом, это идеалогически неверно делать лисп на жаве. Идеологически верно делать жаву на лиспе :))

Прогрессом движут не чьи-то ущербные идеалогии, а трезвый расчет. Иначе бы мы сейчас поворачивали Енисей для орошения таджикских степей, а linuxа бы не было вообще. Торвальдс же его начал писать не по идеалогическим мотивам а потому что тупо Unix хотел сделать

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

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

:-)) По мойму, Вы - программер... Но не более. Растите! Лет через пяток будет интересно встретится с Вами на этом же форуме. Ежель доживу, буду рад. :-))

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

>> Банки разные бывают. Вон, в JP Morgan Chase сами начали AMQP разрабатывать.

Ну мало-ли... Если им денег девать некуда то можно и этим занятся. А вот просто взять и написать, при этом будучи не знакомым со спецификой не получится. Банковская тематика довольно широкая и я тебе точно скажу, что прежде чем "взять и написать" в надежде, что получиш профит нужно самому иметь несколько миллионов уе. Я не скажу за весь софт, но по крайней мере то, что касается пластиковых карт у тебя (как у разарботчика софта ессно) ни один банк со 100% вероятностью ничего не купит, ибо надо сначала очень много забашлять (опять же тебе как разработчику) на всякие сертификации. Да и потом, что значит "написать"? Я тебя уверяю банковский софт пишется не с подходом "взять и написать" (если не брать наколенную автоматизацию работниками банка), по сложности проектирования и трудозатрат он не уступает, ну если хочешь, ядру линукса, а то и сложнее, а требования по надежности на порядок выше.

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

>> а потому что тупо Unix хотел сделать

Скорее потому, что он был тупо финкий студент. И не юникс он хотел написать...

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

> OMG. Перечисли все ограничения которые тебе жить не дают

Мне, например, тоже в java ничего не мешает. Но это ничего не значит.

Ограничения java очень мешает тем, кто занимает автоматической кодогенерацией. Максимально возможный теоретический размер метода 65534 байт. Поэтому не получится реализовать машину состояний в виде одного большого case.

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

>> Прогрессом движут не чьи-то ущербные идеалогии, а трезвый расчет

Прогрессом движет лень, и между прочим, она тоже идеология. А трезвый расчет делается только дебетом и кредитом, другого увы в прогрессе нет :)

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