Lisp在现实世界中

我已经尝试了Lisp(实际上是Scheme),并发现它是一个非常漂亮的语言,我有兴趣了解更多。 然而,似乎Lisp从来没有用在严肃的项目中,而且我没有看到它在任何工作岗位上被列为期望的技能。 我有兴趣听到任何使用过Lisp的人,或者在“现实世界”中看到过它,或者知道它是否被认为是纯粹的学术语言。

Franz,Inc.在他们的网站上提供了无数的成功案例 。 然而:

AI,生物信息学,B2B和电子商务,数据挖掘,EDA /半导体应用,专家系统,金融,智能代理,知识pipe理,机械CAD,build模和仿真,自然语言,优化,研究,风险分析,调度,电信和networking创作,因为这些是他们碰巧列出的唯一事情。 – 肯特·皮特曼

Emacs的elisp数量是多less? 这是我熟悉的最“现实世界”的使用(虽然我不确定Emacs也算“现实世界”)。

ITA Software使用Common Lisp作为其QPX低票价search引擎 ,为Orbitz , Kayak , 美国和联合航空等许多网站提供动力 。 加拿大航空公司即将推出的乘客预订系统也被部分使用。 保罗·格雷厄姆过去在ITA 写了一些有关Lisp的文章。

(免责声明:我在那里工作)

作为一个小型创业公司,我们已经build立了一些人称之为“应用服务器”的东西。 但事实上,它只是一堆用于SQL连接和Web应用程序的集成通用lisp库。 一些细节可以在cl-dwim项目页面上find

利用我们为匈牙利政府开发和运营一个networking应用程序,从当地政府收集数据并计算国家预算的相关部分。 这是我们现在计划的第二个预算。

它有大约4000个用户,并且运行在一组计算机上。

作为“学术语言”:我们正在玩的东西,如业务stream程build模的持续延续。 它是一些随机的lisp代码,有一些额外的过程相关的原语和一些约束。 它可以在代码中随机停止,并在等待某个外部事件时入睡(进入数据库)。

是实用还是学术? 你决定… :)

在喷气推进实验室的Lisp的兴衰的故事

Reddit最初是用Lisp编写的,后来用Python重写。 有一个很好的交换机的分析,以及在查找Lisp的Lisp意味着什么。

保罗·格雷厄姆(Paul Graham)使用和写了关于在LISP中编写的ViaWeb

在这里阅读- 击败平均水平

LilyPond是一个相当近期的开源项目,它仍然享有一致的和可观的开发活动。

这是一个音乐符号程序,采取易于编写的文本文件作为input,并将其转换成美丽的乐谱(pdf文件)。 提供各种方法来摆弄输出,如果你想。 它甚至可以产生体面的冠冕堂皇的MIDI文件。 每当我需要制作其他音乐家可以读取的乐谱时,我都会使用它。 我觉得这比Finale好,而且是免费的

在商业类别中,还有Notehead的Igor Engraver 。 不幸的是,该网站不允许我直接链接到谈论Lisp的页面,所以请下载并查看“Lisp”链接的底部。

还有一个在游戏中使用Lisp的Naughty Dog(电脑游戏公司)。 这篇文章谈到,甚至显示了一些代码。

还有许多其他的被提及和链接,但这些是与我共鸣(作为一个composer php/程序员/玩家/ …types)的主要。

一些更近的​​:

  • Thanandar,德国的浏览器游戏: http : //www.thanandar.de/
  • 波兰企业家社区Aula Polska: http : //www.aulapolska.pl/
  • LAMsight,医学调查应用程序: https ://www.lamsight.org/
  • Wigflip,愚蠢的gfx游乐场: http ://wigflip.com/ 🙂
  • Clutu,多人AJAX填字游戏: http ://www.clutu.com/

其中前三个是使用Web框架(一个CL框架)编写的。 Wigflip和Clutu使用纯粹的Hunchentoot。

现在得到编码! 🙂

如果我现在开始我自己的主要软件项目,我会根据上面的标准来决定我的语言。 当然,我喜欢Lisp,CLOS是真棒,真正的词汇范围岩石,Lispmacros是很酷的(当按照指示使用),并且我个人非常喜欢Lisp语法。 […]但是,如果我负责select,那么需要很多,或者需要特殊的情况来说服我selectLisp来做一个重要的软件项目。 – Dan Weinreb

我相信Autocad有使用Lisp扩展产品的扩展。 请参阅AutoLISP 。

彼得·克里斯滕森(Peter Christensen)汇集了一系列(经济上)成功的lisp公司。

http://www.pchristensen.com/blog/lisp-companies/

有许多公司,项目和产品使用Lisp担任各种angular色 – 我已经为其中的几个人工作。

