> 1 <

Автор Сообщение

balu

Members


Статус

2 сообщений

Где: Ukraine
Род занятий:
Возраст:

#315   2009-03-23 16:18 GMT+3 часа(ов)      

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#2131   2010-05-24 01:33 GMT+3 часа(ов)      
А нафига? Clojure это вообще очень сомнительное мероприятие. Нарушаются принципы символьного программирования и все фичи Clojure (особенно из Haskell'a) вполне можно было бы реализовать как расширение Common Lisp'a. Девиз "lisp-reload" - это не больше чем маркетинговый ход. А интеграция с Java'ой - для реального, большого проекта очень большой риск. В итоге получаем, что имеет смысл ориентироваться скорее на реализации Common Lisp на JVM. Это ABCL и CLforJava. ABCL явно более живой.

Fallen_s4e

Members


Статус

114 сообщений
http://lisper.ru
Где: Zimbabwe lisper.ru
Род занятий: fallen_s4e
Возраст: 6

#2138   2010-05-24 03:06 GMT+3 часа(ов)      
Цитата
А интеграция с Java'ой - для реального, большого проекта очень большой риск.

Раскройте плиз, не совсем ясно почему.

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#2144   2010-05-24 16:45 GMT+3 часа(ов)      
В реальной жизни к сожалению так просто не получается. Это только теоретически - есть api для вызова java-методов, вызывай себе и вроде бы всё должно быть ок. Однако на деле разношерстные технологии "в одном флаконе" приводят к трудноуловимым ошибкам и проблемам с отладкой. Плюс ко всему с динамическими классами в Java всё очень не просто. Знаете ли вы, что определённый в java статический класс и загруженный динамический класс ведут себя по разному? Там всплывает множество нюансов. Я предполагаю, что определённая доля реализации Clojure, реализуется именно через динамический классы. Так что при взаимодействии со статическими классами из библиотек Java, наверняка появятся неприятные сюрпризы. Для их "разруливания" надо будет погружается в многочисленные нюансы взаимодействия стат. и динам. классов. К тому же как было когда-то правильно сказано: "большинство стандартных библиотек Java написаны студентами за еду". Глюки будут. А при поиске глюков, первый претендент будет конечно Clojure, как технология инородная. Короче чувствую скучать будет некогда. Конечно же это всё догадки. Но я наблюдал как казалось бы родные для Java технологии вносили нестабильность и большой бардак в проект. Что уж тут говорить о такой надстройке как Clojure.
И ещё раз повторюсь: очень сомнительная прагматичность в обогащённом синтаксисе в Clojure. Это уводит в сторону от символьного программирования и затрудняет метапрограммирование (написание макросов).

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2146   2010-05-24 16:51 GMT+3 часа(ов)      
>А нафига? Clojure это вообще очень сомнительное мероприятие.
А по-моему, Clojure имеет довольно хорошую реализацию. Конечно, это не Common Lisp!)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2148   2010-05-24 16:58 GMT+3 часа(ов)      
>очень сомнительная прагматичность в обогащённом синтаксисе в Clojure.
Это действительно проблема. Но для большого проекта можно и потеснится) т.е. адаптировать Clojure для решения поставленных задач.

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#2151   2010-05-24 17:18 GMT+3 часа(ов)      
Так может всё-таки обратиться к реализации Common Lisp на JVM?

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2153   2010-05-24 17:39 GMT+3 часа(ов)      
>Так может всё-таки обратиться к реализации Common Lisp на JVM?
А что ABCL реализован лучше Clojure? По-моему, наоборот. ABCL не компилирует функции в Java байт-код.

Fallen_s4e

Members


Статус

114 сообщений
http://lisper.ru
Где: Zimbabwe lisper.ru
Род занятий: fallen_s4e
Возраст: 6

#2158   2010-05-24 18:09 GMT+3 часа(ов)      
Цитата
. Знаете ли вы, что определённый в java статический класс и загруженный динамический класс ведут себя по разному?

НЯЗ clojure неплохо поддерживается, и, по идее, не мое дело знать чем они отличаются.
А вообще не знал, интересно.
Цитата
И ещё раз повторюсь: очень сомнительная прагматичность в обогащённом синтаксисе в Clojure. Это уводит в сторону от символьного программирования и затрудняет метапрограммирование (написание макросов).

По моему скромному мнению, `(gensym#) даже несколько облегчает написание макросов(преимущественно простых), ибо не надо биндить явно, мусорить код(хотя думается желательно бы сохранить gensym и тп). С другой стороны этого нет в к.л. хотя реализовать легко, интересно почему, может есть причина.
Тот же вопрос("почему нет? или я не знаю?") насчет
(defn ([..]..)([..]..)) и TCO(ведь это просто макрос связанный с defn который раскладывает в цикл, раз clojure - надстройка, исправьте если ошибаюсь).
Но производительность убивает.

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#2161   2010-05-24 20:22 GMT+3 часа(ов)      
>А что ABCL реализован лучше Clojure? По-моему, наоборот. ABCL не компилирует функции в Java байт-код.

"ABCL is a full implementation of the Common Lisp language featuring both an interpreter and a compiler, running in the JVM"
А с чего вы взяли что не компилирует?

> НЯЗ clojure неплохо поддерживается
Что такое НЯЗ ?

Fallen_s4e

Members


Статус

114 сообщений
http://lisper.ru
Где: Zimbabwe lisper.ru
Род занятий: fallen_s4e
Возраст: 6

#2164   2010-05-24 21:20 GMT+3 часа(ов)      
Цитата
Что такое НЯЗ ?

Насколько я знаю.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2167   2010-05-24 22:41 GMT+3 часа(ов)      
>А с чего вы взяли что не компилирует?
Конечно, я поспешил с выводами. К сожалению, ABCL компилирует только по принуждению) Причем скомпилированные функции работали даже быстрее, чем у Clojure.

LinkFly

Members


Статус

152 сообщений

Где: Russia
Род занятий:
Возраст:

#2197   2010-05-26 13:46 GMT+3 часа(ов)      
А что вы подразумеваете под "компилирует только по принуждению" ?
Если вы сопоставляете с sbcl, то право не стоит - это видимо просто его фича, компилировать сразу любое определение. Lispworks, например, при отпределении функции в REPL - оставляет её "интерпретируемой". И компилировать ф-ию, в этом случае, надо явно.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#2249   2010-06-02 13:19 GMT+3 часа(ов)      
>Если вы сопоставляете с sbcl, то право не стоит - это видимо просто его фича, компилировать сразу любое определение.
Да, но Clojure, как и другие с этим справляются. А какое определение нельзя скомпилировать сразу?
> 1 <


Онлайн :

0 пользователь(ей), 30 гость(ей) :




Реклама на сайте: