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


146

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


1
@titaniumdecoy: Щойно відкривши Clojure і не маючи попереднього досвіду в мовах стилю Lisp, я додав тег Clojure для тих, хто шукає дискурсу в Lisp. :)
Ande Turner

1
@titaniumdecoy: Clojure - це особа Lisp, яка працює на JVM і здатна використовувати API, написані на Java
Ande Turner

12
Я б не навчився Ліспа як способу покращення вашої кар’єри, тому що це не стане. Навчіться це, щоб ви зробили кращим загальним програмістом.
skaffman

13
У списку розсилки Clojure ми часто отримуємо історії успіху в галузі від людей, які використовують цю мову.
Рейн

42
@skaffman: але чи не допоможе це покращити вашу кар’єру?
Ерік Форбс

Відповіді:


88

Franz, Inc. надає вичерпний список історій успіху на своєму веб-сайті. Однак:

Не вважайте, що Lisp корисний лише для анімації та графіки, AI, біоінформатики, B2B та електронної комерції, обміну даними, додатків EDA / напівпровідників, експертних систем, фінансів, інтелектуальних агентів, управління знаннями, механічного CAD, моделювання та моделювання, Природна мова, оптимізація, дослідження, аналіз ризиків, планування, телекомунікації та веб-авторинг лише тому, що це єдині речі, які вони траплялися в списку. - Кент Пітман

Тут можна знайти й інші історії успіху:  http://lisp-lang.org/success/

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


41
Це розмиття здається мені дуже порожньою мантрою. Зрозуміло, це може бути в цих районах, але в основному як застарілий код. З мого досвіду з реального життя, Python у поєднанні з розмитим C / C ++ значно сильно замінив Lisp як швидку мову прототипу на вибір для прагматичних хакерів.
Йохан Котлінський

30
@kotlinski, де свідчення? коли ви надмірно узагальнюєте галузь, то ви говорите про середній рівень, а не про найкращі його частини. історії успіху майже кожного разу дотримуються відмінних і не надто середніх технологій / ідей.
Лука Рамішвілі

Детальніше тут: lisp-lang.org/success (прекрасно представлений) та тут: компанії, що використовують загальний LIsp .
Переконати

54

Чи враховується елісп Emacs? Це саме «реальний світ», з яким я знайомий (хоча я не впевнений, що Emacs теж вважається «реальним світом»).


Ні, але vimтак;). На жаль (або, на щастя), ніхто не написав серйозного програмного забезпечення в vimscript.
new123456

43

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

(Відмова: я працюю там.)



25

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

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

у нього близько 4000 користувачів, і він працює на кластері комп'ютерів.

щодо "академічної мови": ми граємо з такими речами, як наполегливе продовження моделювання бізнес-процесів. це якийсь випадковий код lisp з кількома додатковими примітивами, пов'язаними з процесом, та кількома обмеженнями. він може зупинитися у випадкових точках коду і заснути (зайти в базу даних), поки він чекає якоїсь зовнішньої події.

це практичне чи академічне? тобі вирішувати... :)


Оце Так! Я повністю вважав, що все програмне забезпечення, яке використовує уряд, було написане як основне, максимум з огляду на те, скільки з них висмоктують. Це все ще використовується?
RR

5
Звичайно, ні ... нас зняли, як тільки проект був розроблений, виявився життєздатним, і було виділено достатньо грошей / уваги. добре пов'язана більша компанія взяла на себе і написала власну версію в java. Один із цікавих примх - це те, що вони постійно працювали в нашій кодовій базі. Я допоміг їм провести день консультацій ...
Аттіла Лендвай


22

Пол Грехем використовував та писав про ViaWeb, що було написано в LISP

Про це читайте тут - Побиття середнього


4
Це не дуже вдалий приклад, вони вийшли з бізнесу років тому
1800 р. ІНФОРМАЦІЯ

9
До речі, я можу лише додати, що я вважаю, що Павло в цьому не вдається: це не LISP, щоб дати їм перевагу, це було просто розумним та зверненням уваги. Вони могли б досягти успіху з VB, якби це був єдиний підручний інструмент.
Джефф

23
Вони не вийшли з бізнесу, їх викупив Yahoo. Велика різниця, принаймні, для розробників. :-)
Head Geek

18
@ 1800: Він лише "завалився в землю" після того, як Yahoo володів ним і переписав його іншою мовою, тому перестаньте лаяти.
wfarr

