Scheme vs Common Lisp
От: vaa  
Дата: 21.11.22 02:01
Оценка: :)
оба вроде лиспы. но почему-то все утверждают что схема проще(лучше)).
тыкал racket guile принципиальной разницы не заметил.
какие обоснованные могут быть аргументы за схему?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Scheme vs Common Lisp
От: trop Россия  
Дата: 21.11.22 07:49
Оценка: 1 (1)
Здравствуйте, vaa, Вы писали:

vaa>оба вроде лиспы. но почему-то все утверждают что схема проще(лучше)).

vaa>тыкал racket guile принципиальной разницы не заметил.
vaa>какие обоснованные могут быть аргументы за схему?

ниже есть диаграмма истории лисп языков
https://en.wikipedia.org/wiki/Lisp_(programming_language)#:~:text=John%20McCarthy%20developed%20Lisp%20in,by%20Machine%2C%20Part%20I%22.

схема вроде как упрощённый интерпретируемый диалект лиспа с функциональными штуками,
он подходит для небольших приложений и либок,
common lisp более серьёзный, в нём тоже есть лямбды с какими-то особенностями,
вроде на steel bank common lisp (sbcl) куча всего написано, в т.ч. для emacs

сам когда-то писал небольшие утилиты на сыром newlisp, он совсем простой, но тормозной,
для чего-то более серьёзного наверное подойдёт что-нибудь вроде sbcl
-
Re: Scheme vs Common Lisp
От: vsb Казахстан  
Дата: 21.11.22 08:09
Оценка: 1 (1)
У Common Lisp размер стандарта 1400 страниц.

У R5RS — 50 страниц.

насчёт поздних стандартов схемы не в курсе.

В целом у меня сложилось такое впечатление:

CL — штука древняя и там всё древнее. Есть какие-то старые системы, написанные на нём. Есть компании, продающие реализацию этого лиспа за дикие деньги (типа дельфи). С опенсорсом там всё под вопросом.

Scheme — штука для академиков больше. Эдакий учебный язык. Минималистичный, красивый, ломать зубы молодым студентам. Чтобы можно было за семестр изучить практически в полном объёме, что-нибудь учебное попрограммировать и потом благополучно забыть.

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

С какой-то версии Scheme начали развивать от маленького учебного языка в сторону большого практичного языка. У него также есть куча расширений, которые из него практически другой язык делают. Типа типизированной схемы и многого другого. Но я не слышал, чтобы оно где-то взлетело. Имхо, смысл Scheme исключительно в его исходной форме простого лиспа для студентов.

В целом это всё возня в песочнице. Нужен лисп для практики — бери clojure.
Отредактировано 21.11.2022 8:14 vsb . Предыдущая версия . Еще …
Отредактировано 21.11.2022 8:13 vsb . Предыдущая версия .
Re: Scheme vs Common Lisp
От: vdimas Россия  
Дата: 21.11.22 14:32
Оценка: 1 (1) +1
Здравствуйте, vaa, Вы писали:

vaa>оба вроде лиспы. но почему-то все утверждают что схема проще(лучше)).

vaa>тыкал racket guile принципиальной разницы не заметил.
vaa>какие обоснованные могут быть аргументы за схему?

Схема — это подчищенный Лисп до возможности компилирования в нейтив.
Т.е. более строгая версия языка.
Исходный Лисп исполняется интерпретирующей машинкой, тормозит прилично.
Re: Scheme vs Common Lisp
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 21.11.22 23:48
Оценка: 1 (1)
Здравствуйте, vaa, Вы писали:

vaa>оба вроде лиспы. но почему-то все утверждают что схема проще(лучше)).

vaa>тыкал racket guile принципиальной разницы не заметил.
vaa>какие обоснованные могут быть аргументы за схему?

Схема точно проще и меньше — про размер описания языка уже тут говорили.
Коммон Лисп древний, там очень много всего накопилось в плане как языка, так и умений компилятора.
В умелых руках КЛ быстрее.
Но бинарники будут огромные, т.к. будут включать в себя и толстый рантайм, и компилятор, и декомпилятор и что только не. И если не путаю, КЛ по манере компиляции похож на смолток — сохраняет живой образ.
Для Схемы же бывают классические компиляторы, некоторые через Си делают нативный код, например. Но не супер быстрый, ибо динамические типы.

