Tcl的历史 |
|
人们常常问我设计Tcl语言的目的是什么,为什么它会变得这么受欢迎。本文将重温一下当年产生设计Tcl和Tk的想法,回顾Tcl和Tk在过去十年间发展的过程,以及我从伯克利到sun到scriptics的人生经历。你将看到,起初Tcl是很简陋的;这个系统的成功令我很吃惊,其实我也是通过回顾它的历史才开始明白Tcl流行的原因是什么。 Tcl的诞生 Tcl脚本诞生于80年代初,我在加州大学伯克利分校的项目“集成电路设计工具”的研究。那时,我和我的学生已经写出了许多用于IC设计的交互工具,如Magic和Crystal。每个工具都需要一个命令语言(在那个年代,人们需要键入命令才能使用这些工具;图形用户界面还没有被广泛的使用)。不过我们的研究重点是工具而不是它们的命令语言,所以我们没有在命令语言上投入太多的精力,结果语言方面变得很薄弱。更糟的是,每个工具的语言之间是互不相通的。这样一来,经过一段时间后,就变得相当棘手。 1987年秋,在DEC的西部研究所的假期中,我有了设计一种嵌入式命令语言的想法。这个想法就是花费一些精力去创建一种优秀的解释型语言,然后进一步把它做成一个能够在许多不同的应用程序中重复利用的库包(library package),语言的解释器要提供一系列相对通用的工具,如变量,控制结构,过程。每个使用这个语言的程序都可以以扩展的形式把自己的功能加到语言中,达到用语言来控制程序的目的。Tcl的全称“工具命令语言”正说明了这一点。 可嵌入性是Tcl的特点之一,为了实现这个想法,我准备在以下三个方面进行着手: ★这个语言必须是可扩展的:它应该能够让每个应用程序可以很方便的把自己的功能加到语言的基本功能中,并且程序的特定功能必须使用起来非常自然,就好像一开始就是为这个语言设计的一样。 ★这个语言必须非常的简单通用,能很方便的与许多不同的应用程序配合工作,而不会限制应用程序的功能。 ★由于大部分出色的功能都来自于应用程序,所以这个语言的首要目的就是将扩展部件整合或“胶合”在一起,因此它必须要有很好的整合性能。 1988年初,假期一结束,我就开始着手设计Tcl的工作了。1988年春天的时候,我开始在一个图形化的文本编辑器中使用第一个版本的Tcl。在我停止IC设计工具的相关研究之前,Tcl的实验还大部分停留在理论阶段。当时我想除了我自己没有人会对这个嵌入式的语言感兴趣。 Tk的诞生 那时,我对图形用户界面也很感兴趣。80年代图形用户界面逐渐流行的时候,我注意到交互式软件的复杂性正在迅速的增长,最引人注目的发展趋势看起来好像是对巨额投资的庞大项目的需求在不断增加。作为一名教授,实验条件不是很充足,这使我开始担心像我们这样类似小团队的研究所是不是就不可能再做出交互式的系统了。 我得出的结论是,我们的唯一希望就是减少创建大型系统时除可重复利用的部件以外的部分对资源的需求,如果一个系统最复杂的地方是用部件来完成的,而且可以把部件从一个系统移植到另一个系统,也许我们就可以以小团队的规模来创建强大的系统,这要求花费一些精力来开发这些部件。不过如果有几个小组协同工作的话,完成它只是一个时间的问题。 我也在考虑这样一个问题,要想使基于组建的设计能够实现,需要有一个强大的有弹性的控件整合工具。这些想法在我一开始考虑做Tcl的时候就产生了,我觉得像Tcl这样的嵌入式命令语言作为脚本语言对整合部件会很有用。我决定创建一些作为Tcl扩展的GUI部件并且使用Tcl来把这些部件整合到图形用户界面中,借此实践一下这个理论。这个扩展就成为了Tk。 我1988年末开始做Tk。这只是一个兼职的项目,所以用了两年的时间才使Tk具有了一些实用的功能。 早期的集成套件 我已经记不清是什么时候开始让人们使用Tcl了,我记得我在伯克利“产学研大会”上作了一个关于Tcl的演讲,来自工业界的几百名与会者听了我们系的这个研究成果。我还被一些对此感兴趣的公司邀请去做演讲。在这几次演讲期间,一些人向我要Tcl的拷贝,于是在1989年,这一部分人最早接触到了Tcl。 1990年1月,我在USENIX |
Tcl的历史
最新推荐文章于 2022-08-04 22:59:28 发布