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

146

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

titaniumdecoy
источник
1
@titaniumdecoy: После того, как я открыл для себя Clojure и не имел опыта работы с языками стилей Lisp, я добавил тег Clojure для тех, кто ищет дискурс в Lisp. :)
Андер Тернер
1
@titaniumdecoy: Clojure является потомком Lisp, который работает на JVM и может использовать API-интерфейсы, написанные на Java
Ande Turner
12
Я бы не изучал Lisp как способ улучшить вашу карьеру, потому что это не так. Изучите это, чтобы сделать вас лучшим программистом, во что бы то ни стало.
Скаффман
13
В списке рассылки Clojure мы часто получаем истории успеха от людей, которые используют этот язык.
Рейн
42
@skaffman: но разве это не поможет улучшить твою карьеру?
Эрик Форбс

Ответы:

88

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

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

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

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

Matthias Benkard
источник
41
Мне кажется, что эта реклама очень пустая мантра. Конечно, это может быть где-то в этих областях, но в основном как устаревший код. По моему опыту из реальной жизни, Python в сочетании с мощным C / C ++ во многом заменил Lisp как язык быстрого прототипирования, который предпочитают прагматичные хакеры.
Йохан Котлински
30
@kotlinski где доказательства? когда вы чрезмерно обобщаете отрасль, тогда вы говорите о среднем, а не о лучших его аспектах. истории успеха почти каждый раз следуют отличительным и не очень средним технологиям / идеям.
Лука Рамишвили
Больше здесь: lisp-lang.org/success (красиво представлен) и здесь: компании, использующие Common LIsp .
Ehvince
54

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

eschercycle
источник
Нет, но vimделает;). К сожалению (или, возможно, к счастью), никто не написал серьезное программное обеспечение в vimscript.
new123456
43

ITA Software использует Common Lisp для своей поисковой системы QPX, которая обеспечивает работу таких сайтов, как Orbitz , Kayak , American и United Airlines и многих других. Он также частично используется для будущей системы бронирования пассажиров для Air Canada. В прошлом Пол Грэм написал немного о Лиспе на ITA.

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

Джо Шоу
источник
25

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

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

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

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

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

Аттила Лендвай
источник
Вот Это Да! Я полностью полагал, что все программное обеспечение, которое использует правительство, было написано в основном как базовое, учитывая, насколько большинство из них отстой. Это все еще используется?
RR
5
конечно нет ... мы были отброшены, как только проект был разработан, доказал свою жизнеспособность и выделил достаточно денег / внимания. крупная компания с хорошими связями вступила во владение и написала свою собственную версию на языке Java. Один интересный момент заключается в том, что они продолжали использовать нашу кодовую базу в течение многих лет. я помог им с днем ​​консультаций ...
Аттила Лендвай
23

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

Марк Рейд
источник
Вот обратная история: pgloader был переписан с Python на Common Lisp: tapoueh.org/blog/2014/05/why-is-pgloader-so-much-faster
Ehvince
22

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

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

epatel
источник
4
Это не очень хороший пример, они разорились много лет назад
1800 ИНФОРМАЦИЯ
9
Кстати, могу ли я просто добавить, что я думаю, что Пол бредит по этому поводу: это был не LISP, который дал им преимущество, это был просто ум и внимательность. Они могли бы преуспеть с VB, если бы это был единственный инструмент под рукой.
Джефф
23
Они не ушли из бизнеса, их скупил Yahoo. Большая разница, по крайней мере, для разработчиков. :-)
Head Geek
18
@ 1800: он «упал на землю» только после того, как Yahoo перешел на него и переписал его на другом языке, так что прекратите это.
wfarr
6
@ 1800: Забудь, что сказал Матиас, я думаю, это довольно забавно. Ваше утверждение о том, что «не было других значимых примеров использования LISP в реальном мире», прямо подразумевает, что вы всеведущий. Браво!
Али
12

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

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

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

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

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

Galghamon
источник
1
Как Schemer, интересно и вдохновляюще читать часть руководства LilyPond, в котором объясняется, как Scheme стала частью LilyPond. Раньше он был полностью на C ++, но они обнаружили, что он должен быть более программируемым для пользователя, и они смогли решить эту проблему, переписав его части в Scheme и встроив интерпретатор Scheme, который дает пользователю доступ к LilyPond внутренности.
Линдси Купер
10

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