6
@ 1800: Забудь про те, що сказав Маттіас, я насправді вважаю його досить смішним. Ваше твердження, що "не було жодних вагомих прикладів використання LISP в реальному світі", прямо випливає, що ви всезнаєте. Браво!
Алі


12

Досить недавній проект з відкритим кодом, який все ще користується послідовною та значною діяльністю в розвитку, - це LilyPond .

Це програма для музичних нотацій, яка приймає текстовий файл, що легко записати, і перетворює його в гарну ноту (pdf-файли). Пропонує всілякі способи поспілкуватися з результатом, якщо ви хочете. Він навіть може створити пристойні файли midi. Я використовую її, коли мені потрібно створити приємну ноту, з якої читатимуть інші музиканти. Я думаю, що це краще, ніж Фінале, і це безкоштовно !

У комерційній категорії також є гравер "Ігор" Ігоря . На жаль, сайт не дозволяє мені розміщувати пряме посилання на сторінку, яка розповідає про Lisp, тому перейдіть до завантажень і подивіться внизу на посилання "Lisp".

Також є Naughty Dog (компанія з комп'ютерних ігор), яка використовує Lisp у своїх іграх. Ця стаття розповідає про це і навіть показує деякий код.

І є багато інших, про яких згадувалося і пов’язано, але це головні, які перегукуються зі мною (будучи композитором / програмістом / геймером / ... типом).


1
Як Schemer, цікаво і надихаюче читати частину посібника LilyPond, яка пояснює, як схема стала частиною LilyPond. Раніше він був повністю в C ++, але вони виявили, що користувач повинен бути більш програмованим, і вони змогли вирішити цю проблему, переписавши частини її в схему і побудувавши інтерпретатор схеми, який надає користувачеві доступ до LilyPond внутрішні.
Ліндсі Купер

10

Якби я зараз запустив свій власний великий проект програмного забезпечення, я б прийняв мовне рішення, виходячи з вищезазначених критеріїв. Звичайно, я люблю Lisp, CLOS - приголомшливий, справжній лексичний скелінг, макроси Lisp - це дуже круто (при використанні за вказівкою), і особисто мені дуже подобається синтаксис Lisp. […] Але це зайняло б багато або вимагало особливих обставин, щоб переконати мене обрати Lisp для великого програмного проекту, якби я відповідав за вибір. - Ден Вайнреб


Правильно - тоді насолоджуйтесь тим, що не можете нікого наймати :)
Джефф

@Jeff: "Але для того, щоб обрати Lisp для великого програмного проекту , потрібно багато , або вимагатимуть особливих обставин ". Це точка проти Ліспа.
jfs

звідки ця цитата? googling за текстовими фрагментами дає лише цей пост

Вам слід натиснути: "повторити пошук із пропущеними результатами". Цитата з: обговорити.fogcreek.com/joelonsoftware/…
Кріс

5
ура. я повинен сказати, ця цитата читається сильніше, ніж вона є насправді, поза контекстом. weinreb зараз працює в ITA та веде блог про Lisp серед іншого; мені цікаво, як і якщо це могло вплинути на його думку.

10

Деякі новітні з них:

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

Тепер отримайте кодування! :)


10

Космічний телескоп Хаббл планується використовувати інструменти планування Lisp. Космічний човник був. Телескоп Вебб буде. Компанія, на яку я пишу Lisp, аналізує мільярди доларів претензій на медичне страхування і зростає на ~ 30% на рік навіть через рецесію. Нас купила величезна компанія, і один з наших програмістів за рік відповідав (фактично покращився) виходу програмного забезпечення (величезної компанії) для аналізу претензій Medicare, починаючи з нуля, сам. Код (величезної компанії), не в Ліспі, зайняв 6 років і кілька програмістів. Проблема в кар’єрному плані полягає в тому, що занадто багато слухають павутинку про "багато дратуючих дурних дужок" тощо. Більшість менеджерів цього не "отримують", а вони мають проект, достатньо відомий мовою, щоб вони могли мікро-керувати. Вони думають "


9

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


Правильно. Він також реалізує ActiveX - він досить потужний, і AtoDesk самі використовують його для написання "внутрішніх" команд. Він інтерпретується в основному ObjectARX - C ++.
CAD блокується


8

Існує безліч компаній, проектів та продуктів, які використовують Lisp у різних ролях - я працював над кількома з них.

