有没有人使用Scheme编程语言谋生?

时间:2009-10-05 18:07:55

标签: programming-languages scheme

我开始学习Scheme for fun,并且想知道是否有人将它用作主要的编程语言......或者甚至作为编程工具的附加工具?如果是这样,你用它做什么?你通常用什么样的问题来解决它?

12 个答案:

答案 0 :(得分:31)

有很多人以Scheme为生。他们是大学教授,但主要是在编程语言领域 - 印第安纳大学有几个,如Kent DybvigDan Friedman。他们用编程语言语义对新想法进行了原型设计(Dybvig也出售了一个Scheme编译器)。

这不是一个拥有大量付费客户的领域,因此从技术上讲,教授的薪酬是因为他们在大学任职。但他们通过在编程语言中发布新想法来获得终身职位。

也有一些教授主张使用Scheme作为教学语言,如Matthias FelleisenPLT Scheme背后的其他人。他们也写Scheme谋生。

Scheme非常适合尝试新的语言语义,因为它具有非常简单,强大的原语,统一的语法使您只能专注于语义。如果您正在设计一种新的编程语言,那么在Scheme中对其进行原型设计可能是有用的第一步。 Scheme不会妨碍新想法,因为它包含了很少的新想法。

答案 1 :(得分:11)

是的,有些人使用Scheme谋生。例如,蒙特利尔(http://theschemeway.blogspot.com/2009/03/scheme-job-openings-at-gamerizon.html)的Scheme程序员偶尔会有空缺。在网站上搜索“工作”以获得更多计划工作。

根据我的经验,使用Scheme编程的人员占专业编程社区的不到0.1%,至少在蒙特利尔是这样。我见过用于嵌入式系统编程,高精度数值计算,网络编程,游戏脚本等的Scheme。

答案 2 :(得分:10)

ITA Software(为Hotwired等提供机票搜索引擎的制造商/运营商)在Lisp中编写他们的产品。

此外,AutoCAD可以在Lisp中编写脚本。

答案 3 :(得分:8)

如果沃伦的回答没有让你知道,答案是否定的。实际上没有人靠计划谋生。 (在我看来,保罗格雷厄姆的雅虎商店是证明这一规则的例外 - 你可以在Lisp中编写一个很棒的产品,但是格雷厄姆实际上是世界上唯一一个变得富有的人就是这样的原因。想想哈佛博士和令人难以置信的幸运时机。)

但是,现实世界中的人们 正致力于功能性编程。像GaloisJane Street等公司专门研究函数式语言。一旦你学会了一种函数式语言(Scheme,OCaml,Haskell等),其他函数式语言就会更容易学习。

我认为你问题的第二部分 - 方案非常适合解决的问题 - 很容易回答。 Scheme是Turing-complete,这意味着它可以解决任何其他编程语言都可以解决的问题。它有一些漂亮的功能,甚至没有进入Common Lisp(尾部递归,特别是),但它也缺乏CL多年来获得的许多功能。

答案 4 :(得分:7)

Yahoo!的原始版本商店由Paul Graham在Common Lisp中撰写。他卖了很多钱。 (更新:只有商店的一部分,感谢Laurence Gonsalves的详细评论。)

然而,这是Lisp在现实世界中为数不多甚至是唯一众所周知的成功案例之一,并且出于某种原因,雅虎用C ++重写了它。

有许多使用Lisp的免费程序,但很少有人获得报酬,而且这些程序并非特别是Scheme。 gEDA是gnu电子设计自动化软件包,是Gun(Gnu lisp扩展语言)的成功案例之一(同样很少)。

ELisp或Emacs lisp可能是最常部署的lisp系统。我不知道有多少emacs用户实际使用扩展语言。

答案 5 :(得分:4)

某些GNOME个应用可使用方案的Guile方言编写脚本,最值得注意的是GIMP

密切相关,GNU Emacs使用LISP编写脚本。

答案 6 :(得分:3)

我认识波士顿地区的一个人,他以编程为生。我认为他为麻省理工学院的一些分支工作。由于Scheme是麻省理工学院的第一语言,因此这里的许多初创公司至少部分使用Scheme ......

所以,答案是“有些但不是那么多”(可悲)

答案 7 :(得分:1)

看看Scheme如何是Lisp的变种,是一种问题。

作为一种行为能力的例子,后来成为雅虎的电子商务引擎!商店(在被雅虎收购之前)主要是用Lisp写的,但不是唯一的。

答案 8 :(得分:1)

检查出来:A Video Game Written in Gambit C。这是Post to the Gambit mailing list stating as such.

我在我的工作中完成了一些方案编程,主要用于自动化任务。在遍历大型JSP代码库以提取任何CData并准备发送给我们的翻译供应商时,它特别有用。 (Yay SXML)

在简历上制定计划并不是件坏事。

答案 9 :(得分:1)

Coot(某种蛋白质CAD程序)是引用最多的1开源软件,并使用scheme作为扩展语言。开发人员是学者,并且有资格开发它。

1:在科学文献中

答案 10 :(得分:1)

我不确定它是否符合您的定义100%,但是有一些在Extempore进行实时编码的音乐家,主要是Scheme。我确定,并不完全是牵头开发人员的工资,但我认为对工作的定义是正确的。音乐家是一个可以让人们参加他们的表演的人,使用Extempore / Scheme的人似乎正在管理这个。

Livecoding音乐是Scheme非常适合的一个领域 - 它可以用比其他语言更少的键击来表达事物,如果你看看他们在做什么你会做什么?看看宏如何在片段/表演的创作中发挥重要作用。 Scheme在编辑器中也看起来相当不错,这是一个重要的优点,因为这些表演通常涉及编码器表演者屏幕的投影。

答案 11 :(得分:-2)

结帐:http://webcast.berkeley.edu/course_details_new.php?seriesid=2009-D-26266&semesterid=2009-D 这是一个关于计划编程的伟大课程,它表明该计划仍在大学教授,因此必须有一些应用。