it-roy-ru.com

Лисп в реальном мире

Я экспериментировал с LISP (на самом деле Scheme) и обнаружил, что это очень красивый язык, о котором мне интересно узнать больше. Тем не менее, похоже, что LISP никогда не используется в серьезных проектах, и я не видел его в списке желаемых навыков при публикации вакансий. Мне интересно узнать мнение любого, кто использовал LISP или видел его в "реальном мире", или кто знает, считается ли он чисто академическим языком.

144
titaniumdecoy

Franz, Inc. предоставляет исчерпывающий список историй успеха на своем веб-сайте. Тем не мение:

Пожалуйста, не думайте, что LISP полезен только для анимации и графики, искусственного интеллекта, биоинформатики, B2B и электронной коммерции, интеллектуального анализа данных, приложений EDA/Semiconductor, экспертных систем, финансов, интеллектуальных агентов, управления знаниями, механических САПР, моделирования и симуляции, Естественный язык, оптимизация, исследования, анализ рисков, планирование, телекоммуникации и веб-авторинг только потому, что это единственное, что им довелось перечислить. - Кент Питман

Мы можем найти другие истории успеха здесь: http://LISP-lang.org/success/

и список текущих компаний, использующих Common LISP: https://github.com/azzamsa/awesome-LISP-companies

87
Matthias Benkard

Считается ли Emacs elisp? Это наиболее "реальный мир", с которым я знаком (хотя я не уверен, что Emacs также считается "реальным миром").

54
eschercycle

Программное обеспечение ITA использует Common LISP для своего поисковая система QPX по низкой цене , который поддерживает такие сайты, как Orbitz , Каяк и американец и Юнайтед Авиакомпании среди многих других. Он также частично используется для предстоящего система бронирования пассажиров для Air Canada. Пол Грэм немного написал о LISP в ITA в прошлом.

(Отказ от ответственности: я работаю там.)

43
Joe Shaw
26
jfs

в качестве небольшого стартапа мы создали нечто, что некоторые люди называют "сервером приложений". но на самом деле это просто набор интегрированных общих библиотек LISP для подключения SQL и веб-приложений. некоторые подробности доступны на страница проекта cl-dwim

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

у него около 4000 пользователей, и он работает на кластере компьютеров.

что касается "академического языка": мы играем с такими вещами, как постоянные продолжения моделирования бизнес-процессов. это некоторый случайный код LISP с несколькими дополнительными примитивами, связанными с процессом, и несколькими ограничениями. он может останавливаться в произвольных точках кода и засыпать (попадать в базу данных), ожидая какого-то внешнего события.

это практично или академично? Вам решать... :)

25
Attila Lendvai

Reddit изначально был написан на LISP, а затем переписан на Python. Есть хороший анализ переключателя и того, что он означает для LISP, в Поиск LISP .

23
Mark Reid

Пол Грэм использовал и написал о ViaWeb, который был написан на LISP

Читайте об этом здесь - Beating the Average

22
epatel

Достаточно недавний проект с открытым исходным кодом, который все еще пользуется последовательной и значительной разработкой, - это LilyPond .

Это музыкальная программа для записи нот, которая принимает легко вводимый текстовый файл и преобразует его в прекрасные ноты (PDF-файлы). Предлагает всевозможные способы возиться с выводом, если хотите. Он может даже производить достойно звучащие миди-файлы. Я использую его всякий раз, когда мне нужно продюсировать ноты, которые другие музыканты будут читать. Я думаю, что это лучше, чем финал, и это бесплатно !

В коммерческой категории есть также Игорь Гравер Notehead . К сожалению, сайт не позволяет мне размещать прямую ссылку на страницу, где говорится о LISP, поэтому перейдите к загрузкам и посмотрите внизу ссылку "LISP".

Также есть Naughty Dog (компания, занимающаяся компьютерными играми), которая использует LISP в своих играх. Эта статья рассказывает об этом и даже показывает некоторый код.

И есть много других, которые были упомянуты и связаны с ними, но это основные, которые резонируют со мной (тип композитор/программист/геймер/... типа).

12
Galghamon

Программное обеспечение ITA использует изрядное количество CL.

http://www.itasoftware.com/careers/l_e_t_LISP.html?catid=8

12
Ali

Некоторые более свежие:

Первые три из них были написаны с использованием Weblocks, веб-платформы CL. Wigflip и Clutu используют чистый Hunchentoot.

Теперь получите код! :)

10
Leslie P. Polzer

