2008-10-05 4 views
138

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

+0

@titaniumdecoy: После простого открытия Clojure и отсутствия предыдущих впечатлений в языках стиля Lisp я добавил тег Clojure для тех, кто ищет дискурс в Lisp.:) – 2008-10-06 09:35:39

+0

@titaniumdecoy: Clojure - это decendant of Lisp, который работает на JVM и способен использовать API, написанные на Java – 2008-10-06 09:37:48

+11

Я бы не изучил Lisp как способ улучшить вашу карьеру, потому что это не так. Изучите его, чтобы сделать вас лучшим программистом, во что бы то ни стало. – skaffman 2009-07-10 09:01:16

ответ

84

Franz, Inc. предоставляет неисчерпывающий list of success stories на своем веб-сайте. Однако:

Пожалуйста, не думайте, Лисп только полезно для анимации и графики, AI, биоинформатики, B2B и электронной коммерции, Data Mining, EDA/полупроводниковых приложений, Expert Systems, Финансы, Интеллектуальные агенты, знание управления, Mechanical CAD, Моделирование и моделирование, Natural Language, Оптимизация, исследование, анализ рисков, планирование, связь и Web Authoring только потому, что это единственные вещи они случились в список. - Kent Pitman

9

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

+0

Право - тогда наслаждайтесь тем, что не можете нанять кого-нибудь :) – Jeff 2008-10-05 23:20:39

+0

@Jeff: «Но это будет * взять много * или * потребовать особых обстоятельств *, чтобы убедить меня выбрать Lisp для крупного программного проекта». Это точка против Лиспа. – jfs 2008-10-05 23:48:17

+0

где цитата? googling текстовыми фрагментами дает только этот пост – 2008-10-06 01:05:50

22

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

Читайте об этом here - Beating the Average

+4

Thats not действительно хороший пример, они вышли из бизнеса много лет назад – 2008-10-05 23:13:37

+9

BTW, могу ли я добавить, что я думаю, что Пол бредовый в этом: он не был LISP, который дал им преимущество, это было просто умнее и обращать внимание , Они могли бы добиться успеха с помощью VB, если бы это был единственный инструмент. – Jeff 2008-10-05 23:14:05

6

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

0

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

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

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

51

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

9

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

23

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

43

ITA Software использует Common Lisp для своих QPX low-fare search engine каких сайтов полномочия, как Orbitz, Kayak и American и United Airlines среди многих других. Он также используется частично для его предстоящего passenger reservation system для Air Canada. Пол Грэм имеет written a little bit о Лиспе в ITA в прошлом.

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

8

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

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

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

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

6

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

25

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

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

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

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

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

5

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

12

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

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

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

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

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

2

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

1

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

2

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

5

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

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

10

Некоторые более поздние из них:

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

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

3

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

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 миллиона обращений.

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

8

плагин система КАНИТЕЛЬ основана на схеме , Я верю. Я не знаю, полностью ли это «реальный мир», но, похоже, это практическое применение Лиспа.

2

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

5

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

5

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

7

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

-1

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

Внутри написано в Коммон Лиспе

1

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

2

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