Тут много букв про различия:
https://wiki.c2.com/?LispSchemeDifferences
https://wiki.c2.com/?SingleNamespaceLisp

Я сам сейчас потихоньку пописываю на Racket — это некоторое развитие Схемы (IDE DrRacket раньше называлась DrScheme), там много интересного и приятного. Сейчас там под капотом Chez Scheme, он нативный код тоже производит.
Re[2]: Scheme vs Common Lisp
От: vaa  
Дата: 22.11.22 01:25
Оценка:
Здравствуйте, D. Mon, Вы писали:


DM>Я сам сейчас потихоньку пописываю на Racket — это некоторое развитие Схемы (IDE DrRacket раньше называлась DrScheme), там много интересного и приятного. Сейчас там под капотом Chez Scheme, он нативный код тоже производит.


да как-то тутор тыкал с графикой. прикольно. а он умеет генерить маленькие бинарники получается?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Scheme vs Common Lisp
От: zx zpectrum  
Дата: 22.11.22 01:49
Оценка:
Схема академична, CL практичен.
Схема минималистична, CL сборник всего на свете, почти что второй Кобол.
Схема концептуальна, CL забивает болт на все эти ваши иммутабельности и прочие заветы FP.

Если сквозь древние наслоения CL продираться нет желания, и хочется что-то сделать на красивой Схеме (в которой, однако, нихрена практически полезного из коробки нет), то, вероятно единственный путь — это писать "мясо" на чём-то традиционном и нативном (C, C++, Rust), а Схему прикрутить сверху как скриптовый язык, ворочающий сущностями верхнего слоя абстракции. А-ля guile или gambit.
Re[2]: Scheme vs Common Lisp
От: vaa  
Дата: 22.11.22 02:12
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Я сам сейчас потихоньку пописываю на Racket — это некоторое развитие Схемы (IDE DrRacket раньше называлась DrScheme), там много интересного и приятного. Сейчас там под капотом Chez Scheme, он нативный код тоже производит.


PS тыкнул 7.4 ХВ exe 19МБ. стартует соответственно не быстро. компилится тоже неприлично долго.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Scheme vs Common Lisp
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 22.11.22 11:10
Оценка: 3 (1)
Здравствуйте, vaa, Вы писали:

DM>>Я сам сейчас потихоньку пописываю на Racket — это некоторое развитие Схемы (IDE DrRacket раньше называлась DrScheme), там много интересного и приятного. Сейчас там под капотом Chez Scheme, он нативный код тоже производит.


vaa>PS тыкнул 7.4 ХВ exe 19МБ. стартует соответственно не быстро. компилится тоже неприлично долго.


Версия 7 вроде на совсем другом движке была, надо 8.х брать.
Для практических нужд за основу стоит брать #lang racket/base, тогда и бинарник меньше, и собирается быстрее.


хелловорлд меньше 2 МБ, но есть подвох — это не самостоятельный бинарник, он полагается на наличие рэкета в системе. Там можно сделать stand-alone, он тогда генерит архив (8 МБ на линухе, Racket 8.7), в котором рядом с твоим бинарником кладет необходимый рантайм.

В это время коммон лисп делает бинарники в сотни мегов, так что разница на порядки.

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

(специально менял содержание, чтобы возможное кэширование не помешало время мерить)
Отредактировано 22.11.2022 11:23 D. Mon . Предыдущая версия . Еще …
Отредактировано 22.11.2022 11:20 D. Mon . Предыдущая версия .
Отредактировано 22.11.2022 11:13 D. Mon . Предыдущая версия .
Re: Scheme vs Common Lisp
От: landerhigh Пират  
Дата: 25.11.22 10:00
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>какие обоснованные могут быть аргументы за схему?


Как минимум в одной крупной fintech компании схема используется как DSL для довольно большой системы.
Надо сказать, вписалась туда схема очень хорошо.
Правда, стоит отметить, что у команды, которая эту систему поддерживает, есть некоторые проблемы с наймом и удержанием людей.
www.blinnov.com
Re[2]: Scheme vs Common Lisp
От: νsb Казахстан  
Дата: 25.11.22 11:13
Оценка:
Здравствуйте, zx zpectrum, Вы писали:

ZZ>Схема концептуальна, CL забивает болт на все эти ваши иммутабельности и прочие заветы FP.


Схема не иммутабельна, если что.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.