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

Я экспериментировал с Lisp (на самом деле Scheme) и обнаружил, что это очень красивый язык, о котором мне интересно узнать больше. Однако похоже, что Lisp никогда не используется в серьезных проектах, и я не видел, чтобы он указывался как желаемый навык при размещении вакансий. Мне интересно услышать мнение любого, кто использовал Лисп или видел, как он используется в «реальном мире», или кто знает, считается ли он чисто академическим языком.


person Community    schedule 05.10.2008    source источник
comment
@titaniumdecoy: После того, как я только что открыл для себя Clojure и не имел предыдущего опыта работы с языками стиля Lisp, я добавил тег Clojure для тех, кто ищет дискурс в Lisp. :)   -  person Ande Turner    schedule 06.10.2008
comment
@titaniumdecoy: Clojure является потомком Lisp, который работает на JVM и может использовать API, написанные на Java.   -  person Ande Turner    schedule 06.10.2008
comment
Я бы не стал изучать Lisp как способ улучшить вашу карьеру, потому что это не так. Изучите его, чтобы во что бы то ни стало стать лучшим программистом общего профиля.   -  person skaffman    schedule 10.07.2009
comment
В списке рассылки Clojure мы часто получаем истории успеха в отрасли от людей, использующих этот язык.   -  person Rayne    schedule 10.07.2009
comment
@skaffman: а разве это не поможет улучшить твою карьеру?   -  person Erik Forbes    schedule 08.12.2009
comment
Я никогда не видел, чтобы это было указано в объявлениях о вакансиях, но я убежден, что мой опыт работы со схемой помог мне получить мою последнюю работу.   -  person gcbenison    schedule 26.01.2012


Ответы (38)


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

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

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

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

person Community    schedule 06.10.2008
comment
Мне эта аннотация кажется пустой мантрой. Конечно, это может быть где-то в этих областях, но в основном в виде унаследованного кода. По моему опыту из реальной жизни, Python в сочетании с Swigged C / C ++ во многом заменил Lisp в качестве языков быстрого прототипирования, предпочитаемых прагматичными хакерами. - person Johan Kotlinski; 29.05.2009
comment
@kotlinski где доказательства? когда вы чрезмерно обобщаете отрасль, вы говорите о среднем, а не о лучших ее частях. Истории успеха почти всегда основаны на отличительных и не очень средних технологиях / идеях. - person Luka Ramishvili; 20.02.2012
comment
Подробнее здесь: lisp-lang.org/success (красиво представлено) и здесь: компаний, использующих Common LIsp. - person Ehvince; 20.02.2019

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

person Community    schedule 05.10.2008
comment
Нет, но vim делает;). К сожалению (а может быть, к счастью), на vimscript никто не написал серьезного программного обеспечения. - person new123456; 26.07.2011

Программное обеспечение ITA использует Common Lisp для его недорогой поисковой системы QPX, которая поддерживает такие сайты, как < href = "http://orbitz.com" rel = "noreferrer"> Orbitz, каяк и American и United Airlines среди многих других. Он также частично используется в будущей системе бронирования пассажиров для Air Canada. Пол Грэм в прошлом писал немного о Lisp в ITA.

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

person Community    schedule 06.10.2008


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

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

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

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

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

person Community    schedule 06.10.2008
comment
Вау! Я полностью полагал, что все программное обеспечение, которое использует правительство, было написано на базовом уровне, учитывая, насколько большинство из них - отстой. Это все еще используется? - person R R; 08.07.2012
comment
конечно, нет ... нас бросили, когда проект был разработан, доказал свою жизнеспособность и было выделено достаточно денег / внимания. крупная компания с хорошими связями взяла на себя управление и написала свою версию на java. один интересный лакомый кусочек заключается в том, что они продолжали работать с нашей кодовой базой в течение многих лет. я помог им с днем ​​консультации ... - person Attila Lendvai; 17.07.2012

Reddit изначально был написан на Лиспе, а затем был переписан на Python. Хороший анализ переключателя и его значения для Lisp можно найти по адресу В поисках Лиспа.

person Community    schedule 05.10.2008
comment
А вот обратная история: pgloader был переписан с Python на Common Lisp: tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster - person Ehvince; 20.02.2019

Пол Грэм использовал и писал о ViaWeb, написанном на LISP.

Прочтите об этом здесь - Превосходя средний уровень

