Table of Contents

Lisp в реальном мире

Оригинал: https://stackoverflow.com/questions/172798/lisp-in-the-real-world

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

Matthias Benkard:

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

"Пожалуйста, не принимайте Lisp за язык, полезный только для анимации и графики, AI, Биоинформатики, B2B и электронной коммерции, Data Mining, EDA/Semiconductor приложений, экспертных систем, финансов, интеллектуальных агентов, управления знаниями, Механических CAD, моделирования, обработки естественного языка, Оптимизации, исследований, анализа рисков, планирования, телекоммуникаций и веб-авторинга просто потому, что это единственные вещи и они оказались в списке…"

Кент Питман, Computer Scientist, President of HyperMeta, Inc. (https://en.wikipedia.org/wiki/Kent_Pitman)

Joe Shaw:

ITA Software использует Common Lisp для своей поисковой системы с низким уровнем тарифов QPX, которая поддерживает такие сайты, как

и многие других.

Он также частично использовался для системы бронирования пассажиров для Air Canada. Пол Грэм написал немного о Lisp в ITA в прошлом: Carl de Marcken: Inside Orbitz

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

Attila Lendvai:

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

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

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

Как "академический язык" мы играем с такими вещами, как persistent continuations для моделирования бизнес-процессов. Это некоторый случайный lisp-код с несколькими дополнительными примитивами, связанными с процессом, и несколькими ограничениями. Он может останавливаться в случайных точках и засыпать (например, когда коммитит в базу данных), пока он ждет какого-либо внешнего события.

Это практический или академический? вам решать :)

Mark Reid:

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

jfs:

История подъема и падения Lisp в Лаборатории реактивного движения

epatel:

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

Прочитайте об этом здесь - Побеждая посредственность

Galghamon:

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

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

В коммерческой категории есть также Notehead's Igor Engraver. К сожалению, сайт не позволяет мне публиковать прямую ссылку на страницу, где говорится о Lisp, поэтому перейдите к Downloads и посмотрите внизу на ссылку "Lisp".

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

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

В качестве схемера мне было интересно прочитать часть руководства LilyPond, в котором объясняется, как Scheme стала частью LilyPond. Он был полностью на C, но они обнаружили, что пользователь должен быть более "programmable" пользователем, и они смогли решить эту проблему, переписав части его в Scheme и построив интерпретатор Scheme, который дает пользователю доступ к внутренностям LilyPond .

skypher:

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

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

Eric Normand:

Питер Кристенсен составил отличный список (финансово) успешных компаний lisp. http://www.pchristensen.com/blog/lisp-companies/

Rich:

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

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

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

… и, как и многие домены, эти задания никогда не появлялись на Monster.com. Просто потому, что вы никогда не видели, чтобы объявление о вакансиях для него не означало, что нет возможностей Lisp-required или right-tool-for-the-job.

Tikhon Jelvis:

Система плагинов GIMP основана на схеме. Я не знаю, является ли это полностью "реальным миром", но, по-видимому, это практическое применение Lisp.

ThePrisoner:

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

BCS:

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

Curtis:

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

dmitry_vk:

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

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

shikhar:

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

simon:

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

Jan Stolarek:

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

antono:

GNU Make расширяется Scheme. Случай для программирования в реальном мире:) https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html

soegaard:

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

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

jfs:

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

Thomas Baruchel:

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

rabidmachine:

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

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

bluesixty:

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

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

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

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

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

dmitryame:

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

kmmbvnr:

http://www.gensym.com/ - Real time business rules engine. Есть много промышленных клиентов. Внутри система написана на Commom Lisp.

Яндекс.Метрика
Home