Size: a a a

2020 March 03

V(

Vλadimir (Hawthorne the Toolmaker) in Lisp Forever
akater
Программы, написанные на Лиспе, предназначенные для широкой публики, это
- Maxima
- StumpWM
- pgloader
- Next Browser (? — там не чистый Лисп, используется webkit)

Лисп-вендоры Franz (Allegro CL) и Harlequin (LispWorks) имеют веб-страницы с success stories, там можно увидеть компании, применяющие Лисп.

Думаю, большинство пользователей Лиспа не знают о том, что их обслуживает Лисп. Часто приводимый пример это ITA — типа, каждый заказ авиабилета через Google производится с помощью Common Lisp. Но я не вникал.

Печальная особенность Лиспа в том, что проекты на нем естественно иметь крупным игрокам с долгосрочными целями. Известные исторические примеры это логистическая ИИ-программа, написанная для американских военных, а также «Лисп, полетевший в космос» (NASA), который удаленно дебажили с Земли в процессе работы. Лисп располагает к себе тех, кто хочет писать надежно и надолго. Это, к сожалению, не только мало кого интересует, это вообще мало кто может себе позволить, и очевидные кандидаты, кто может, это те, с кем я, например, имел бы дело только в результате применения силы или угроз такого применения. Последний раз, когда я видел компетентное обсуждение Лиспа вне Телеграма по-русски, человек писал для ГИБДД.

Говорят, в Европе много Лиспа в аэропромышленности.

Один ученый, drmeister, написал свою [стоя на плечах гигантов, конечно] имплементацию Common Lisp с интеграцией с C++, для своих задач в комбинаторной химии, насколько я помню (на youtube есть его выступление на C++ конфе, его случай известный, можно найти).

Grammarly использует Лисп, легко найти тексты об этом опыте.

Я видел упоминания, что Amazon нанимал лисперов в начале своего существования, и они были очень довольны.

Самое активное применение Lisp, заметное с тех позиций, с которых легко видно, — в Emacs. Это не тот Лисп, который тут обсуждается, но он достаточно близок, и это *мог бы быть* тот Лисп (что по-моему очень обидно). Я считаю, это существенный пример. Если мне нужно что-то повседневное автоматизировать или даже качественно улучшить, я буду писать на elisp'е, а не на чем-то другом. Думаю, у многих пользователей Emacs так же. Common Lisp не предлагает такую повседневно используемую среду, которая, как Emacs, располагала бы к написанию к ней расширений весьма общего назначения, при том, что использование такой среды абсолютно естественно и необходимо для пользователя Лиспа (и неестественно для пользователя Unix).
>>Если мне нужно что-то повседневное автоматизировать или даже качественно улучшить, я буду писать на elisp'е, а не на чем-то другом.

В двух случаях: 1. это ворд-процессинг и/или 2. паразитирует на чем-то уже работающем в емакс.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Lisp Forever
Пакетов нет, eieio вместо clos, сам интерпретатор не то чтоб надежный. Лексическое связываение завезли сравнительно недавно - на том спасибо.
источник

V(

Vλadimir (Hawthorne the Toolmaker) in Lisp Forever
Сложно к елиспу относиться по-другому, не как к языку скриптов для редактора. (Я бы добавил: языку на котором сделана орг-мода и орг-мода далее везде).
источник

LL

Lämppi Lütti in Lisp Forever
Только редактор как система смолтолка
источник

LL

Lämppi Lütti in Lisp Forever
Пока что у лиспов только такое есть
источник

a

akater in Lisp Forever
Vλadimir (Hawthorne the Toolmaker)
Пакетов нет, eieio вместо clos, сам интерпретатор не то чтоб надежный. Лексическое связываение завезли сравнительно недавно - на том спасибо.
Недавно вот писал на EIEIO впервые, это был печальный опыт. Несколько раз пришлось переделывать весь дизайн, потому что там не поддерживается практически *ничего* из того, что есть в CLOS.
источник

a

akater in Lisp Forever
Сергей Суржик
идей пока нету)
Наверное же есть какие-то «общие интересы», типичные задачи, в решении которых есть опыт, так вот можно посмотреть, какие есть библиотеки на Common Lisp, относящиеся к ним, и попробовать там что-то улучшить.
источник

AE

Alexey Egorov in Lisp Forever
Лисперы.
источник

AE

Alexey Egorov in Lisp Forever
Хотел спросить, как ридер резолвит символы по пакетам.
источник

AE

Alexey Egorov in Lisp Forever
И вдруг понял, как.
источник

VL

Valeriy L in Lisp Forever
akater
Недавно вот писал на EIEIO впервые, это был печальный опыт. Несколько раз пришлось переделывать весь дизайн, потому что там не поддерживается практически *ничего* из того, что есть в CLOS.
Парень который написал elfeed советует юзать defstruct вмечто eieio. Это не просто структ как в Common'е. Он создает куча бойлерплейта еще
источник

VL

Valeriy L in Lisp Forever
У него бложик есть nullprogram
источник

AE

Alexey Egorov in Lisp Forever
Так.
источник

AE

Alexey Egorov in Lisp Forever
Вопрос.
источник

AE

Alexey Egorov in Lisp Forever
Если у нас в файле есть (defpackage :foo ...) (in-package :foo ...) (defun bar ...), как именно оно выполняется?
То есть как мне например сделать такое же при помощи eval и read-from-string?
источник

VM

Vyacheslav Mikushev in Lisp Forever
Если я не ошибаюсь, то сначала создаётся пакет, а потом он привязывается к *package*. http://www.lispworks.com/documentation/HyperSpec/Body/v_pkg.htm
источник

VM

Vyacheslav Mikushev in Lisp Forever
Наверное, как-то так:
(eval "(defpackage :foo ...)")
(let ((*package* (find-package...)))
 (eval "(defun bar ...)")))
источник

VM

Vyacheslav Mikushev in Lisp Forever
Но, говорят, что использование eval - это антипаттерн.
источник

VL

Valeriy L in Lisp Forever
Евал же вроде не строку принимает
источник

VL

Valeriy L in Lisp Forever
А список
источник