LINUX.ORG.RU

Какую реализацию Lisp учить?


0

0

Доброго времени суток. Вот выдалось свободное время и по присутсвии оного, решил взяться за Lisp, но оказалось что существует давольно много реализаций сего чуда: Сommon Lisp, Scheme, Arc, Clojure и т.д. Прошу вашего совета за какой взяться?
Спасибо.



Последнее исправление: shk (всего исправлений: 1)

Ответ на: комментарий от satanic-mechanic

> Одной из своих основных задач Хики видит то, чтобы на Clojure можно было писать такой же эффективный код, как и на Java. То есть это является одной из заявленных целей разработки языка, что зачастую отражено и в его дизайне.

ну и как из него дергать, к примеру, antlr?

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

>Как много open-source реализаций CL умеют собирать нативные бинарники и каково качество этих реализаций?

Основные реализации умеют (SBCL, Clozure, clisp, ecl). Качество хорошее (особенно у SBCL и Clozure).

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

> Как много open-source реализаций CL умеют собирать нативные бинарники и каково качество этих реализаций?

Я думал вы в курсе. ;-) Как минимум SBCL и Clozure CL имеют хорошую реализацию и портированы на кучу платформ. За обоими стоят организации, у которых можно попросить поддержку (и платную тоже) + большое комьюнити.

Какие плюшки? У Clojure есть свои плюшки.

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

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

Как много open-source реализаций CL умеют собирать нативные бинарники и каково качество этих реализаций?

Почти все. Качество нормальное.

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

> У Clojure есть свои плюшки.

Все эти плюшки можно и в CL сделать/сэмулировать.

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

>> Как много open-source реализаций CL умеют собирать нативные бинарники

Я думал вы в курсе. ;-) Как минимум SBCL и Clozure CL имеют хорошую реализацию и портированы на кучу платформ.


Бинарник hello world весом под 50 мегабайт?

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

> Бинарник hello world весом под 50 мегабайт?

и че?

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

>Откуда дровишки?

Имеющий глаза да увидит... В том числе и на ЛОРе. И дело не только в оптимизации. Пересказывать не буду, но если есть желание доказать, что ты прав - есть проект http://github.com/jafingerhut/clojure-benchmarks/ Он, правда, не живой уже пол года как. Но результаты в нём были совсем не утешительные. Попробуй что-то там из clojure довести до скорости java и представь сюда - поговорим.

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

Бинарник hello world весом под 50 мегабайт?

С мощный рантаймом, компилятором, дебаггером, стандартной библиотекой.

А что, clojure уже не требует вороха джавовского говна в системе?

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

Массивы в CL тоже списки?

Нет.

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

> Массивы в CL тоже списки?

ты один из тех, кто все еще думает, что CL все еще тот древний лисп, который тормозит, и все - есть список? Много вас таких. От вашего невежества и нежелания научиться новому все беды.

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

>> Бинарник hello world весом под 50 мегабайт?

С мощный рантаймом, компилятором, дебаггером, стандартной библиотекой.


Нафига? В готовой программе, предназначенной для пользователя?

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

>да, забыл. Лучше оставайтесь на своем похапе/пистоне, там уютно и не надо учиться думать.

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

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

Нафига? В готовой программе, предназначенной для пользователя?

Да. Потому что в парадигму Фортрана не всё в этом мире укладывается.

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

> оставайтесь на своем похапе/пистоне, там уютно и не надо учиться думать.

Ну да, только программистам на Лиспе надо уметь думать %) Лисперы такие лисперы...

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

>Да. Потому что в парадигму Фортрана не всё в этом мире укладывается.

Значит, либо нужно выбросить лишнее(может только Lisp Works), либо использовать Lisp только для каких-то очень специфичных задач.

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

> Ну да, только программистам на Лиспе надо уметь думать

Они про brainfuck не в курсе. Программистам на brainfuck ещё больше думать надо, вместо того, чтобы работу работать.

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

Значит, либо нужно выбросить лишнее

Это серьёзно ограничит возможности Лиспа в рантайме.

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

Как же это тогда делает Lisp Works?

Он выбрасывает компилятор?

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

У подавляющего большинства реализаций CL способ компиляции — инкрементальный. Т.е. новый скомпилированный код просто добавляется в образ системы. Если так хочется раздельной или полнотекстовой компиляции, берите Scheme. Caveat emptor.

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

> либо использовать Lisp только для каких-то очень специфичных задач.