Олафур Вааге
источник
Правильно - тогда наслаждайтесь тем, что не можете никого нанять :)
Джефф
@Jeff: «Но потребовалось бы много времени или особых обстоятельств , чтобы убедить меня выбрать Lisp для крупного программного проекта». Это точка против Лисп.
JFS
откуда эта цитата? поиск в Google по текстовым
Вы должны нажать: «повторить поиск с пропущенными результатами». Цитата из: обсуждения.fogcreek.com/joelonsoftware/…
Крис Джестер-Янг
5
веселит. Я должен сказать, что эта цитата выглядит сильнее, чем на самом деле, вне контекста. weinreb сейчас работает в ITA, и среди прочего ведет блог о lisp; Интересно, а как это могло повлиять на его мнение?
10

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

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

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

Лесли П. Ползер
источник
10

Космический телескоп Хаббл планируется с помощью инструментов планирования Лисп. Спейс Шаттл был. Телескоп Уэбба будет. Компания, которую я пишу на Лиспе, анализирует миллиарды долларов страховых случаев и растет на ~ 30% в год даже после рецессии. Мы были куплены огромной компанией, и один из наших программистов сопоставил (фактически улучшил) выпуск программного обеспечения (огромной компании) для анализа заявок Medicare, начиная с нуля, сам по себе, через год. (огромная компания) код, не на Лиспе, занял 6 лет и несколько программистов. Проблема, связанная с карьерой, состоит в том, что слишком многие слушают болтовню о «множестве раздражающих глупых скобок» и так далее. Большинство менеджеров не «понимают» и предпочитают иметь проект на достаточно знакомом языке, чтобы они могли микроуправляться. Они думают "

Узник, заключенный
источник
9

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

Алекс Миллер
источник
Верный. Он также реализует ActiveX - он довольно мощный, и AtoDesk использует его для написания «внутренних» команд. Это интерпретируется в ObjectARX - C ++, в основном.
CAD bloke
8

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

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

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

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

Богатый
источник
Так где же появляются эти рабочие места? Я пытался разгадать это сам.
Чарли Флауэрс
2
Из опыта: списки рассылки, прямая личная почта от компаний и рекрутеров, личные упоминания, группы пользователей и тому подобное.
Рич
1
Спасибо. Похоже, вы говорите то же самое, что я читал в другом месте ... что мир Lisp - это маленькое сообщество, и вы можете воспользоваться этим, внеся свой вклад и узнав о себе в этом сообществе, и это, вероятно, лучший способ получить Lisp рабочие места. Вы согласны?
Чарли Флауэрс
5
Да. Кроме того, это лучший способ получить работу, и точка. Продемонстрируйте свои навыки, познакомьтесь с людьми и заявите о себе.
Рич
8

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

Тихон Джелвис
источник
6

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

BCS
источник
Это удивительная часть программного обеспечения.
user37248
6

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

leppie
источник
Мои планы, вероятно, очень похожи: 1) Сделать потрясающую библиотеку поверх схемы (сейчас уже на полпути). 2) Протестируйте библиотеку, написав в ней классные программы (1 вниз, еще немного). 3) С открытым исходным кодом библиотеки (уже сделано, но очень случайно). 4) ... 5) Лисп становится естественным инструментом для работы на работе.
Али
3
Я тяну за тобой. Но у вас осталось всего 2 с половиной года! Надеюсь, вы на правильном пути.
Чарли Флауэрс
10
Здравствуй. 5 лет прошло.
Karol S
1
Лучше поздно, чем никогда!
Лоик Форе-Лакруа
1
@ LoïcFaure-Lacroix Все еще пытаюсь! : D
Леппи
6

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

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

dmitry_vk
источник
6

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

Curtis
источник
5

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

Саймон
источник
5

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

Ян Столарек
источник
3

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

ddyer
источник
2

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

JFS
источник
2

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

Джимми Бергмарк - Мир JTB
источник
2

Я вижу, что несколько человек уже упоминали об этом, но 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 миллиона просмотров.

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

bluesixty
источник