LINUX.ORG.RU

Kawa VS Clojure

 , , ,


0

4

Добрый день, ЛОР! Есть вопрос по языкам программирования, а точнее по Clojure и Kawa - что более готов для написания декстопных приложений? Что для клиент-серверных? Что ближе/дальше ушло от Racket? Что из них работает лучше с Java? Для чего больше батареек написанных не на Java, а на них же? Для чего есть более функциональные IDE? Спасибо!

Kawa определённо ближе к Racket хотя бы по тому, что и то и другое — Scheme, а clojure — отдельный диалект, в частности макросы в нём от Common Lisp.

monk ★★★★★ ()
Ответ на: комментарий от silver-bullet-bfg

Хочешь хороший IDE --- бери emacs. Хочешь что-нибудь стильное-модное-молодёжное --- не бери emacs, оставайся без IDE.

ugoday ★★★★★ ()
Ответ на: комментарий от silver-bullet-bfg

Если бы выбирали между Kawa и Clojure, что выбрали бы

Kawa, потому что Scheme

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

и то, и другое — Scheme

Ну 4.2 же

Ракетка — другой диалект, который пока еще похож на Scheme в силу своего наследия.

buddhist ★★★★★ ()

что более готов для написания декстопных приложений?

Kawa

Что для клиент-серверных?

Clojure

Что ближе/дальше ушло от Racket?

Kawa это реализация Scheme, Racket основан на Scheme.

Что из них работает лучше с Java?

Kawa, от FFI синтаксиса в кложуре тянет блевать.

Для чего больше батареек написанных не на Java, а на них же?

Clojure

Для чего есть более функциональные IDE?

Clojure

В кложуре есть костыли вроде этого, кава написана более ортогонально.

Кроме всего прочего, Kawa — это не просто компилирующая реализация Scheme (с целью R7RS), но еще и фреймворк для написания своих компиляторов (gnu.bytecode)

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

Ракетка — другой диалект

Отличий от классической Scheme у Racket не больше, чем у Kawa. Я могу взять почти любую программу на Scheme, дописать вверху #lang racket и запустить как есть. Отличия только в стандартной библиотеке (у Racket она намного больше) и запрете на set-car! и set-cdr!.

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

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

Для чего больше батареек написанных не на Java, а на них же

К Kawa прикручиваются почти любые батарейки для Scheme, поэтому суммарно — вопрос спорный. У Clojure намного больше своих библиотек написанных поверх библиотек Java.

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

Отличий от классической Scheme у Racket не больше, чем у Kawa.

Я уже сказал — пока что. Разработчики Racket не ставят целью совместимость со Scheme.

почти любые батарейки для Scheme

Лол. Без лютой доработки напильником такими батарейками может быть разве что slib.

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

Разработчики Racket не ставят целью совместимость со Scheme.

Но ставят целью совместимость с предыдущими версиями Racket. Поэтому ломать ничего не будут. Только расширять.

Без лютой доработки напильником такими батарейками может быть разве что slib

Не такой уж и лютой. Взял первый попавшийся: https://github.com/kylcarte/scheme-html — работает как есть. И на github такого много...

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

В кложуре есть костыли вроде этого

static public interface OLOLO{Object invokePrim(Object arg0, long arg1, Object arg2, long arg3);}

Ололо.

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

интересно, почему именно 20 параметров. Вроде можно до 255 параметров нагенерить, и только потом случится java.lang.ClassFormatError:TestMaxArg (Too many arguments in signature)

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

Алсо, в кложуре что-нибудь собираются сделать с временем раскочегаривания? В жабоверсии еще ничего, но вот в clojure-clr оно какое-то совсем неприличное.

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

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

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

6.1 несовместима с 6.0

Всё, что тыкал из planet, прекрасно запускается, несмотря на то, что разрабатывалось ещё под 4.x-5.3

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

Лютое 4.2 по поводу готовности кого-нибудь из них для написания десктопных приложений. Потому что всё равно это java, swing или swt, а это боль. В общем, никто не готов.

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

Можно считать, что пока нет.

Cursive очень даже норм работает в IDEA.
Если же хочется совсем уж крутой поддержки - Emacs (+ Evil, конечно же).
Так что, проблем с IDE у Clojure нет. Насчет Kawa не знаю - впервые услышал про него.

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

Cursive очень даже норм работает в IDEA.

Запускал я в курсиве. Репл или не запускается, или же быстро падает. По поводу емакса ничего не говорил. Сам пользуюсь. А что за Evil то? Вроде обычная связка - это cider.

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

Instead of initializing variables with an undefined value, Racket raises an exception when such a variable is used before its definition

Честно скажу, ни разу не видел, чтобы этой фичей кто-нибудь пользовался.

Если так считать, то и C++ не является обратно совместимым.

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

Если же хочется совсем уж крутой поддержки - Emacs (+ Evil, конечно же).

какие у емакса есть крутые фичи для кложуры?

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

Вим-лайк? Не нужен. :) Мухи отдельно, котлеты отдельно. :) Курсив на прошлой неделе пробовал на своём проекте.

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

А курсив он развитие лякложура, вроде как. Лакложур идеевцы рекомендуют удалять при установке курсива.

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