最近没有怎么看 Common Lisp 方面的东西,时间用来看书和研究 Rubinius 的代码了。(当然,上网也浪费了不少时间 :–( )之前玩了下 Squeak,发现 Smalltalk 跟 Lisp 很像,尤其是他们完全交互式的开发环境,也看到 Ruby 从 Smalltalk 吸收到的东西,比如 block 的语法就跟 Smalltalk 的语法很像,还有对象系统。Squeak 的开发环境好卡通(自己试试看就知道卡通是什么意思了),看了下 image file 包里面的 Welcome 文件,发现这么几行:
Portions of Squeak are: Copyright (c) 1996 Apple Computer, Inc. Copyright (c) 1997-2001 Walt Disney Company, and/or Copyrighted works of many other contributors. All rights reserved.
Walt Disney!完全没有想到,这是我第一次在软件中看到迪斯尼公司的名字。不过这个倒也解释了为什么 Squeak 的吉祥物是只小老鼠 :–)。
Smalltalk 的开发环境很特别,看起来像是一个完整的桌面系统,有文件浏览器,编辑器,桌面等等,很特别。当然,对这样的环境不是很习惯,因为没有 vim 等工具可以使用了,窗口切换之类的也得用鼠标来(有快捷键的话暂时也不知道)。在现在的图形环境下让一个语言包含这样完整的图形系统可能意义不大,但是 Smalltalk 诞生在 Macintosh 之前,它在那个年代就创建了这样的图形环境,是它影响了 Macintosh,Windows。
这里是一篇 Squeak 的不错的 tutorial,抄一段它对 Smalltalk 历史的介绍:
Smalltalk is undoubtedly one of the most influential programming languages ever developed. It was created way back in the ‘70s and early ’80s at a time when many programmers were still entering code at a command prompt rather than into a half-way decent text editor. Smalltalk was to change all that. Unlike other languages, Smalltalk had its own dedicated user interface. Its programming environment included a multi-font editor, a graphical debugger, overlapping windows and pop-up mouse menus. Indeed, it was this environment that provided the inspiration both for the Macintosh and, later on, for Windows.
现在看 Smalltalk 的语法总觉得有点诡异,但它作为对 OO 产生重要影响的一个非常有影响力的语言,很多的程序员都认为它是有必要学习一下的。不过时间有限,我没有打算认真学 Smalltalk,只准备做点简单的了解。