Є два релевантні моменти:

  1. ви ніколи не знаєте, що ваш останній елемент побутової електроніки був побудований із програмою Common Lisp або навіть запрограмований у ній, або що якась послуга, яку ви використовуєте, працює на сервері Lisp. Неправильно було б зробити висновок, що Лісп "ніколи не використовується".

  2. … І, як і стільки доменів, ці завдання ніколи не з’являлися на Monster.com. Тільки тому, що ви ніколи не бачили публікацію вакансій, це не означає, що там немає можливостей, необхідних для Lisp чи потрібних інструментів для роботи.


То де ж з’являються ці робочі місця? Я сам намагався розгадати це.
Charlie Flowers

2
З досвіду: списки розсилки, пряма особиста пошта від компаній та рекрутерів, особисті згадки, групи користувачів тощо.
Багатий

1
Дякую. Здається, ви говорите те саме, що я читав в іншому місці ... що світ Лісп - це невелика спільнота, і ви можете скористатися цим, зробивши свій внесок і дізнавшись у цій спільноті, і це, мабуть, найкращий спосіб отримати Лісп робочі місця. Ви згодні?
Charlie Flowers

5
Так. Крім того, це найкращий спосіб отримати роботу, період. Продемонструйте свої навички, знайомтеся з людьми та дайте про себе знати.
Багатий

8

Я вважаю, що плагінова система GIMP заснована на схемі. Я не знаю, чи це повністю "реальний світ", але це, мабуть, практичне застосування Лісп.


6

Знайдіть ACL2 . Це формальний логічний двигун, заснований на ліпі, який використовується для ряду проектів "реального світу", таких як формальні методи забезпечення програмного забезпечення та докази правильності обладнання апаратів з плаваючою комою.


Це дивовижна частина програмного забезпечення.
користувач37248


6

Якщо мої плани виправдуються, ми всі будемо використовувати схему через 5 років! ; стор


Мої плани, мабуть, досить схожі: 1) Скласти бібліотеку кікас на вершині схеми (на півдорозі зараз). 2) Перевірте бібліотеку, записавши в неї круті програми (1 вниз, ще кілька). 3) Бібліотека з відкритим кодом (вже зроблено, але дуже випадково). 4) ... 5) Лисп стає природним інструментом для роботи на роботі.
Алі

3
Я тягну за тебе. Але у вас лише 2 з половиною роки! Сподіваюся, ви на шляху.
Charlie Flowers

10
Привіт. 5 років минуло.
Karol S

1
Пізно краще, ніж ніколи!
Loïc Faure-Lacroix

1
@ LoïcFaure-Lacroix Все ще намагаюся! : D
леппі

6

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

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


6

Лісп використовується в алгоритмічній музичній композиції в реальному світі з бібліотекою Common Music . Примітки Ріка Таубе з Metalevel - це чудовий вступний текст до теми, який містить купу прикладів у Lisp для складання. Дивіться тут каталог прикладів та копію тексту тут .


5

Ну, навряд чи це мейнстрім, але я використовую Lisp для більшої частини свого дослідницького коду, наскільки це керовано. Це, безумовно, найкраща мова, яку я знайшов для збалансованості динамічності та виразності, в той же час створюючи пристойні показники чисельності тощо.



5

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




3

На початку 80-х Лісп намагався стрибнути на світло. Перш ніж були ПК, були комерційно виготовлені "машини машини Lisp", які надзвичайно схожі на сучасні робочі станції, але які були "аж донизу". Устаткування Lisp врешті-решт втратило Intel (як і все інше). Програмне забезпечення Lisp врешті-решт програло C / C ++. Існує безліч теорій, чому це все так. http://www.andromeda.com/people/ddyer/lisp/


2

Мова програмування схеми використовується як сценарій мови програмою FLUENT Flow Modeling Software (обчислювальна динаміка рідини, CFD).



2

Я бачу, що мало хто вже згадував про це, але Lisp широко використовується в розробці користувальницького Autocad. Autocad включає вбудований інтерпретатор Lisp. Це один з найпростіших способів розширення продукту і забезпечує можливість швидкого підвищення продуктивності.

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

Autocad пропонує ряд інших способів налаштувати свої продукти; ObjectARX (C ++), VB, C # тощо. Інтерфейс lisp на сьогоднішній день найпростіший для вивчення та впровадження. І більшість інших середовищ розробників використовує Lisp певним чином.

Інтерпретатор lisp був доступний в дуже ранній версії Autocad і отримав назву Змінні та вирази. Він був досить обмеженим, але набув такого успіху у користувачів, що додаткові функції були швидко додані. Пізніше з'явився повноцінний візуальний IDE (я думаю, у версії 2000 року).

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

Гаразд, достатньо набрати текст, він знову працює для мене, пишучи більше пісні для мого поточного проекту :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.