Космический телескоп Хаббл запланирован с использованием инструментов планирования LISP. Спейс Шаттл был. Телескоп Уэбба будет. Компания, которой я пишу LISP, анализирует миллиарды долларов страховых случаев и растет на ~ 30% в год даже после рецессии. Мы были куплены огромной компанией, и один из наших программистов совпал (фактически улучшил) выпуск (огромной компании) программного обеспечения для анализа заявок Medicare, начиная с нуля, сам по себе, через год. (огромная компания) код, не в LISP, занял 6 лет и несколько программистов. Проблема, связанная с карьерой, заключается в том, что слишком многие слушают болтовню о "множестве раздражающих глупых скобок" и так далее. Большинство менеджеров не "понимают" и предпочитают иметь проект на достаточно знакомом языке, чтобы они могли управлять ими на микроуровне. Они думают "LISP = AI" и даже не хотят думать, что это хороший язык общего назначения. Они просто затыкают уши. Не существует отточенных инструментов для создания M $ -дружественных веб-сайтов, кластеризации или конвейеризации существующих Java приложений, и это 90% того, о чем заботятся ИТ-специалисты в наши дни роста за счет приобретения. Я мог бы продолжать, но это бы меня огорчило. :)

10
ThePrisoner

Если бы я запустил свой собственный крупный программный проект сейчас, я бы принял решение по языку на основе вышеуказанных критериев. Конечно, я люблю LISP, CLOS - это круто, настоящие лексические рамки, макросы LISP очень крутые (при использовании по назначению), и лично мне очень нравится синтаксис LISP. […] Но потребовалось бы много времени или особых обстоятельств, чтобы убедить меня выбрать LISP для крупного программного проекта, если бы я отвечал за выбор. - Дэн Вайнреб

9
Ólafur Waage

Я считаю, что у Autocad есть расширения, использующие LISP для расширения продукта. Смотрите AutoLISP .

9
Alex Miller

Питер Кристенсен составил большой список (в финансовом отношении) успешных компаний LISP.

http://www.pchristensen.com/blog/LISP-companies/

9
Eric Normand

Есть много компаний, проектов и продуктов, которые используют LISP в различных ролях - я сделал работу для нескольких из них.

Есть два важных момента:

  1. вы, возможно, никогда не узнаете, что ваша последняя часть бытовой электроники была построена с использованием Common LISP или даже запрограммирована в ней, или что некоторые используемые вами службы работают на сервере LISP. Было бы неверно делать вывод, что LISP "никогда не используется".

  2. … И, как и многие другие домены, эти вакансии никогда не появлялись на Monster.com. Тот факт, что вы никогда не видели публикации вакансий, вовсе не означает, что там нет никаких необходимых для LISP возможностей или подходящих инструментов для работы.

8
Rich

Я полагаю, что система плагинов GIMP основана на Scheme. Я не знаю, является ли это полностью "реальным миром", но это, по крайней мере, практическое применение LISP.

8
Tikhon Jelvis

Посмотрите вверх ACL2 . Это основанный на LISP движок формальной логики, который использовался для ряда проектов "реального мира", таких как формальные методы обеспечения безопасности программного обеспечения и доказательства правильности для оборудования с плавающей точкой.

6
BCS

Далеко не исчерпан список в http://www.franz.com/success/all_customer_apps.lhtml

6
fincomus

Если мои планы сработают, мы все будем использовать Scheme через 5 лет! ;п

6
leppie

LISP используется в реальной алгоритмической композиции музыки с библиотекой Common Music . Заметки Рика Тауба с метауровня являются отличным вводным текстом к предмету, который содержит множество примеров в LISP для сочинения. Смотрите каталог примеров здесь и копию текста здесь .

6
Curtis

Я был очень впечатлен, когда узнал, что PRISM ("Проект Prism - это долгосрочный проект по созданию программных инструментов для планирования лучевой терапии, включая инструменты искусственного интеллекта, а также системы ручного моделирования. ") Написано в Common LISP.

На своей работе я пишу программное обеспечение, которое использует DICOM , и я должен сказать, что написание хорошей реализации DICOM - трудная задача. В своих отчет они описывают, как Common LISP позволяет им создавать хорошую реализацию DICOM, которая лучше (по крайней мере, в некоторых отношениях), чем другая реализация с меньшими усилиями.

6
dmitry_vk

Я только сейчас понял, что Maxima , программа для символической алгебры, написана на Common LISP. Я использовал это в течение довольно долгого времени, и я думаю, что это также очень хороший пример из реальной жизни.

5
Jan Stolarek

Google App Inventor написан на схеме

5
shikhar

Ну, это вряд ли мейнстрим, но я использую LISP для большей части своего исследовательского кода, насколько это возможно. На сегодняшний день это лучший язык, который я нашел для баланса динамичности и выразительности, и в то же время генерирующий приличную производительность для чисел и т.д.

5
simon

Мэтью Эрик Бассетт об использовании Racket в киноиндустрии: http://www.youtube.com/watch?v=37owCjWnkK

Даниэль Либголд о Racket и PS3: http://www.youtube.com/watch?v=oSmqbnhHp1c

4
soegaard

GNU Make расширяется с помощью схемы. Случай для программирования реального мира :)

https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html

4
antono

