Scheme
Python
英文原文:
Scheme vs. Python
人们一直问我关于61A课程中编程语言选择的问题。相比于面对面的回答,这是一个相当长的解释。
1.最重要的是要认识到:在一个课程的设计中编程语言的选择绝不是最重要的事。伯克利的指导思想是你可以用一个周末学会一门编程语言(在第一次课后)。如果理念是这样的,那么对于编程语言我们不需要争论那么多。甚至我们不应该以选择一门编程语言来开始设计一门课程。说实话,如果新的以Python为基础的课程被证明更好,我不在乎它是用Python讲的。我想保留的是SICP,而不是Scheme。
其它翻译版本 (1)
加载中
2. 我们已经讨论过,我们需要认识的重点是,设计一门可能中用到的最佳的语言并非是我们在实际应用中用到的最佳语言。在现实的工作编码过程中,我们需要的是主动优化,通过调用库可以快速地解决现实问题。而对于一门课程,我们需要的是一个能清楚说明计算机科学理念的语言,而不是把这些理念隐藏在一堆语法或库里面。
3. 我真的不准备把真实世界割让给Python和Java。阅读这篇文章的人有多少已经50岁了?Lisp已经有50年的历史了——要知道相比于人的寿命,大多数编程语言的寿命与狗的寿命更相近。除了Lisp,只有一种语言(Fortran)有那么长的历史并且仍在使用。为什么Lisp存活下来了?不是因为它没用。人们仍然在使用它,因为相比于大多数所谓的“实用”语言,你可以用Lisp的方式
更快地编写项目代码。
其它翻译版本 (1)
加载中
4. 在整个50年的历史里,人们一直在喷,“Lisp是不切实际的”,“Lisp太慢了”,“过程调用开销太大了”,“只有教授才关心Lisp”。他们直到现在还在喷。但是同时,那些从不敢向他们的老板提交Lisp程序的用户——真实的用户——在他们使用的编程语言中正需要Lisp的思想。今天你认为递归是理所当然的,但是当Lisp引入它时递归是一个激进的思想。(Fortran直到很晚才有了递归的过程;早期的个人电脑用户使用BASIC,在BASIC的早期版本中甚至连过程调用都没有。)强类型语言的使用者需要,而且得到了Lisp的异构列表。今天,正在侵入主流语言的Lisp思想是一级过程(first-class procedure)。Guido van Rossum,Python的发明者,痛恨Lisp,但是在用户的强烈要求下在Python中加入了(一个阉割版的)lambda表达式。甚至C++,一个臭名昭著的蠕虫(a notorious can of worms),也在最近的版本中加入了lambda表达式。Java中的lambda表达式会在2013年到来。在未来的十年中,人们可能会重新发现一级的续延(first-class
continuation)。
其它翻译版本 (1)
加载中
5. 你可以学习任何一种语言。但是SICP课程的作者选择Scheme作为教学语言并不是意外。这本书的最重要理念——在现实工作中的校友告诉我们,使用Scheme能更好的表达他们的思想。实际上,他们这么说又把我们带回前面。Gerry Sussman(和Guy Steele)在他的课程当中阐述Scheme理念之前发明了Scheme。SICP是一门以Scheme为教学模式的课程。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
2KB翻译工作遵照
CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务