LINUX.ORG.RU

Common Lisp 21-го века

 , ,


1

4

Начат проект по приведению Commons Lisp к нормам 21-го века.

  • Более объектно-ориентированный
  • Более функциональный
  • Разбиение стандартной библиотеки по пакетам
  • Добавление MOP - MetaObject Protocol
  • Синтаксис для регулярных выражений
  • Основан на чистом Common Lisp

Требования:

  • Любая современная реализация Common Listp (SBCL, Clozure CL, GNU CLISP или Allegro CL)
  • Quicklisp

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

Ну как начат, проекту больше года и последние коммиты пол года назад. Интересно мнение практикующих cl, насколько это все имеет смысл?

loz ★★★★★ ()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

Не особо. Если человек groked CL, ему там всего хватает «как есть». Чел этот много полезных web libs сделал (говорят) и должен был казалось грокнуть, но web программирование видимо накладывает свой отпечаток. Не понимаю я это поколение программеров :-) Но если в результате «няшных» интерфейсов больше людей в итоге приобщатся к CL, то, тыдыщ, благославляю.

seg-fault ()

Думал по ссылке рикролл будет.

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

Интересно мнение практикующих cl

Изменения косметические. Большинство было в отдельных подключаемых либах. Базовая либа торжествено распухает. Эпических переломов в стиле python 2 -> 3 не будет. И старый и новый подходы смогут жить в одном образе. Слава древним архитекторам. Синтаксический сахар на вкус и цвет. Использует ли это хотя бы автор неясно. Практикующие видели это все полгода назад, с вердиктом - то что автор ничего не сломал молодец. Почему это должно быть новостью именно сейчас неясно.

antares0 ★★★ ()

Более объектно-ориентированный

Более функциональный

Религиозная тема.

asaw ★★★★★ ()

Судя по беглому осмотру сайта и репа:

1) Проект сдох. 6 месяцев без коммитов, 40 открытых проблем и это при общем числе контрибьюторов 6 и лишь одном ведущем. А основной автор что-то пушит на гитхаб постоянно, т.е. потерял интерес к проекту.

2) Проект был набором макросов над CL. И эти макросы, в основном, имели косметический характер. Т.е. на них было либо пофиг, либо любой мог навелосипедить себе недостающий ему макрос сам и особо не заморачиваться.

P.S. С чего бы это на новость то потянуло вообще?

Norgat ★★★★★ ()