person Community    schedule 05.10.2008
comment
Это не очень хороший пример, они ушли из бизнеса много лет назад. - person 1800 INFORMATION; 06.10.2008
comment
Кстати, могу я просто добавить, что я думаю, что Пол заблуждается по этому поводу: не LISP дал им преимущество, а просто проявил смекалку и был внимателен. Они могли бы преуспеть с VB, если бы это был единственный инструмент под рукой. - person Jeff; 06.10.2008
comment
Они не разорились, их скупила Yahoo. Большая разница, по крайней мере, для разработчиков. :-) - person Head Geek; 06.10.2008
comment
Если лучший пример, который можно придумать, был куплен много лет назад и впоследствии брошен в землю, тогда LISP показывает, что LISP не так хорош в реальном мире? - person 1800 INFORMATION; 06.10.2008
comment
@ 1800: Он ушел в землю только после того, как Yahoo приобрел его и переписал на другом языке, так что хватит соломенной работы. - person wfarr; 06.10.2008
comment
И с тех пор не было других значительных примеров использования LISP в реальном мире, и если бы это было полезно, они бы продолжали использовать его, написанный как LISP? - person 1800 INFORMATION; 06.10.2008
comment
@ 1800: Похоже, вы намеренно неправильно понимаете реакцию на флеймбейт. Почему бы вам просто не расширить свой кругозор, попробовав Lisp на себе, вместо того, чтобы прийти к выводу, что это «бесполезно» из того, что другие люди решили делать, исходя из некоторых обстоятельств, о которых вы ничего не знаете? - person Matthias Benkard; 06.10.2008
comment
@ 1800: Забудь, что сказал Матиас, я вообще-то думаю, что это довольно забавно. Ваше утверждение о том, что не было других значимых примеров использования LISP в реальном мире, прямо подразумевает, что вы всеведущи. Браво! - person Ali; 06.10.2008

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

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

person Community    schedule 06.10.2008

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

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

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

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

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

person Community    schedule 10.10.2008
comment
Программисту интересно и вдохновляюще читать часть руководства LilyPond, в которой объясняется, как Scheme стал частью LilyPond. Раньше он был полностью на C ++, но они обнаружили, что он должен быть более программируемым пользователем, и они смогли решить эту проблему, переписав его части в Scheme и построив интерпретатор Scheme, который дает пользователю доступ к LilyPond. внутренности. - person Lindsey Kuper; 02.12.2011

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

person Community    schedule 17.01.2013

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

person Community    schedule 05.10.2008
comment
Верно - тогда наслаждайтесь тем, что никого не наняли :) - person Jeff; 06.10.2008
comment
@Jeff: Но чтобы убедить меня выбрать Lisp для крупного программного проекта, потребуется много или особые обстоятельства. Это точка против Лиспа. - person jfs; 06.10.2008
comment
откуда эта цитата? поиск в Google по фрагментам текста дает только этот пост - person ; 06.10.2008
comment
Вы должны нажать: повторить поиск с пропущенными результатами. Цитата взята из: Discussion.fogcreek.com/joelonsoftware/ - person Chris Jester-Young; 06.10.2008
comment
ваше здоровье. Я должен сказать, что эта цитата звучит сильнее, чем есть на самом деле, вне контекста. Weinreb сейчас работает в ITA и, среди прочего, ведет блог о шепелявости; Интересно, как и могло ли это повлиять на его мнение? - person ; 07.10.2008

Еще несколько свежих:

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

Теперь займемся кодированием! :)

person Community    schedule 10.07.2009

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

person Community    schedule 05.10.2008
comment
Правильный. Он также реализует ActiveX - он довольно мощный, и сами AtoDesk используют его для написания «внутренних» команд. В основном он интерпретируется в ObjectARX - C ++. - person CAD bloke; 24.11.2008

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

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

person Community    schedule 08.10.2008
comment
Его список продолжается здесь: github.com/azzamsa/awesome-lisp-companies - person Ehvince; 16.03.2021

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

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

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

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

person Community    schedule 06.10.2008
comment
Так где же делать эти вакансии? Я сам пытался разгадать это. - person Charlie Flowers; 01.04.2011
comment
Из опыта: списки рассылки, прямая личная почта от компаний и рекрутеров, личные упоминания, группы пользователей и т. Д. - person Rich; 20.04.2011
comment
благодаря. Похоже, вы говорите то же самое, что я читал в другом месте ... что мир Lisp - это небольшое сообщество, и вы можете воспользоваться этим, внося свой вклад и узнаваясь в этом сообществе, и это, вероятно, лучший способ получить Lisp рабочие места. Вы согласны? - person Charlie Flowers; 21.04.2011
comment
да. Кроме того, это лучший способ получить работу, и точка. Продемонстрируйте свои навыки, познакомьтесь с людьми и заявите о себе. - person Rich; 29.04.2011