LISP предпринял попытку подняться на скорость света в начале 80-х годов. До появления ПК существовали коммерчески производимые машины LISP, которые очень похожи на современные рабочие станции, но были LISP "до упора". Оборудование LISP в конечном итоге уступило Intel (как и все остальное). Программное обеспечение LISP в конечном итоге уступило C/C++. Существует множество теорий, почему это все так. http://www.andromeda.com/people/ddyer/LISP/

3
ddyer

Как уже говорилось ранее, система компьютерной алгебры "Maxima" написана на LISP, но другие CAS также написаны на LISP, например, Axiom и ее форки (OpenAxiom и Fricas).

2
Thomas Baruchel

Набор инструментов для алгоритмической композиции от Пола Берга: http://www.koncon.nl/downloads/ACToolbox/

2
rabidmachine9

Я вижу, что несколько человек уже упоминали об этом, но LISP широко используется в разработке пользовательских Autocad. Autocad включает в себя встроенный интерпретатор LISP. Это один из самых простых способов расширения продукта, который позволяет быстро повысить производительность.

На стороне пользователя компиляция не требуется, и 1 или более строчных LISP-выражений могут быть введены в командной строке и выполнены немедленно на чертеже. Для дизайнеров и чертежников, желающих сделать хотя бы небольшой шаг в изучении основ LISP, это может обеспечить огромный выигрыш в производительности.

Autocad предоставляет ряд других способов настройки своих продуктов; ObjectARX (C++), VB, C # и т.д. Интерфейс LISP является самым простым для изучения и реализации. И большинство других сред разработки используют LISP в некотором роде.

Интерпретатор LISP был доступен в очень ранней версии Autocad и назывался переменными и выражениями. Он был довольно ограниченным, но пользовался таким успехом у пользователей, что быстро добавлялись дополнительные функции. Полноценный визуальный IDE был позже (в версии 2000, я думаю).

Не хотелось бы догадываться, сколько миллионов (миллиардов?) Строк кода LISP доступно для Autocad. Поиск в Google по "autocad .lsp" возвращает 2,3 миллиона просмотров.

Хорошо, хватит набирать текст, он снова работает для меня, пишет больше LISP для моего текущего проекта :)

2
bluesixty

Для приложения AutoCAD AutoLISP/Visual LISP часто используются для реальных проектов, и существует большое сообщество пользователей.

2
Jimmy Bergmark - JTB World

Язык программирования Scheme используется в качестве языка сценариев программным обеспечением FLUENT Flow Modeling (вычислительная гидродинамика, CFD).

2
jfs

У моей компании есть программное обеспечение, написанное на схеме (PLOT). Программное обеспечение используется для работы в качестве брандмауэра электронной почты для крупных компаний.

2
paul

http://www.gensym.com/ - У движка бизнес-правил в реальном времени много промышленных клиентов.

Внутренне это написано в Commom LISP

1
kmmbvnr

Просто добавьте ко всем очень мудрым комментариям выше: посмотрите на инструмент Corman LISP и узнайте, как встроить ОЧЕНЬ ИНТЕЛЛЕКТУАЛЬНЫЕ ФУНКЦИИ во встроенную систему!

1
Alan P Borsalino

http://echowaves.com это встроенная среда с compojure. Сайт был создан как учебное упражнение, чтобы понять, целесообразно ли использовать clojure для создания веб-приложений. Ответ - да! Недурно для clojure в Интернете. Изучайте clojure во что бы то ни стало - это улучшит вашу карьеру. Код с открытым исходным кодом, если кто-то хочет увидеть пример, каковы типичные движущиеся части для типичного приложения compojure https://github.com/echowaves/echowaves

1
dmitryame

Это прекрасный язык, но он покалечен, потому что (на мой взгляд, как владелец программного обеспечения и программист) очень мало коммерческих пакетов LISP, и немногие из них требуют плату за время выполнения (потому что правильный пакет LISP может быть используется конечными пользователями для написания программ на LISP).

Я использую Steel Bank Common LISP для создания прототипа кода под Windows и Linux, и мне это нравится, но я бы никогда не подумал о доставке продукта, написанного с ним. Нет простого способа настроить доступ к программам одним щелчком, чтобы конечный пользователь никогда не сталкивался с приглашением LISP. Невозможно отправить скомпилированный продукт, чтобы пользователь не мог его разобрать, внести некоторые изменения, чтобы удалить ваше имя, и продать его как свое собственное. Я видел упоминание о системах LISP, в которых можно использовать обе эти системы, но они коммерческие, где вы должны платить за время выполнения программы для каждого конечного пользователя вашей программы, что нелепо.

LISP может когда-нибудь начать свое существование (и я искренне надеюсь, что это произойдет), но он пока не подходит для большинства коммерческих программ. Единственным исключением является то, что он всегда будет работать в системах, над которыми у вас есть полный контроль, таких как веб-сервер (и я слышал только о паре компаний, использующих его даже для этого).

0
Head Geek

Walmart использует clojure для обработки покупок в реальном времени

0
blue_note