我曾经用 Lisp (实际上是 Scheme)做过实验,发现它是一种非常漂亮的语言,我有兴趣学习更多关于它的知识。然而,Lisp 似乎从来没有在严肃的项目中使用过,我也没有在任何招聘信息中看到它被列为一项理想的技能。我很想听听那些曾经使用过 Lisp,或者曾经在“现实世界”中见过 Lisp 的人,或者那些知道 Lisp 是否被认为是纯粹的学术语言的人的意见。
如果我现在开始我自己的主要软件项目,我会根据上面的标准做出我的语言决定。当然,我喜欢 Lisp,CLOS 非常棒,真正的词法范围岩石,Lisp 宏非常酷(当作为指令使用时) ,而且我个人非常喜欢 Lisp 语法。但是如果我负责做出选择的话,说服我选择 Lisp 作为一个主要的软件项目需要很多,或者需要特殊的情况。Dan Weinreb
Paul Graham 使用并撰写了用 LISP 编写的 ViaWeb
阅读有关它 在这里-击败平均水平
查一下 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中远远没有用尽列表
喷气推进实验室 Lisp 的兴衰故事
我相信 Autocad 有使用 Lisp 来扩展产品的扩展。
Reddit 最初是用 Lisp 编写的,后来又用 Python 重写。我们对这个开关进行了很好的分析,并在 找到 Lisp中说明了它对 Lisp 的意义。
ITA 软件使用了相当数量的 CL。
Http://www.itasoftware.com/careers/l_e_t_lisp.html?catid=8
ITA Software 使用 Common Lisp作为其 QPX 低价搜索引擎,这为诸如 Orbitz、 皮划艇、 美国人和 团结 Airlines 等网站提供了动力。它也部分用于即将到来的 旅客预订系统旅客预订系统加拿大航空公司。Paul Graham 过去在 ITA 有关于 Lisp 的 写了一点。
(免责声明: 我在那里工作。)
有很多公司、项目和产品在不同的角色中使用 Lisp ーー我曾为其中几个公司、项目和产品做过工作。
有两点是相关的:
您可能永远不会知道您最新的消费电子产品是用 Common Lisp 构建的,甚至是用 Common Lisp 编写的,或者您使用的某些服务是由 Lisp 服务器提供的。得出 Lisp“从未使用过”的结论是不正确的。
和很多域名一样,这些工作从未在 Monster.com 上出现过。只是因为你从来没有看到一个招聘广告,并不意味着没有 Lisp 要求或正确的工具,为工作的机会。
Franz,Inc. 在他们的网站上提供了详尽的 成功故事清单。然而:
请不要认为 Lisp 只是 有用的动画和图形,人工智能, 生物信息学,B2B 和电子商务, 数据挖掘,EDA/半导体 应用、专家系统、金融、, 智能代理,知识 管理,机械 CAD,建模 模拟,自然语言, 优化,研究,风险分析, 调度、电信和 Web 创作 只是因为这些是唯一的东西 他们碰巧列了清单。ー肯特 · 皮特曼
我们可以在这里找到其他的成功故事: http://lisp-lang.org/success/
以及使用 Common Lisp: https://github.com/azzamsa/awesome-lisp-companies的当前公司列表
如果我的计划成功了,我们都将在5年后使用 Scheme
作为一个小型创业公司,我们已经建立了一些人称之为“应用服务器”的东西。但实际上它只是一组用于 sql 连接和 Web 应用程序的集成的公共 lisp 库。有关 一些的详细资料,请浏览 Cl-dwim 项目页
利用这一点,我们开发并运行了一个 匈牙利政府的网络应用程序,它从地方政府收集数据并计算国家预算的相关部分。这是我们正在计划的第二个预算。
它有大约4000个用户,并且运行在一组计算机上。
作为“学术语言”: 我们正在处理诸如业务流程建模的持续延续之类的事情。它是一些随机的 lisp 代码,带有一些额外的进程相关原语和一些约束。它可以在代码中的随机点停止,并在等待某些外部事件时进入睡眠状态(被提交到数据库中)。
它是实用的还是学术的? 你决定... :)
虽然它不是主流,但是我在尽可能多的研究代码中使用 lisp。到目前为止,它是我找到的最好的语言,既能平衡动态性和表达性,又能为数字等产生不错的性能。.
彼得•克里斯滕森(Peter Christensen)编制了一份很棒的(财务上)成功的口齿不清公司名单。
Http://www.pchristensen.com/blog/lisp-companies/
莉莉池塘是一个相当近期的开放源码项目,它仍然在持续地进行大量的开发活动。
这是一个音乐符号程序,采取一个易于编写的文本文件作为输入,并转换成美丽的乐谱(pdf 文件)。提供了各种方法来修改输出(如果您愿意)。它甚至可以产生听起来不错的 midi 文件。每当我需要制作精美的乐谱时,我就会使用它,让其他音乐家可以阅读。我认为它比终曲更好,它的 自由!
在商业类别中,还有 Notehead 的 Igor 雕刻者。不幸的是,这个网站不允许我发布一个直接链接到谈论 Lisp 的页面,所以去下载,看看底部的“ Lisp”链接。译注:
还有淘气狗(一家电脑游戏公司)在他们的游戏中使用 Lisp。这篇文章谈到了这一点,甚至还展示了一些代码。
还有许多其他的被提及和链接到,但是这些是与我产生共鸣的主要类型(作为一个作曲家/程序员/游戏玩家/... 类型)。
Scheme 编程语言被 FLUENT 流程建模软件(脚本语言,CFD)用作计算流体力学。
只是添加到所有非常明智的意见以上: 看看科尔曼 Lisp 工具,并发现如何嵌入非常智能函数到嵌入式系统!
对于 AutoCAD 应用程序,AutoLISP/Visual LISP 在实际项目中得到了广泛的应用,并且有着广泛的用户群体。
当我发现 棱镜(“棱镜项目是一个长期项目,旨在建立放射治疗计划的软件工具,包括人工智能工具以及手动模拟系统。”)是用 Common Lisp 编写的。
我的工作是编写使用 DICOM的软件,我必须说编写好的 DICOM 实现是一项艰巨的任务。在他们的 报告中,他们描述了 Common Lisp 如何让他们构建了一个好的 DICOM 实现,这个实现比其他实现(至少在某些方面)更好,而且工作量更小。
最近的一些:
其中前三个是使用 Weblock (一种 CL Web 框架)编写的。 Wigflup 和 Clutu 使用纯粹的 Hunchentoot。
现在开始编程! :)
Lisp 在80年代早期尝试跳到光速, 有商业生产的“ Lisp 机器”,表面上看起来很多 就像现代的工作站一样,但是它们都是 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 的早期版本中提供的,称为 Variables 和 expression。它相当有限,但是在用户中非常成功,以至于很快就添加了额外的功能。后来出现了一个完整的可视化 IDE (我想是在2000版本中)。
我讨厌猜测有多少百万(十亿?)可用于 Autocad 的 lisp 代码行。在谷歌上搜索“ autocad”。“ lsp”返回230万次点击。
好了,打字够了,我要回去工作了,为我当前的项目写更多的 lisp:)
GoogleAppInventor 是用 Scheme 编写的
我相信,GIMP 的插件系统是基于 Scheme 的。我不知道这是不是完全“现实世界”,但至少看起来是 Lisp 的一个实际应用。
返回文章页面算法音乐工具箱译者: Http://www.koncon.nl/downloads/actoolbox/
GNUMake 具有方案可扩展性
Https://www.gnu.org/software/make/manual/html_node/guile-integration.html
我公司有方案编写的软件(PLT)。该软件被用来充当大公司的电子邮件防火墙。
我刚刚意识到 马克西玛,一个用于符号代数的程序,是用 Common Lisp 编写的。我已经用了很长一段时间,我认为这也是一个非常好的现实生活的例子。
Lisp 在现实世界的算法音乐创作中使用 普通音乐库。RickTaube 的 金属层的笔记是这个主题的一个很好的入门文本,里面有很多用 Lisp 编写的例子。参见示例目录 给你和文本 给你的副本。
该哈勃空间望远镜使用 Lisp 规划工具进行调度。航天飞机是。韦伯望远镜。我为 Lisp 撰写文章的公司分析了数十亿美元的医疗保险索赔,即使在经济衰退期间,该公司的年增长率也在30% 左右。我们已经被一家大公司收购了,我们的一个程序员在一年内完成了(实际上是改进了)(大公司)用于分析医疗保险索赔的软件的输出,从零开始,由他自己完成。(大公司)的代码,而不是 Lisp,花了6年时间和几个程序员。就职业生涯而言,问题在于,太多人听信那些“很多恼人的愚蠢括号”之类的废话。大多数管理者并不“明白”,他们更愿意拥有一个熟悉到可以进行微观管理的语言的项目。他们认为“ Lisp = AI”,甚至不想考虑它是一种好的通用语言的可能性。他们只是塞住耳朵。目前还没有完善的工具可以用来建立对 M $用户友好的网站,或者集群化或者流水线化现有的 Java 应用程序,而这正是 IT 在这些日子里通过收购增长所关心的90% 的问题。我可以继续,但这只会让我痛苦。:)
马修•埃里克•巴塞特(Matthew Eric Bassett)谈电影业使用 Racket: Http://www.youtube.com/watch?v=37owcjwnkk0
丹尼尔 · 利布戈德(Daniel Liebgold)在《球拍》和《 PS3: Http://www.youtube.com/watch?v=osmqbnhhp1c
Http://www.gensym.com/ -实时业务规则引擎拥有许多工业客户。
在内部,它是用 Common Lisp 编写的
Http://echowaves.com 是在 cljure 中与 compojure 一起构建的。这个网站是作为一个学习练习而建立的,目的是看看用 clojure 来构建网络应用是否可行。答案是,是的!在网上为 Clojure 点赞。无论如何都要学法术——这会提高你的职业生涯。 该代码是开源的,如果有人想看一个典型的合成应用程序的典型移动部件的例子,那么这个代码是开源的。 rel = “ nofollow”> https://github.com/echowaves/echowaves
如前所述,计算机代数系统“ Maxima”是用 Lisp 编写的,但其他 CAS 也是用 Lisp 编写的,例如 Axiom 及其 fork (OpenAxiom 和 Fricas)。
沃尔玛使用 clojure 实时处理采购