Я считаю, что система плагинов GIMP основана на схеме. Я не знаю, полностью ли это «реальный мир», но, по крайней мере, это похоже на практическое применение Лиспа.

person Community    schedule 15.08.2010

Найдите ACL2. Это механизм формальной логики, основанный на lisp, который использовался для ряда «реальных» проектов, таких как формальные методы обеспечения безопасности программного обеспечения и доказательства правильности для оборудования с плавающей запятой.

person Community    schedule 05.10.2008
comment
Это потрясающая программа. - person user37248; 10.03.2009


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

person Community    schedule 06.10.2008
comment
Мои планы, вероятно, очень похожи: 1) Сделать над схемой крутую библиотеку (сейчас на полпути). 2) Протестируйте библиотеку, написав в ней классные программы (1 готов, еще несколько). 3) Открытый исходный код библиотеки (уже сделано, но очень небрежно). 4) ... 5) Lisp становится естественным инструментом для работы на работе. - person Ali; 22.11.2008
comment
Я тяну за тебя. Но осталось всего 2 с половиной года! Надеюсь, ты на правильном пути. - person Charlie Flowers; 01.04.2011
comment
Привет. Прошло 5 лет. - person Karol S; 03.11.2013
comment
Лучше поздно, чем никогда! - person Loïc Faure-Lacroix; 09.12.2016
comment
@ LoïcFaure-Lacroix Все еще пытаюсь! : D - person leppie; 10.12.2016

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

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

person Community    schedule 09.07.2009

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

person Community    schedule 29.03.2012

Лисп используется в реальной алгоритмической музыкальной композиции с помощью библиотеки Common Music. Notes from the Metalevel Рика Таубе - это отличный вводный текст к предмету, в котором есть множество примеров для написания на Лиспе. См. Каталог примеров здесь и копию текста здесь.

person Community    schedule 13.01.2013

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

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

person Community    schedule 05.12.2013

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

person Community    schedule 07.10.2008

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

person Community    schedule 14.08.2010

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

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

person Community    schedule 23.01.2012

Лисп попытался перейти на скорость света в начале 80-х. До появления ПК были коммерчески производимые «Машины Лиспа», которые внешне очень напоминали современные рабочие станции, но были шепелявыми «полностью вниз». Аппаратное обеспечение Lisp в конечном итоге проиграло Intel (как и все остальное). Программное обеспечение Lisp в конечном итоге проиграло C / C ++. Есть множество теорий, почему все это так. http://www.andromeda.com/people/ddyer/lisp/

person Community    schedule 13.09.2009

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

person Community    schedule 17.10.2008

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

person Community    schedule 10.01.2009

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

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

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

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

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

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

person Community    schedule 10.11.2009

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

person Community    schedule 20.04.2011

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

person Community    schedule 23.01.2012

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

person Community    schedule 15.02.2014
comment
В Amazon есть несколько групп, использующих Clojure в производстве. 100% совместимость с Java имеет решающее значение, потому что мы можем утверждать, что использование Clojure нулевого риска, что Clojure - это просто альтернативная (более короткая) нотация для Java. Все согласны с тем, что если есть два способа сделать одно и то же, и один из двух способов короче (меньше строк кода), то более короткий лучше. Clojure побеждает в этой битве почти каждый раз. - person Reb.Cabin; 19.12.2015

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

person Community    schedule 08.11.2015

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

person Community    schedule 15.05.2019

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

person Community    schedule 09.12.2008

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

Внутренне он написан на Commom Lisp.

person Community    schedule 02.01.2014

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

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

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

person Community    schedule 05.10.2008
comment
вы можете создавать исполняемые файлы с помощью sbcl (хотя они будут огромными). Мне нравится, как все вокруг lisp с открытым исходным кодом. Я очень не хочу полагаться на компоненты, не относящиеся к OSS, и все наши вещи - OSS. все что угодно можно разобрать, взломать и перепродать. исправление должно произойти в отделе маркетинга ... - person Attila Lendvai; 06.10.2008
comment
Это замечательный язык, но он уродлив, потому что (на мой взгляд, как владелец программного обеспечения и программист) существует очень мало коммерческих пакетов Lisp, а те немногие, которые существуют там, требуют платы за выполнение (потому что правильный пакет Lisp может быть также используется конечными пользователями для написания программ на Лиспе). Неправда, например, для LispWorks в Windows, Mac и Linux. - person Friedrich; 07.10.2009
comment
Интересно ... это единственное, что я видел, который не требует платы за время выполнения. Они могут стать спасением Lisp для коммерческого программного обеспечения. - person Head Geek; 10.10.2009