有没有人使用Scheme编程语言为生?
我开始学习计划的乐趣,并想知道是否有人用它作为主要编程语言的生活…甚至作为编程兵工具的额外工具? 如果是这样,你用它做什么? 你通常用它来解决什么样的问题?
有很多人写计划为生。 他们都是大学教授,但大部分都是编程语言领域 – 印第安那大学有好几位,像Kent Dybvig和Dan Friedman 。 他们在编程语言语义学中创造了新的想法(Dybvig也销售Scheme编译器)。
这不是一个有很多付费客户的领域,所以从技术上来讲,教授们因为在大学任职而获得报酬。 但他们通过发布编程语言的新思想来获得终身职位。
也有一些教授主张使用Scheme作为教学语言,如Matthias Felleisen和PLT计划背后的其他教授。 他们也写计划为生。
Scheme对于尝试新的语言语义非常有用,因为它具有非常简单,强大的基元,而且统一的语法让你只专注于语义。 如果您正在devise一种新的编程语言,在Scheme中进行原型devise可能是一个有用的第一步。 计划不妨碍新想法,因为它包含了很less的自己。
ITA Software (支持Hotwired等的机票search引擎的制造商/运营商)将其产品写入Lisp。
而且, AutoCAD可以在Lisp中编写脚本。
是的,有些人用计划谋生。 例如,蒙特利尔的计划程序员偶尔会遇到这种情况( http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html )。 search网站“工作”更多的计划工作。
根据我的经验,Scheme中的编程人员占专业编程社区的不到0.1%,至less在蒙特利尔是这样。 我见过Scheme用于embedded式系统编程,高精度数值计算,网页编程,游戏脚本等等。
雅虎的原始版本 商店由Paul Graham在Common Lisp撰写。 他卖了很多钱。 ( 更新 :只是商店的一部分,感谢Laurence Gonsalves的详细评论。)
然而,这是Lisp在现实世界中less数甚至是唯一的着名成功案例之一,而雅虎因为某种原因而用C ++重写了它。
有许多使用Lisp的免费程序,但是如果有人获得工资,很less有人可以使用Lisp,而这些都不是专门的Scheme。 gEDA是gnu电子devise自动化软件包,也是Gnu lisp扩展语言Guile的成功案例之一。
ELisp或Emacs lisp也许是最常用的lisp系统。 我不知道有多lessemacs用户实际上使用扩展语言。
如果沃伦的回答没有提到你,答案是否定的。 实际上没有人靠计划谋生。 (在我看来,保罗·格雷厄姆的雅虎商店是一个例外,certificate了这个规则 – 你可以在Lisp中编写一个伟大的产品,但是为什么格雷厄姆实际上是世上唯一一个富有的人呢?博士和难以置信的幸运时间。)
然而,现实世界中的人们正在为function性编程而谋生。 有像Galois , Jane Street等公司,专门从事function语言。 一旦你学习了一种函数式语言(Scheme,OCaml,Haskell等),其他的函数式语言就更容易学习。
我想你的问题的第二部分 – Scheme很适合解决什么问题 – 很容易回答。 Scheme是图灵完备的,这意味着它可以解决任何其他编程语言可以解决的问题。 它有一些漂亮的function,甚至还没有把它变成Common Lisp(特别是尾部recursion),但是它也缺乏CL多年来获得的许多function。
一些GNOME应用程序可以通过Scheme的Guile方言进行编写,特别是GIMP 。
密切相关的是, GNU Emacs是使用LISP编写的。
我认识一个波士顿地区的一个人,他的计划是为了谋生。 我认为他为麻省理工学院的一些分支工作。 既然Scheme是麻省理工学院的第一门语言,那么这里的很多初创公司至less部分地使用Scheme。
所以,答案是“有些但不是那么多”(可悲的是)
看看Scheme是Lisp的一个变种,任何一种问题。
电子商务引擎是后来成为雅虎的一个例子。 商店(在被雅虎收购之前)很大程度上是用Lisp编写的,尽pipe不是完全的。
看看这个: 在游戏中写的一个video游戏C。 这是邮寄到Gambit邮件列表说明如此。 。
在我的工作中,我做了一些计划编程,主要是为了自动执行任务。 当浏览一个庞大的JSP代码库来取出任何CData,并准备将其发送给我们的翻译供应商时,这是特别有用的。 (Yay SXML)
有你的简历计划不是一件坏事。
Coot (某种蛋白质CAD程序)是引用最多的一种开放源码软件,它使用scheme作为扩展语言。 开发人员是学者,并支付开发它。
1 :在科学文献中
我不确定它是否满足你的定义100%,但有exigpore,这是主要计划的活代码音乐家。 我敢肯定,并不是完全拉开了开发商领导者的薪水,但我认为一个“有工作”的音乐家的定义就是能够让人们参加他们的表演,而使用Extempore / Scheme的人似乎正在pipe理这一点。
现场编码音乐是Scheme非常合适的一个领域 – 可以用比其他语言less的按键来expression事物,如果你看看他们在做什么,你会看到macros在创build件/表演。 Scheme在编辑器中看起来相当不错,因为这些性能通常涉及编码器执行者屏幕的投影。
查看: http : //webcast.berkeley.edu/course_details_new.php? seriesid=2009-D-26266&semesterid=2009-D这是一个关于计划编程的伟大课程,这表明计划仍然在大学层面上教授,所以必须有一些应用程序。