(princ #«Hello, ${name}\n»)

Ох, они мой ридер макрос «позаимствовали». Хотя, каждый второй лиспер такой писал себе.

Мнение: Всё уже есть в библиотеках (Alexandria, например), рассовать по пакетам стандартную библиотеку уже пытались ( monk https://github.com/Kalimehtar/cl-std ) Проблема только в популярности. Чтобы проект взлетел надо постоянно ходить по форумам и спрашивать «Чего вам не хватает? Почему не пользуетесь?», а этот японец (да?) в мировом лиспо-коммьюнити известен не больше чем monk...

:(

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

Скорее даже библиотека, чем набор макросов. Ну и слава богу, на CL похож благодаря этому.

Gentooshnik ★★★★ ()

Более объектно-ориентированный

Более функциональный

Это же параграфы. Нельзя молиться двум богам!

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

а этот японец (да?) в мировом лиспо-коммьюнити известен не больше чем

Японец как раз известен. Это делало проект не столь безнадежным, но не срослось.

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

...и Python есть ООП и а-ля лямбды

4.2

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

Когда уже люди перестанут смешивать в одну кучу замыкания, по традиции до сих пор называемые лямбдами, и собственно лямбда-исчисление с функциональщиной? То что привнесла мода в новые стандарты жавы и плюсов есть не более чем удобный интерфейс для создания небольших объектов-функторов, которые можно было точно так же создавать и раньше, только раз в 5 большим кол-вом строк, выглядящих довольно вырвиглазно.

anonymous ()

* Более объектно-ориентированный * Более функциональный

Ничего не означающие баззворды.

hlebushek ★★ ()

) интересно, почему такие проекты не взлетают.
И почему ещё лисперы не придумали новый стандарт и не выкатили реализацию с тредами и гринтредами и с 'чего там ещё не хватает'.

Bad_ptr ★★★★ ()

WOW

Более объектно-ориентированный

SUCH OOP

Более функциональный

MORE FP

Deleted ()

Хочу, чтобы в качестве parameter-specializer в defmethod можно было бы вставлять встроенные типы (например (integer 0 100)). Вот это было бы «более ооп»

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

Это же параграфы. Нельзя молиться двум богам!

Ocaml — та ещё сучка, да?

korvin_ ★★★★★ ()

В общем, очередная движуха для хипстеров, кмк

yoghurt ★★★★★ ()

К сожалению, не взлетит.

Сам-то Я пользуюсь диалектом лиспа, но тем не менее, считаю, что как для ЯП общего назначения лиспы, форты слишком маргинальны.

Узкая экониша, не более.

d_Artagnan ★★ ()

Выглядит как будто просто добавили немного clojure-like макросов в CL

anonymous ()

Начат проект по приведению Commons Lisp к нормам 21-го века

Когда про 21-й век слышу, появляется ощущение, что пишет школьник.

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

Когда про 21-й век слышу, появляется ощущение, что пишет школьник.

Старпер, ты хотел сказать.

anonymous ()

есть же clojure который так и не взлетел, а лучше ничего уже в мире lisp сейчас и не будет, надо перестать насиловать труп

umren ★★★★★ ()

ЛИСП в принципе не может быть «современным», потому что сама суть его синтаксиса ортогональна человеческому мышлению, т.е. он был «не нужен» уже в момент изобретения.

matumba ★★★★★ ()

Хватит насиловать труп.

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

Его внезапно используют разработчики на Clojure, которые 300 тысяч долларов в поддержку отдали. А еще там очень хорошая поддержка Python, уж точно получше этих ваших Эриков с ПайДевами.

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

да, только никто на питоне на нем не пишут, как на других языках ВНЕЗАПНО, для clojure ок, но clojure же нигде нет, круг замкнулся

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

Скачал поставил

Выглядит на удивлоение недурственно. Но сможет ли LT заменить на данном этапе своего развития, например, MonoDevelop какой-нибудь?
А то смотрю - в плагинах анархия и шатания.

И exceptions. Хотя, конечно, некритические.

d_Artagnan ★★ ()

Более объектно-ориентированный

не нужно

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

ЛИСП в принципе не может быть «современным», потому что сама суть его синтаксиса ортогональна человеческому мышлению, т.е. он был «не нужен» уже в момент изобретения.

Разрыв шаблона при переходе с последовательного программирования (любой ЯП общего назначения) на параллельное (HDL) случается гораздо сильней. Но человеческий мозг - штука дюже гибкая, осилить может всё. Главное, чтобы он был.

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

Хочу, чтобы в качестве parameter-specializer в defmethod можно было бы вставлять встроенные типы (например (integer 0 100)). Вот это было бы «более ооп»

Если расскажешь, что делать в случае

(defmethod foo ((a (integer 0 100)))
  1)

(defmethod foo ((a (integer 50 150)))
  2)

(foo 75)
, то можно и запилить. Для Racket я такое делал для произвольных типов.

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

В таком случае твой изначальный пост - ни о чем. Потому что если это «а-ля лямбды» то и функциональщиной ни в каком виде они не пахнут. И в перечисленных тобой языках есть только ООП, под которое они и проектировались.

Так что думай над тем что пишешь, деточка. И маме за тебя стыдно не будет.

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

И что же ты делал в Racket? Или там нет таких типов?

А method combination не поможет тут? Никогда этим не пользовался

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

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

Додумал себе чушь какую-то и давай разоблачать, клоун.

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

Ну в тех же Java 8 и Python есть ООП и а-ля лямбды с функциями высшего порядка, чо нет-то.

Это все морские свинки. Не про море и не про свиней. Просто жирный рантайм, посыпаный синтаксическим сахарком.

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

И что же ты делал в Racket? Или там нет таких типов?

В версии для Racket, наличие двух разных методов, где один тип не является подтипом другого, для набора значений приводит к ошибке.

Подтипы определеяются через (and? ..) и (or? ...). В смысле (and? x y) — подтип для x и y, a x подтип для (or? x y).

Ну и реальная проблема — скорость. Получается ещё медленней, чем CLOS. Зато гибкость запредельная :-)

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

Они привносят в императивный язык функциональный стиль программирования

У тебя глубина стека в один пост? специально для тебя же писал, что эти «лямбды»

не более чем удобный интерфейс для создания небольших объектов-функторов, которые можно было точно так же создавать и раньше, только раз в 5 большим кол-вом строк, выглядящих довольно вырвиглазно

first class function сами по себе не привносят в императивный язык НИ ЧЕ ГО концептуально нового. Это просто сахар, позволяющий не писать много страшного кода там где нужно делегировать логику. Потому «лямбды» и вводят что такое достаточно часто необходимо.

Хотя если для тебя возможность лепить однострочники из пачки zip'ов, map'ов, fold'ов и прочих списочных морфизмов является эквивалентом функционального программирования то мне не о чем с тобой больше говорить.

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

У римлян и греков с этим проблем не возникало.

У них с одной стороны их было не сильно больше двух. С другой множество богов бло строго иерархизировано и разделено по специализациям. А двум действительно хлопотно, особенно если вспомнить про буриданова осла.

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

А основной автор что-то пушит на гитхаб постоянно, т.е. потерял интерес к проекту.

Я не понял, как второе вытекает из первого.

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

Я не понял, как второе вытекает из первого.

Последний коммит в репе проекта - 6 месяцев назад. При этом автор кода не ушёл в запой, а что-то делает и это видно по его активности на гитхабе.

В проекте же мотается 40 issue открытых на которых нет никакой реакции. Закрытых issue с прошлой весны аж целый 1. Пулл реквесты открытые валяются там же, на них и на их даты тоже можно глянуть.

А теперь сопоставляем: Есть открытые баги и фичреквесты. И есть они давно (по нескольку месяцев мотаются). Думаешь автор за полгода не мог написать пару фиксов, если бы был заинтересован в проекте? Или, если бы был заинтересован в развитии проекта, не ответил бы на вопросы пользователей вида: https://github.com/cl21/cl21/issues/76 https://github.com/cl21/cl21/issues/80 (взял первое, что попалось и осталось без ответа, там этого добра хватает). Я вот не думаю, что, при желании развивать проект, всё было бы именно так.

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

«лямбды»
Хотя если для тебя возможность лепить однострочники из пачки zip'ов, map'ов, fold'ов и прочих списочных морфизмов является эквивалентом функционального программирования то мне не о чем с тобой больше говорить.

У тебя глубина стека в один пост? Специально для тебя писал, что

привносят функциональный стиль программирования, не делая язык функциональным.

Если ты, Вася Пупкин, будешь читать реп, как это делают чернокожие братья в богатых странах, негром ты не станешь, очевидно.

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

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

Хотя если для тебя возможность лепить однострочники из пачки zip'ов, map'ов, fold'ов и прочих списочных морфизмов является эквивалентом функционального программирования то мне не о чем с тобой больше говорить.

Дай тогда своё определение функционального программирования и покажи, почему Lisp является языком функционального программирования, а Java 8 — нет.

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