有两个相关点:

  1. 你可能永远不会知道你的最新消费电子产品是用Common Lisp构build的,甚至是编程的,或者你使用的某些服务是由Lisp服务器驱动的。 这是不正确的结论,Lisp是“从来没有使用”。

  2. …和许多领域一样,这些工作从来没有出现在Monster.com上。 仅仅因为你从来没有见过一份工作发布,并不意味着没有Lisp需求或者正确的工具就业机会。

我相信GIMP的插件系统是基于Scheme的。 我不知道这是否完全是“现实世界”,但至lessLisp似乎是一个实际应用。

哈勃太空望远镜计划使用Lisp计划工具。 航天飞机是。 韦伯望远镜将是。 我写Lisp的公司分析了数十亿美元的健康保险索赔,即使经历了经济衰退,也以每年30%的速度增长。 我们已经被一家大公司收购了,我们的程序员之一匹配(实际上已经改进了)(大公司)用于分析医疗保险索赔的软件的输出,一年之内从头开始。 (大公司)的代码,而不是Lisp,花了6年时间和几个程序员。 事业上的麻烦在于,太多的人听着“多刺激的傻括号”等等。 大多数pipe理者不会“得到它”,而是希望用一种熟悉的语言进行项目pipe理,以便能够进行微观pipe理。 他们认为“Lisp = AI”,甚至不想考虑这是一种很好的通用语言的可能性。 他们只是插上耳朵。 没有用于开发M $友好型网站,集群或stream水线化现有Java应用程序的优化工具,这是IT在现在收购增长的90%。 我可以继续下去,但这会让我感到痛苦。 🙂

查看ACL2 。 这是一个基于lisp的forms逻辑引擎,已被用于许多“现实世界”项目,如软件安全中的forms化方法以及浮点硬件正确性的certificate。

如果我的计划能够实现,我们将在5年后全部使用计划! ,p

那么,它不是主stream,但我使用lisp尽可能多的我的研究代码是可pipe理的。 这是迄今为止,我发现的最好的语言,为dynamic和performance力的平衡,同时仍然生成数字等体面的performance。

当我发现PRISM («Prism项目是一个长期的项目,用于构build放射治疗计划的软件工具,包括人工智能工具和手动模拟系统»)时,我印象非常深刻。

在我的工作中,我正在编写使用DICOM的软件,我必须说,编写好的DICOM实现是一项艰巨的任务。 在他们的报告中,他们描述了Common Lisp如何让他们构build一个更好(至less在某些方面)比其他实现更好的DICOM实现。

Google App Inventor是用Scheme编写的

我现在才意识到Maxima是一个符号代数程序,是用Common Lisp编写的。 我已经使用了相当长的一段时间,我认为这也是一个非常好的现实生活中的例子。

Lisp用于具有Common Music库的真实algorithm音乐作品。 Rick Taube的MetalevelNotes是这个主题的一个很好的介绍性文本,在Lisp中有很多例子用于组合。 看到这里的示例目录和这里的文本的副本。

马修埃里克巴塞特在电影业中使用球拍: http : //www.youtube.com/watch?v = 37owCjWnkK0

球拍和PS3的Daniel Liebgold: http : //www.youtube.com/watch?v= oSmqbnhHp1c

GNU Make是可扩展的scheme。 真实世界编程的案例:)

https://www.gnu.org/software/make/manual/html_node/Guile-Integration.html

Lisp试图在80年代初跳上光速。 在PC之前,有商业化生产的“Lisp Machines”,这些“Lisp Machines”与现代工作站非常相似,但却一直在“一路下来”。 Lisp硬件最终输给了英特尔(和其他所有产品一样)。 Lisp软件最终输给了C / C ++。 有各种各样的理论,为什么这是这样的。 http://www.andromeda.com/people/ddyer/lisp/

Scheme编程语言被FLUENT Flow Modeling Software(计算stream体动力学,CFD)用作脚本语言。

对于AutoCAD应用程序,AutoLISP / Visual LISP在实际项目中使用很多,并且有大量的用户群体。

我看到有几个人已经提到它,但lisp被广泛用于Autocad的自定义开发。 Autocad包含一个内置的lisp解释器。 这是扩展产品最简单的方法之一,并提供快速提高生产力的能力。

不需要编译,在用户端,可以在命令行上input1个或更多行lispexpression式,并立即在绘图上执行。 对于愿意花一小步来学习Lisp基础知识的devise师和制图员来说,它可以提供巨大的生产力优势。

Autocad提供了许多其他方式来定制他们的产品; ObjectARX(C ++),VB,C#等。lisp接口是迄今为止最容易学习和实现的接口。 而其他大多数的开发环境都以某种方式使用lisp。

lisp解释器在Autocad的早期版本中可用,被称为variables和expression式。 这是相当有限的,但用户如此成功,以增加额外的function。 一个完整的视觉IDE后来(在我认为是在2000版本)。

我不想猜测有多less百万(几十亿?)的Lisp代码行可用于Autocad。 谷歌search“autocad .lsp”返回230万点击。

好的,足够的打字,它回来为我工作,为我目前的项目写更多的lisp