Серверное ПО (включая веб) это очень специфично?

archimag ★★★
()

Единственное полезное предназначение лиспоподобных языков — это иллюстрировать SICP. Учи лучше Erlang или Цацкель.

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

> Хм... Сколько лет вы писали на CL, прежде чем пришли к подобному выводу?

из его профиля:

Красноглазый плюсятник, который пишет всякую фигню в области EDA; злостный кдешник и кьютишник; беспощаден к врагам Страуструпа

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

>> Единственное полезное предназначение лиспоподобных языков — это иллюстрировать SICP. Учи лучше Erlang или Цацкель

Единственно полезное предназначение хацкеля и эрланга — тролить на лоре.

cathode
()

Кстати, раз уж пошел такой разговор про лиспы, подскажите как обстоят дела с sbcl в винде. Сколько не наблюдал в течение последних двух лет, порт вечно в недоработанном состоянии. Чего там не хватает по сравнению с линуксовой версией?

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

>Кстати, раз уж пошел такой разговор про лиспы, подскажите как обстоят дела с sbcl в винде.

не ахти. Нет тредов и все системные вызовы - не «родные», а posix-совместимые (файлы/пайпы &etc.)

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

>Don't bother. Try Clozure CL. It is more mature.

не ковырял - хрюшу требует. Как у неё с системными вызовами? И для кодировок использует какую-либо либу, или как и в sbcl - собственный велосипед?

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

>Бинарник hello world весом под 50 мегабайт?

http://github.com/andy128k/PassStorage/downloads — тут лежит инсталлятор размером в 13 метров (под винду), в котором бинарник программы + дистрибутив gtk+. В качестве примера.

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

>С мощный рантаймом, компилятором, дебаггером, стандартной библиотекой.

Оно все так же хапает 2 гига оперативки при старте? И, да, зачем компилятор в результирующем бинарнике? И дебаггер нафига?

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

>А что-нибудь из FOSS реализаций CL под альтернативную ось есть? Нормально реализованное, конечно.

ну вон clozure советуют. Но не пробовал - не могу ругать :)

если допилят треды в clisp-е - как замена шелл-ориентированной динамике пойдёт «на ура»

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

>Кстати, раз уж пошел такой разговор про лиспы, подскажите как обстоят дела с sbcl в винде. Сколько не наблюдал в течение последних двух лет, порт вечно в недоработанном состоянии. Чего там не хватает по сравнению с линуксовой версией?

Нету тредов. Clozure CL — хороший лисп, который есть и под виндой; в нем есть практически все, что и в SBCL (но код получается не такой быстрый), но есть треды под виндой.

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

> Оно все так же хапает 2 гига оперативки при старте? И, да, зачем компилятор в результирующем бинарнике? И дебаггер нафига?

тебе оно не нужно. не отвлекайся.

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

>anonymous такой дура^W anonymous... Возьми lispworks и не парь людям мозг

yyk, а, yyk. дай мне полторы штуки на lispworks, а?

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

>если допилят треды в clisp-е - как замена шелл-ориентированной динамике пойдёт «на ура»

Треды в clisp'е есть (начиная с 2.48)

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

на винде хорошо работают: ecl/mingw, ccl, sbcl(но тредов нет, плюс еще парочка мелких неудобств), abcl, clisp(в т.ч. с мультитредингом)

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

>anonymous такой дура^W anonymous... Возьми lispworks и не парь людям мозг

Проприетарщина.

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

>дай мне полторы штуки на lispworks, а?

тебе «поучить/поиграться» или «бабло рубить»? На первое кандидатов хватает :) Даром второе под офтопик ни кто и не обещал :)

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

>А что-нибудь из FOSS реализаций CL под альтернативную ось есть? Нормально реализованное, конечно.

Вот Clozure и есть. Реализовано нормально.

Оно все так же хапает 2 гига оперативки при старте? И, да, зачем компилятор в результирующем бинарнике? И дебаггер нафига?

Особенность работы с памятью в SBCL. Размер захапываемой памяти указывается. «Захапанная» память фактически не используется, т.е. она не уменьшает количество доступной памяти. Проблемы возникают в некоторых паравиртуализаторах (привет, virtuozzo), но в них решается заданием dynamic-space-size.

Компилятор нужен, т.к. ряд техник программирования, доступных в лиспе, предполагает наличие компилятора.

В дополнение, компилятор + дебаггер позволяют дописывать и обновлять систему без перезапуска.

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