LINUX.ORG.RU

Какая область применения у Clojure?


0

2

Пытаюсь выбрать между Clojure и Scala для дальнейшего изучения. Со Scala всё понятно - Java на стеоридах, засунули в язык всё что только можно, но ничего особо интересного там вроде нет. Вот Clojure гораздо интереснее, Software Transaction Memory, их модели синхронизации для меня были новинкой, нигде ещё подобного не видел.

Но нужно ли оно? Я так понимаю, для абстрактной 1000-процессорной машины Clojure будет удобна, т.к. удобство написания кода и минимизация проблем с синхронизацией перевесят потери производительности, неизбежные при всей этой красоте. Но для стандартного 4-процессорного компьютера, я так понимаю, это всё огромный оверкил, и аккуратно написанный код на Java (не говоря уже про C) скорее всего обгонит на одном процессоре 4-х процессорную Clojure (хотя не мерял, это чисто интуитивное ощущение).

В общем вопрос, есть ли у Clojure другие практические плюсы кроме того, что он есть лисп? Потому что все эти штуки с многопоточностью не выглядят востребованными здесь и сейчас (вполне возможно лет через 10 всё поменяется, конечно).

★★★★★

Со Scala всё понятно - Java на стеоридах, засунули в язык всё что только можно

Что, даже property? Даже overloading?

I-Love-Microsoft ★★★★★
()

>Я так понимаю, для абстрактной 1000-процессорной машины Clojure будет удобна, т.к. удобство написания кода и минимизация проблем с синхронизацией перевесят потери производительности

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

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

а то грустно как-то... вроде и окололисп, вроде и вброс, а как-то само собой получается, что кложура не нужна.

Rastafarra ★★★★
()

Ну это вам решать, востребованы у вас штуки с многопоточностью или нет... У меня, например, они востребованы, и код получается очень коротким по сравнению с явой, что резко сокращает время разработки. Макросы позволяют строить более высокоуровневые АПИ

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

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

ott ★★★★★
()

> но ничего особо интересного там вроде нет. Вот Clojure гораздо интереснее, Software Transaction Memory

STM скоро и в скале будет.

ovk48 ★★★
()

> есть ли у Clojure другие практические плюсы кроме того, что он есть лисп?

плюсы

лисп



Школоло с промытыми Луговским мозгами детектед. Если угрёбищный скобочный синтаксис, мешанина из кода и данных и прочие приветы из 50-ых для тебя — «практические плюсы», то у меня для тебя плохие новости.

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

мешанина из кода и данных и прочие приветы из 50-ых для тебя — «практические плюсы», то у меня для тебя плохие новости.

Инкапсуляция же! За что так долго боролись в ООП наконец реализовано.

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

> Инкапсуляция же! За что так долго боролись в ООП наконец реализовано.

Знаю я один язычок, который любит вот так же «инкапсулировать» HTML, JavaScript, CSS и SQL. Похапе называется.

Не надо подменять понятия. Инкапсуляция — способ организации (уменьшения энтропии), лисповая и похапешная мешанина — способ дезорганизации (увеличения энтропии).

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

Для меня плюсы лиспа в первую очередь единство представления кода и данных и очень удобная система макросов как следствие.

Legioner ★★★★★
() автор топика

а вот и теоретики подтянулись...

ott ★★★★★
()

>Пытаюсь выбрать

Clojure нужно уметь готовить. У меня так и не получилось. Вроде все нормально, только вот через некоторое время полностью теряется управление исходниками.

Макросы там вообще жесть. Их лучше не пользовать. Вообще. Мне в «одно рыло» на ~2k строк хватало геморроя. А что будет в большом проекте, я вообще не представляю.

Я после Clojure зарекся трогать чего-то а) динамическое б) со скобочками.

Scala всё понятно - Java на стеоридах


Ну-ну, не надо. Все современные фишки там есть. А главное, есть концепции уже отлично отработанные в рамках того же хаскеля, так и ждущие переноса.

Из минусов Scala - синтаксис. Хреновый он. И документации мало: нужно покупать книжку, иначе много очень интересных вещей будет непонятно. Хотя, в РФ с покупкой электронной версии нет никаких проблем.

ЗЫ: Лисперы, это мое частное мнение. Так что поберегите дыхание, отвечать все-равно не собираюсь.

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

>Для меня плюсы лиспа в первую очередь единство представления кода и данных

Кактаморфизм же.

и очень удобная система макросов как следствие


Template Haskell? Плагины к компилятору той же Скалы (правда документации мало)?

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

> нужно покупать книжку, иначе много очень интересных вещей будет непонятно

поделись что ли линками и названиями?

вообще про тусню вокруг скалы: что где интересного почитать?

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

из свежего - Programming in Scala, 2ed. Орейлевская книжка про скалу тоже неплохая. Есть еще Steps in Scala, но она уже вроде про «advanced programming». ну и у Manning'а две книжки в MEAP - Scala in Action & Scala in Depth

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

>поделись что ли линками и названиями?

Programming in Scala, 2ed http://www.artima.com/

Первое издание честно скачал из торрентов. Второе - честно приобрел. Эти ребята даже CVV не спросили.

вообще про тусню вокруг скалы: что где интересного почитать?


Подпишись на Planet Scala

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

> что где интересного почитать?

Если хочется почитать прежде чем покупать, то

http://avaxsearch.com/avaxhome_search?q=scala&a=&c=5&l=7&sort_by=&commit=Search

Только, как уже сказано, уже есть второе издание Programming in Scala (по ссылке только первое). Кроме того, недавно вроде как вышла Actors in Scala, никто еще не спиратил.

ovk48 ★★★
()

>Какая область применения у Clojure?

Про него можно писать статьи в «Практике функционального программирования».

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

ну если кто-то ни на что другое не способен, то может быть...

но есть люди, которые пишут на clojure код и зарабатывают деньги (например, flightcaster, backtype, runa, think relevance, пара российских стартапов)...

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

> Первое издание честно скачал из торрентов. Второе - честно приобрел.

Интересно, а чем они отличаются? Первое издание прочитал.

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

говорят, что основное отличие — описание 2.8, и что если первое читали уже, то лучше просто прочитать документацию на сайте скалы

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

Ну, за документацией я слежу. Иногда почитываю разные статьи Одерского. Некоторые из них довольно таки тяжелы для моего восприятия.

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