Я экспериментировал с Lisp (на самом деле Scheme) и нашел, что это очень красивый язык, который мне интересен, чтобы узнать больше. Тем не менее, похоже, что Lisp никогда не используется в серьезных проектах, и я не видел, чтобы он был указан как желаемый навык при любой публикации вакансий. Мне интересно услышать от любого, кто использовал Lisp или видел его в «реальном мире», или кто знает, считается ли он чисто академическим языком.Lisp in the real world
ответ
Franz, Inc. предоставляет неисчерпывающий list of success stories на своем веб-сайте. Однако:
Пожалуйста, не думайте, Лисп только полезно для анимации и графики, AI, биоинформатики, B2B и электронной коммерции, Data Mining, EDA/полупроводниковых приложений, Expert Systems, Финансы, Интеллектуальные агенты, знание управления, Mechanical CAD, Моделирование и моделирование, Natural Language, Оптимизация, исследование, анализ рисков, планирование, связь и Web Authoring только потому, что это единственные вещи они случились в список. - Kent Pitman
Если бы я начал свой собственный крупный проект программного обеспечения, я бы принял решение на основе языка, основанное на вышеуказанных критериях. Конечно, я люблю Lisp, CLOS - это потрясающие, реальные лексические скалы, макросы Lisp - это круто (при использовании по назначению), и лично мне очень нравится синтаксис Lisp. [...] Но потребовалось бы много или потребовать особых обстоятельств, чтобы убедить меня выбрать Lisp для крупного программного проекта, если бы я отвечал за выбор. - Dan Weinreb
Право - тогда наслаждайтесь тем, что не можете нанять кого-нибудь :) – Jeff 2008-10-05 23:20:39
@Jeff: «Но это будет * взять много * или * потребовать особых обстоятельств *, чтобы убедить меня выбрать Lisp для крупного программного проекта». Это точка против Лиспа. – jfs 2008-10-05 23:48:17
где цитата? googling текстовыми фрагментами дает только этот пост – 2008-10-06 01:05:50
Пол Грэм использовал и писал о Viaweb, который был написан в LISP
Читайте об этом here - Beating the Average
Thats not действительно хороший пример, они вышли из бизнеса много лет назад – 2008-10-05 23:13:37
BTW, могу ли я добавить, что я думаю, что Пол бредовый в этом: он не был LISP, который дал им преимущество, это было просто умнее и обращать внимание , Они могли бы добиться успеха с помощью VB, если бы это был единственный инструмент. – Jeff 2008-10-05 23:14:05
Посмотрите ACL2. Это основанный на Lisp механизм логической логики, который использовался для ряда проектов «реального мира», таких как формальные методы в области безопасности программного обеспечения и доказательства правильности для аппаратных средств с плавающей точкой.
Это замечательный язык, но он искалечен, потому что (на мой взгляд, как владелец программного обеспечения и программист) очень мало коммерческих пакетов Lisp, а немногие, которые там требуют, требуют платы за запуск (потому что Lisp-пакет может использоваться конечными пользователями для написания программ Lisp).
Я использую Steel Bank Common Lisp для прототипа кода под Windows и Linux, и мне это нравится, но я бы никогда не подумал о доставке продукта, написанного с ним. Нет простого способа настроить доступ к программам с одним щелчком мыши, чтобы конечный пользователь никогда не столкнулся с приглашением Lisp. Невозможно отправить скомпилированный продукт, чтобы пользователь не мог его разобрать, внести некоторые изменения, чтобы удалить свое имя и продать его как свое. Я видел упоминание систем Lisp, что оба они могут быть выполнены, но они коммерческие, где вам приходится платить за время исполнения каждого конечного пользователя вашей программы, что смешно.
Lisp может прийти в свой собственный день (и я горячо надеюсь, что это так), но он не является жизнеспособным для большинства коммерческих программ. Единственное исключение - это то, где он всегда будет работать в системах, на которые у вас есть полный контроль, например на веб-сервере (и я слышал только о том, что пару компаний используют его даже для этого).
Учитывается ли эмаль Emacs? Это самый «реальный мир», которым я знаком (хотя я не уверен, что Emacs также считается «реальным миром»).
далеко не исчерпан список в http://www.franz.com/success/all_customer_apps.lhtml
Я считаю, Autocad имеет расширения, которые используют Lisp для расширения продукта. См. AutoLISP.
Reddit был записан в Lisp, а затем был перезаписан на Python. Есть хороший анализ переключателя, и что это означает для Lisp на Finding Lisp.
Программное обеспечение ITA использует достаточное количество CL.
ITA Software использует Common Lisp для своих QPX low-fare search engine каких сайтов полномочия, как Orbitz, Kayak и American и United Airlines среди многих других. Он также используется частично для его предстоящего passenger reservation system для Air Canada. Пол Грэм имеет written a little bit о Лиспе в ITA в прошлом.
(Отказ от ответственности: я там работаю.)
Есть много компаний, проектов и продуктов, которые используют Lisp в различных ролях - я сделал работу для некоторых из них.
Есть две важные моменты:
вы никогда не знаете, что ваша последняя часть бытовой электроники был построен, или даже запрограммированы, Common Lisp, или что некоторые услуги вы используете питание от Лисп-сервер. Было бы неправильно сделать вывод, что Lisp «никогда не используется».
... и, как и многие домены, эти задания никогда не появлялись на Monster.com. Просто потому, что вы никогда не видели, чтобы объявление о вакансиях для него не означало, что там нет возможностей Lisp-required или right-tool-for-the-job.
Если мои планы составлены, мы все будем использовать Схему через 5 лет! ; p
В качестве небольшого запуска мы создали что-то, что люди называют «сервером приложений». но на самом деле это всего лишь куча интегрированных общих библиотек lisp для подключения и веб-приложений. некоторые деталей доступны на cl-dwim project page
, используя которую мы разработали и работать веб-приложение для венгерского правительства, которые собирают данные от местных органов власти в и вычисляют соответствующую часть бюджета страны. это второй бюджет, который мы планируем сейчас.
У него около 4000 пользователей, и он работает на кластере компьютеров.
как «академический язык»: мы играем с такими вещами, как постоянные продолжения моделирования бизнес-процессов. это некоторый случайный код lisp с несколькими дополнительными примитивами, связанными с процессом, и несколькими ограничениями.он может остановиться в случайных точках кода и засыпать (попасть в базу данных), пока он ждет какого-либо внешнего события.
Это практический или академический? вы решаете ... :)
Ну, это вряд ли мейнстрим, но я использую lisp для большей части моего исследовательского кода, который можно управлять. Это, безусловно, лучший язык, который я нашел для баланса динамизма. & выразительность в то же время приносит приличную производительность для численных и т. Д.
Peter Christensen составил отличный список (финансово) успешных компаний.
Сравнительно недавний проект с открытым исходным кодом, который до сих пор пользуется последовательной и значительной активностью развития является LilyPond.
Это программа для нотной записи, которая позволяет легко записывать текстовый файл в качестве входных данных и преобразовывать его в красивую нотную музыку (pdf-файлы). Предлагает всевозможные способы возиться с выходом, если хотите. Он может даже создавать достойные звучащие MIDI-файлы. Я использую его всякий раз, когда мне нужно создавать хорошие ноты, которые будут читать другие музыканты. Я думаю, что это лучше, чем Finale, и это бесплатно!
В коммерческой категории также есть Notehead's Igor Engraver. К сожалению, сайт не позволяет мне публиковать прямую ссылку на страницу, в которой рассказывается о Lisp, поэтому перейдите к загрузке и посмотрите внизу на ссылку «Lisp».
Существует также Naughty Dog (компьютерная игровая компания), которые используют Lisp в своих играх. This article говорит об этом и даже показывает некоторый код.
И есть много других, о которых упоминалось и связано, но это основные, которые резонируют со мной (будучи композитором/программистом/игроком/...).
Язык программирования схем используется в качестве языка сценариев с помощью программного обеспечения FLUENT Flow Modeling (вычислительная гидродинамика, CFD).
Просто добавив ко всем очень мудрым комментариям выше: посмотрите на инструмент Corman Lisp и узнайте, как встроить ОЧЕНЬ ИНТЕЛЛЕКТУАЛЬНЫЕ ФУНКЦИИ во встроенную систему!
Для приложения AutoCAD AutoLISP/Visual LISP используются для реальных проектов, и существует большое сообщество пользователей.
Я был очень впечатлен, когда узнал, что PRISM («Проект Prism - это долгосрочный проект по созданию программных инструментов для планирования лучевой терапии, включая инструменты искусственного интеллекта, а также системы ручного моделирования») написано на Общий Лисп.
На моей работе я пишу программное обеспечение, которое использует DICOM, и я должен сказать, что писать хорошую реализацию DICOM - трудная задача. В своем report они описывают, как Common Lisp позволяет им создавать хорошую реализацию DICOM, которая лучше (по крайней мере, в некотором роде), чем другая реализация с меньшими усилиями.
Некоторые более поздние из них:
- Thanandar, игра Немецкий браузер: http://www.thanandar.de/
- Аула Polska, польский предприниматель сообщество: http://www.aulapolska.pl/
- LAMsight, медицинское обследование применения: https://www.lamsight.org/
- Wigflip , игровая площадка глупых gfx: http://wigflip.com/ :)
- Clutu, многопользовательский AJAX кроссворд Пазлы: http://www.clutu.com/
Первые три из них были написаны с использованием Weblocks, веб-структуры CL. Wigflip и Clutu используют чистый Hunchentoot.
Теперь получите кодировку! :)
Lisp предпринял попытку прыжка на световой поток в начале 80-х годов. До того, как появились компьютеры, были коммерчески произведенные «Lisp Machines», которые выглядели очень много, , как современные рабочие станции, но которые были «вспять вниз». Оборудование Lisp в конечном итоге проиграло Intel (как и все остальное). Программное обеспечение Lisp в конечном итоге проиграло C/C++. Существует множество теорий, почему все это так. http://www.andromeda.com/people/ddyer/lisp/
Я вижу, что некоторые люди уже упомянули об этом, но 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 миллиона обращений.
Хорошо, достаточно типирование, он вернулся на работу для меня, писать больше шепелявость для моего текущего проекта :)
Google App Inventor написано на схеме
плагин система КАНИТЕЛЬ основана на схеме , Я верю. Я не знаю, полностью ли это «реальный мир», но, похоже, это практическое применение Лиспа.
алгоритмической Состав Toolbox от Paul Berg: http://www.koncon.nl/downloads/ACToolbox/
GNU Make является расширяемым со схемой. Случай для реального мира программирования :)
https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html
Моя компания имеет программное обеспечение прописан в схеме (PLT). Программное обеспечение используется для работы в качестве брандмауэра электронной почты для крупных компаний.
Я только что понял, что Maxima, программа для символической алгебры, написана в Common Lisp. Я использую это довольно долгое время, и я думаю, что это тоже очень хороший пример в реальной жизни.
Lisp используется в реальной алгоритмической композиции музыки с библиотекой Common Music. Рик Таубе Примечания от Metalevel - отличный вводный текст для темы, которая содержит кучу примеров в Lisp для сочинения. См. Каталог примеров here и копию текста here.
Космический телескоп Хаббла запланирован с использованием инструментов планирования Лиспа. «Шаттл» был. Телескоп Webb будет. Компания, которую я пишу Lisp, анализирует миллиарды долларов страховых полисов и растет на ~ 30% в год даже через рецессию. Мы были приобретены огромной компанией, и один из наших программистов сравнил (фактически улучшил) выпуск программного обеспечения (огромной компании) для анализа заявок Medicare, начиная с нуля, сам по себе, через год. (огромная компания), а не в Lisp, заняло 6 лет и несколько программистов. Беда, карьера-мудрый, заключается в том, что слишком много слушают болтовню о «множестве раздражающих глупых круглых скобок» и т. Д. Большинство менеджеров не «получают» и предпочли бы иметь проект на достаточно знакомом языке, что они могут управлять микроуправлением. Они думают «Lisp = AI» и даже не хотят развлекать возможность того, что это хороший язык общего назначения. Они просто затыкают уши. Есть не отшлифованные инструменты для создания сайтов с поддержкой M $, а также для кластеризации или конвейерной обработки существующих приложений Java, и это 90% того, что IT заботится в эти дни роста путем приобретения. Я мог бы продолжать, но это только меня огорчило. :)
Мэтью Эрик Бассет на использовании ракетки в киноиндустрии: http://www.youtube.com/watch?v=37owCjWnkK0
Daniel Liebgold на рэкет и PS3: http://www.youtube.com/watch?v=oSmqbnhHp1c
http://www.gensym.com/ - в режиме реального времени бизнес-правил двигателя есть много промышленных клиентов.
Внутри написано в Коммон Лиспе
http://echowaves.com построен в Clojure с compojure. Сайт был создан как учебное упражнение, чтобы понять, насколько практично использовать clojure для создания веб-приложений. Ответ - да! Большие пальцы вверх для clojure в Интернете. Изучите clojure во что бы то ни стало - это улучшит вашу карьеру. Код с открытым исходным кодом, если кто-то хочет, чтобы увидеть пример того, что типичные движущиеся части для типичного compojure приложения https://github.com/echowaves/echowaves
Как ранее говорилось, система компьютерной алгебры «Maxima» написано в Лиспе, но и другие CAS также написаны в Lisp, например Axiom и его вилки (OpenAxiom и Fricas).
- 1. Glassfish in real world
- 2. Real World C++ библиотека
- 3. Real-World QVT
- 4. Simple ImageMagick real world usable
- 5. NPOI Real World Pivot Пример
- 6. Mininet Real World Сетевые топологии
- 7. Функция «ручки» и Real World Haskell
- 8. Real World MVC - Работа с формами
- 9. Real World Application of XPath & XSLT
- 10. Проект apk crashing on real world device
- 11. Ошибка компиляции на примере Real World Haskell
- 12. Real World Object Oriented PHP Application
- 13. Использование ML в приложениях «Real-World»
- 14. SOA Architecture Real-World Samples с .NET
- 15. Ruby Array # transpose real world example
- 16. Real World Use case of RxJava Subject
- 17. JAVA real-time consol-control the threads
- 18. Java Threads in Real
- 19. Real Security in Python
- 20. ZODB In Real Life
- 21. Использование ggmap map of the world
- 22. MonadState экземпляр от Real World Haskell не компилирует
- 23. Hello World in Apache
- 24. npm install is building the world
- 25. Boost logging in real time
- 26. Hello World in Webratio
- 27. ORM in the realworld
- 28. Misbehave in the nhibernate
- 29. quickbooks in the cloud
- 30. Looping in the GUI
@titaniumdecoy: После простого открытия Clojure и отсутствия предыдущих впечатлений в языках стиля Lisp я добавил тег Clojure для тех, кто ищет дискурс в Lisp.:) – 2008-10-06 09:35:39
@titaniumdecoy: Clojure - это decendant of Lisp, который работает на JVM и способен использовать API, написанные на Java – 2008-10-06 09:37:48
Я бы не изучил Lisp как способ улучшить вашу карьеру, потому что это не так. Изучите его, чтобы сделать вас лучшим программистом, во что бы то ни стало. – skaffman 2009-07-10 09:01:16