The History of Tcl/Tk
生活随笔
收集整理的這篇文章主要介紹了
The History of Tcl/Tk
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
http://blog.csdn.net/ganxingming/archive/2006/09/11/1210067.aspx
Tcl/Tk
進(jìn)度聲明
我所知道的就這么多了,大家可以盡情的批評了!感覺“最新動(dòng)態(tài)”一節(jié)還需要進(jìn)一步完善。
版權(quán)聲明
Tcl/Tk發(fā)展史一節(jié)的譯文參考了網(wǎng)絡(luò)上的一篇譯文,原譯者為sunny_ring(未做確認(rèn),不過,無論如何都要感謝原來的譯者),不過這里給出的譯文和原譯文還是有很大的出入,包括一些關(guān)鍵詞語和一些語句的翻譯,如果有什么出入,請及時(shí)聯(lián)系我。
概述
Tcl 是一種簡單易學(xué)但功能強(qiáng)大的語言。它的語法可以用僅僅一打規(guī)則就可以描述清楚,但它具備了在應(yīng)用的幾乎任何領(lǐng)域進(jìn)行快速創(chuàng)建實(shí)用程序所有必須的特征,并且這些應(yīng)用可以基于廣泛使用的國際化平臺(tái)。
Tk 是為Tcl 開發(fā)的一個(gè)圖形工具包(graphical toolkit)。你可以使用它開發(fā)運(yùn)行在Windwos,Linux,MacOSX和其它許多平臺(tái)的圖形應(yīng)用程序。
無論你是出色的hacker、應(yīng)用程序、系統(tǒng)管理員還是科研工作者,或者僅僅是學(xué)生,你都可以使用Tcl。
目前,應(yīng)用Tcl比較成功的公司包括BitMover、TiVo Inc.、Motorala、IBM、Oracle等。具體可以參考:http://www.tcl.tk/about/audience.html
開源協(xié)議
I Have To Give Away My Tcl Programs?
Programs you write in Tcl are your intellectual property, and you may sell, license, or give them away as you want. Most Tcl programs are distributed in source-code form, but there are source filters and other tools to render your program unreadable by the casual pirate.
On the other hand, be certain that you check the license of any extensions, tools, or distributions that you use during development. Just because Tcl and Tk are free doesn't mean that everything in the community is free.
?
在網(wǎng)上沒有找到Tcl/Tk具體遵循的協(xié)議,不過在這里(即上面的原文)也可以找到一些論述。Tcl/Tk是免費(fèi)的,但不是說在該社區(qū)里什么都是免費(fèi)的。你用Tcl編寫的程序?qū)儆谀愕闹橇Ξa(chǎn)品,你可以銷、許可(license)或者放棄它們。許多Tcl程序是以開放源代碼的形式發(fā)布的,但是存在源碼過濾器和其它一些工具,在沒有獲得授權(quán)的情況下,它們可以令你的程序不可讀。
?
Tcl/Tk發(fā)展史
John K. Ousterhout(Tcl/Tk的開創(chuàng)人)曾在網(wǎng)上寫了一篇名為《HISTORY OF TCL》的文章,原文詳見附件,全文如下:
?
人們常常問我這樣的問題,設(shè)計(jì)Tcl的靈感是什么,為什么它會(huì)變得這么受歡迎。本文將重溫一下當(dāng)年產(chǎn)生設(shè)計(jì)Tcl和Tk的想法,回顧Tcl和Tk在過去十年間發(fā)展的過程,以及我從伯克利到sun到scriptics的人生經(jīng)歷。你將看到,起初Tcl是很簡陋的;這個(gè)系統(tǒng)的成功令我很吃驚,其實(shí)我也是通過回顧它的歷史才開始明白Tcl流行的原因是什么。
?Tcl的誕生
?Tcl腳本語言誕生于我的集成電路設(shè)計(jì)工具項(xiàng)目,當(dāng)時(shí)我在加州大學(xué)伯克利分校,時(shí)間是80年代初。我和我的學(xué)生已經(jīng)為IC設(shè)計(jì)寫了幾個(gè)交互工具,如Magic和Crystal。每個(gè)工具都需要一個(gè)命令語言(在那個(gè)年代,人們需要鍵入命令才能使用這些工具;圖形用戶界面還沒有被廣泛的使用)。不過,我們的興趣重點(diǎn)是工具而不是它們的命令語言,所以我們沒有在命令語言上投入太多的精力,結(jié)果最終語言方面變得很薄弱。更糟的是,每個(gè)工具的語言之間是互不相通的,以至于每個(gè)工具最終都伴隨著一個(gè)糟糕的命令語言。一段時(shí)間后,情況變得更糟。
1987年秋,在DEC西部研究室的周期性休息日中,我有了設(shè)計(jì)一種嵌入式命令語言的想法。這個(gè)想法就是花費(fèi)額外的精力去創(chuàng)建一種優(yōu)秀的解釋型語言,然后進(jìn)一步把它做成一個(gè)能夠在許多不同的應(yīng)用程序中可重復(fù)利用的庫包(library package)。語言的解釋器要提供一系列相對通用的工具,如變量,控制結(jié)構(gòu),過程。每個(gè)使用這個(gè)語言的程序都可以以擴(kuò)展的形式把自己的特性加到該語言中,達(dá)到用該語言控制程序的目的。Tcl(Tool Command Language)這個(gè)名字就源自這種需求。
可嵌入性是Tcl的特色之一,為了實(shí)現(xiàn)這個(gè)想法,我準(zhǔn)備在以下三個(gè)方面進(jìn)行著手:
l???????? 這個(gè)語言必須是可擴(kuò)展的:它應(yīng)該能夠讓每個(gè)應(yīng)用程序可以很方便的把自己的特色加到語言的基本功能中,并且這種具體的應(yīng)用程序的特色要看起來非常自然,就好像一開始這些特色就被設(shè)計(jì)到了這個(gè)語言中。
l???????? 這個(gè)語言必須非常的簡單通用,能很方便的與許多不同的應(yīng)用程序配合工作,并且不會(huì)限制應(yīng)用程序所能提供的功能。
l???????? 由于大部分出色的功能都來自于應(yīng)用程序,所以這個(gè)語言的首要目的就是將擴(kuò)展部件集成或“膠合”在一起。因此這種語言必須要有很好的集成特性。
1988年初,假期一結(jié)束,我開始研究Tcl,1988年春天的時(shí)候,我開始在一個(gè)圖形化的文本編輯器中使用第一版的Tcl。那時(shí)我已經(jīng)暫停了IC設(shè)計(jì)工具的研究工作,所以有關(guān)Tcl的實(shí)驗(yàn)大部分還在理論研究階段:我當(dāng)時(shí)認(rèn)為除了我,沒有人會(huì)對一種嵌入式命令語言感興趣。
?Tk的誕生
?那時(shí),我的另一個(gè)愛好就是圖形用戶界面。80年代圖形用戶界面逐漸流行的時(shí)候,我注意到交互式軟件的復(fù)雜性正在迅速的增長。最有趣的是新的開發(fā)似乎需要巨額投資的大型工程項(xiàng)目的支持。作為一名只具有有限資源的教授,這令我擔(dān)心:象我的研究小組一樣的小團(tuán)隊(duì)是不是不再可能構(gòu)建出創(chuàng)新型交互系統(tǒng)?
我得出的結(jié)論是,我們的唯一希望就是減少創(chuàng)建大型系統(tǒng)時(shí)除可重用組件以外的部分對資源的需求。如果一個(gè)系統(tǒng)的復(fù)雜性大部分在組件里,并且我們可以在系統(tǒng)間進(jìn)行移植,也許我們就可以以小團(tuán)隊(duì)的規(guī)模來創(chuàng)建強(qiáng)大的系統(tǒng)。這要求花費(fèi)很多精力去開發(fā)這些組件,但是,經(jīng)過一段時(shí)間這項(xiàng)工作是可以逐漸完成的,或許幾個(gè)小團(tuán)隊(duì)一起合作完成。
我同時(shí)深信,對集成這些組件而言,除非有一種強(qiáng)大并具有彈性的機(jī)制,否則,基于組件的設(shè)計(jì)不會(huì)成功。這些想法在我一開始考慮做Tcl的時(shí)候就產(chǎn)生了,我覺得像Tcl這樣的嵌入式命令語言作為腳本語言對集成組件也會(huì)有用。我決定創(chuàng)建一個(gè)GUI組件集合作為對Tcl的擴(kuò)展并且使用Tcl把這些組件集成到圖形用戶界面,從而來驗(yàn)證我的這個(gè)理論。這個(gè)擴(kuò)展就成為了Tk。
我1988年末才開始做Tk,這只是一個(gè)兼職的項(xiàng)目,所以花費(fèi)了大概兩年的時(shí)間才使Tk具有了足夠的實(shí)用功能。
?發(fā)布初期
?我已經(jīng)記不清把Tcl介紹給大家的確切時(shí)間了。截止到1989年,我已經(jīng)在幾個(gè)工程中使用了Tcl,我記得我在伯克利工業(yè)聯(lián)絡(luò)會(huì)議(Berkeley Industrial Liaison Conference)期間做了一個(gè)關(guān)于Tcl的報(bào)告,那時(shí),幾百位來自工業(yè)界的人士來到伯克利聽我們系的研究成果。,我又在對Tcl感興趣的幾家公司做了相關(guān)的Tcl報(bào)告來招待他們,在這幾次報(bào)告中,一些人詢問了他們是否可以得到Tcl的拷貝。無論如何,我在1989年把幾份拷貝給了最早的好奇者。
1990年1月,我在USENIX會(huì)議上宣讀了一篇關(guān)于Tcl的論文。參會(huì)的有幾百人,并且他們對Tcl產(chǎn)生了濃厚的興趣,許多人開始向我要Tcl的拷貝。大約在那個(gè)時(shí)候,我決定在伯克利的FTP站點(diǎn)上免費(fèi)發(fā)放Tcl的源代碼。從此,通過因特網(wǎng),Tcl的用戶開始與日俱增。
出席USENIX會(huì)議的其中一個(gè)人是國家標(biāo)準(zhǔn)和技術(shù)協(xié)會(huì)的Don Libes。一段時(shí)間以來Don想編寫一個(gè)程序,這個(gè)程序能夠自動(dòng)的操作交互的UNIX應(yīng)用程序,但這需要一種優(yōu)秀的命令語言,而Don沒有時(shí)間自己編寫這樣的一個(gè)語言,于是這個(gè)項(xiàng)目只能擱置在一邊。聽了我的演講后,Don立即跑回家,下載了Tcl,編寫了一個(gè)叫做Expect的非常優(yōu)秀的程序,并且趕在下一次USENIX會(huì)議提交論文的最后期限之前完成了一篇關(guān)于它的論文。整個(gè)過程只用了三個(gè)星期。Don在1990年夏發(fā)表了他的論文之后,把Expect免費(fèi)的提供給人們使用,于是在系統(tǒng)管理員界立即引起了一場不小的震動(dòng)。Expect不僅是第一個(gè)廣泛發(fā)布的Tcl應(yīng)用程序,而且多年來一直也是最流行的。許多早期的Tcl用戶都是通過使用Expect來學(xué)習(xí)Tcl。
在1990年末,可以使用Tk的基本功,1991年1月,我同時(shí)在USENIX會(huì)議和X大會(huì)上發(fā)表了一篇關(guān)于Tk的論文。這兩次會(huì)議期間的幾個(gè)星期中,我發(fā)布了Tk的第一個(gè)網(wǎng)絡(luò)版本。Tk的第一版缺少許多重要的組件(比如,沒有多行文本框組件),不過到了1992年夏天的時(shí)候,我就把文本框組件和一個(gè)強(qiáng)大的畫布組件加了進(jìn)去。這時(shí)Tk的用戶開始迅速增長。
?開始流行
?Tcl/Tk的用戶在90年代初每年都在迅速增加,從1989年的幾個(gè)使用者到1993年的幾萬使用者。這種迅速增長的原因主要有兩個(gè)方面。
Tcl/Tk使用者增加的第一個(gè)原因是:它提供了最簡單的在UNIX(那時(shí)Tcl只能在UNIX系統(tǒng)下運(yùn)行)下開發(fā)圖形用戶界面的方法。Tk的GUI工具既簡單又強(qiáng)大;可以完全由Tcl而不用寫一句C代碼來編寫感興趣的應(yīng)用程序。換成基于C的工具來開發(fā)比如Motif工具包則要變得復(fù)雜得多,而且功能也比較少。人們很快就認(rèn)識(shí)到,用Tcl來開發(fā)GUI比用Motif可以少投入5到10倍的精力。這也證明了在工業(yè)界有許多人和我一樣很關(guān)心開發(fā)交互式應(yīng)用程序的高開支問題。
Tcl流行的第二個(gè)原因是它的可嵌入特性。在我開始做Tcl的時(shí)候,我猜想除了我沒有人會(huì)關(guān)心可嵌入式的命令語言,但是我錯(cuò)了。包括Don Libes在內(nèi)的許多人都想要編寫腳本式的可擴(kuò)展的應(yīng)用程序,但卻沒有時(shí)間自己來創(chuàng)建這么一種語言。正因?yàn)榭汕度胧降奶匦?#xff0c;Tcl為他們提供了一個(gè)完美的解決方案。因而,Tcl最終被廣泛的用于股票交易,科學(xué)觀測,生產(chǎn)自動(dòng)化等許多領(lǐng)域。
在Tcl用戶社區(qū)每一兩年都會(huì)有對Tcl和Tk的使用的討論。許多Tcl的使用者認(rèn)為Tk是他們使用Tcl的唯一原因。他們中的一些甚至不喜歡Tcl語言,而希望Tk能夠和其他的腳本語言結(jié)合。(實(shí)際上,已經(jīng)有人這么做了,如Tkperl和Python)。而另一部分人認(rèn)為Tcl正是他們的需求所在,他們把它作為可嵌入式的腳本語言來使用,并且正是因?yàn)槟軌蜻_(dá)到這個(gè)目的才讓他們喜歡上了這個(gè)語言的小道具(afreez注:指Tk)。從某種意義上說,這兩部分人都沒錯(cuò)。
?Tcl社區(qū)
?90年代初隨著Tcl使用者的增加,人們在網(wǎng)上建立了一個(gè)關(guān)于這門語言的社區(qū),目的是讓大家發(fā)布功能強(qiáng)大的擴(kuò)展和為新的用戶提供幫助。Mark Diekhans和Karl Lehenbauer是早期開創(chuàng)者中的兩位。他們編寫了Tclx,最早免費(fèi)可用的Tcl擴(kuò)展之一。Tclx提供了對文件的訪問,時(shí)間和日期控制,以及許多其它有用的功能。隨著時(shí)間的推移,Tclx的功能被證明是非常重要的,以至于其中的許多功能已經(jīng)被整合到了Tcl的基本功能中。
許多早期的Tcl倡導(dǎo)者編寫了高質(zhì)量的擴(kuò)展并使這些擴(kuò)展能夠免費(fèi)的使用。比如Michael Mclennan編寫的[incr Tcl],一種在Tcl內(nèi)部提供面向?qū)ο缶幊痰臄U(kuò)展。George Howlett編寫的BLT,為Tk加進(jìn)了幾個(gè)重要的組件。Tom Poindexter編寫的Sybtcl和Oratcl,提供了對主流數(shù)據(jù)庫的訪問。Brian Smith和Lary Rowe編寫的TclDP,提供了Socket訪問及一些分布式編程特性。還有許多貢獻(xiàn)者我已經(jīng)記不太清了,在此我只能表示歉意。
社區(qū)中其它的論壇在這個(gè)時(shí)期也在發(fā)展。我起初為社區(qū)中的用戶建立了一個(gè)郵件列表,但是短短幾年里,這個(gè)列表變得相當(dāng)冗長,以至于后來無法控制。在Tcl社區(qū)的幫助下,我們建立了comp.lang.tcl新聞組來代替原來的郵件列表;從此,它就成為了信息交流和討論Tcl新功能的絕佳論壇。
1993年Larry Rowe意識(shí)到社區(qū)中的人們需要面對面的交流,于是他在伯克利組織了第一屆Tcl專題討論會(huì)。大約有60人參加,由于這次大會(huì)開得非常成功,所以成為了年會(huì)。1995年,USENIX協(xié)會(huì)開始對這個(gè)討論會(huì)進(jìn)行資助;從此,它就變?yōu)榱艘粋€(gè)有幾百人參加的,發(fā)表大量論文、教程,開展眾多活動(dòng)的全方位的大會(huì)。Tcl大會(huì)也是世界上最大的參加者上身著裝統(tǒng)一的大會(huì)之一,每年要分發(fā)5-10種不同設(shè)計(jì)圖案的T-shirt來區(qū)別不同的擴(kuò)展和活動(dòng)等。
在這段時(shí)間里,我大約每6到10個(gè)月發(fā)布一次Tcl/Tk的新版本。大部分新的功能都是采用的Tcl社區(qū)的建議;有時(shí),使用者甚至直接給我提供新功能的原型代碼(prototype code),然后,我再把它集成到核心軟件中。典型的新版本發(fā)布流程是,開始大家開始討論一段時(shí)間,同時(shí)我提供一份新功能的候選列表,然后在社區(qū)中由大家投票選出他們認(rèn)為最重要的功能。我盡可能優(yōu)先考慮得票最多的功能。
?Ouster-投票
?后來Tcl的發(fā)布周期就慢慢趨向于和Tcl大會(huì)保持一致。新版本發(fā)布的時(shí)間大概和大會(huì)的時(shí)間相當(dāng),大會(huì)上我會(huì)利用一個(gè)專門的議程去討論下一個(gè)版本的新特征并取得反饋信息。我經(jīng)常讓與會(huì)者即興的舉手表決,統(tǒng)計(jì)一下聽眾對一些問題的想法,然后對舉手的人數(shù)做個(gè)大概的統(tǒng)計(jì)(“10,20,30,…,看起來我大約得了35票”)。這些票數(shù)被大家稱之為“ouster-投票”,得票數(shù)的正確性也常常被大家討論的話題。一些愛說笑的人也含沙射影說我這個(gè)投票方法也不怎么太客觀….
?在sun公司的日子
?1994年我決定離開伯克利投身工業(yè)界。過去我就一直想在工業(yè)界做兼職工作,在學(xué)術(shù)界干了14年,現(xiàn)在我看時(shí)機(jī)已經(jīng)成熟了。在考慮了多方面的因素后,我決定接受sun公司的邀請。Eric Schmidt,sun公司的首席技術(shù)官,和Bert Sutherland,sun實(shí)驗(yàn)室的領(lǐng)導(dǎo)者,給我提供了一個(gè)機(jī)會(huì),在sun實(shí)驗(yàn)室創(chuàng)立一個(gè)小組,將Tcl開發(fā)成因特網(wǎng)上通用的腳本語言。
我一直覺得Tcl最終需要進(jìn)行商業(yè)贏利才能在長遠(yuǎn)的開發(fā)中生存下來,sun公司為Tcl向更高性能的發(fā)展提供了很好的機(jī)會(huì)。
我在1994年5月加入sun公司,然后組建了一個(gè)Tcl開發(fā)小組。在以后的3年里,sun的Tcl小組成員發(fā)展到了12人。以前基本上Tcl/tk的每一行代碼都有我親自來編寫,但是從那以后,編寫Tcl代碼的工作就移交給Tcl小組的其他成員來完成了。
Sun公司提供的許多幫助使我們對Tcl/Tk的性能進(jìn)行了大規(guī)模的提升。Scott Stanton 和Ray Johnson將Tcl/Tk移植到了Windows和Macintosh,于是Tcl就成了一個(gè)出色的跨平臺(tái)的開發(fā)環(huán)境;當(dāng)前,超過2/3下載Tcl的用戶是用于Windows開發(fā)。Jacob Levy和Scott Stanton仔細(xì)測試了輸入輸出系統(tǒng)并加進(jìn)了對Socket的支持,于是Tcl可以被廣泛的用于網(wǎng)絡(luò)應(yīng)用程序。Brian Lewis為Tcl腳本創(chuàng)建了一個(gè)字節(jié)碼(bytecode)編譯器,這使它的運(yùn)行速度提升了10倍。Jacob Levy開發(fā)了Safe-Tcl,一個(gè)強(qiáng)大的安全模型,使非信任的腳本能更安全的執(zhí)行。Jacob Levy和Laurent Demailly創(chuàng)建了一個(gè)Tcl插件,使Tcl腳本可以在web瀏覽器中運(yùn)行,我們創(chuàng)建了Jacl和TclBlend,使Tcl和Java可以緊密的工作在一起。我們還進(jìn)行了一些小的改進(jìn),如動(dòng)態(tài)加載,名稱空間,時(shí)間和日期支持,二進(jìn)制I/O,額外的文件操作命令,和一個(gè)改進(jìn)的字體機(jī)制。
當(dāng)我加盟sun后,許多人擔(dān)心Tcl是否會(huì)變成一個(gè)私有的語言,當(dāng)時(shí)在comp.lang.tcl上出現(xiàn)了許多熱烈的討論。幸運(yùn)的是,sun公司同意在源代碼論壇中繼續(xù)發(fā)放Tcl/Tk的核心代碼庫,并且sun一直信守諾言。隨著性能不斷提升的新版本的出現(xiàn),事實(shí)證明,Sun對Tcl的支持是不容質(zhì)疑的,它使得比該語言的發(fā)展速度超過以前任何時(shí)候。起初那些擔(dān)心逐漸被開發(fā)新功能的熱情所代替。
這些年,Tcl的使用者繼續(xù)地爆炸式增長。到1997年已經(jīng)有了數(shù)十萬的Tcl開發(fā)者;sun公司的FTP站點(diǎn)的Tcl下載率由1995年底的2000人每星期上升到1998年初的超過10000人每星期。很明顯,Tcl對我是一個(gè)巨大的商業(yè)機(jī)會(huì)。Tcl開放源代碼的發(fā)展?jié)M足不了Tcl社區(qū)中的許多要求。比如,幾乎沒有開發(fā)Tcl的工具,像培訓(xùn)和技術(shù)支持這樣的專業(yè)服務(wù)也僅僅是零散進(jìn)行的。許多重要的擴(kuò)展,如對ActiveX和CORBA的支持還沒有編寫出來。
?Scriptics(afreez注:公司的名字)
?1997年底,為了更好的發(fā)展Tcl,我決定離開sun創(chuàng)建一個(gè)完全關(guān)注于Tcl的公司。1998年1月,我和Sarah Daniels創(chuàng)建了Scriptics(即今天的 Tcl),由Sarah負(fù)責(zé)市場和營銷。一個(gè)月內(nèi),sun公司Tcl小組的約一半成員都跳槽加入了我們公司,我們開始開發(fā)TclPro,一套包括我們最初產(chǎn)品的開發(fā)工具。TclPro 1.0 于1998年9月完成。它在市場上的成功為公司的發(fā)展注入了強(qiáng)大的動(dòng)力。
Scriptics已經(jīng)取代了sun公司在開發(fā)Tcl核心工具上的角色,并且它將繼續(xù)像sun公司那樣免費(fèi)的發(fā)布它。1998年,Scriptics為Tcl8.0做了一些改進(jìn),修復(fù)了一些錯(cuò)誤并加進(jìn)了一些小的功能,比如可以更好的支持[Incr Tcl]擴(kuò)展。1999年4月,Tcl發(fā)布了第一個(gè)最重要的開放源碼的版本,Tcl/Tk8.1。這個(gè)版本加進(jìn)了對Unicode的支持(國際化),線性安全(用于多線程服務(wù)程序)和一個(gè)由Henry Spencer開發(fā)的全新的規(guī)則表達(dá)式包,該包包含了許多新的特性,也支持Unicode。Tcl成為第一個(gè)滿足企業(yè)中關(guān)鍵程序各方面要求的腳本語言。
Tcl:獲過大獎(jiǎng)的軟件
? 1998年春, 我聽到了令人振奮的消息,Tcl獲得了兩項(xiàng)大獎(jiǎng)。一個(gè)是ACM軟件系統(tǒng)大獎(jiǎng),獎(jiǎng)給每年的“具有長遠(yuǎn)影響的軟件系統(tǒng)”。以往這個(gè)獎(jiǎng)項(xiàng)的獲得者包括許多重要的系統(tǒng)如TCP/IP協(xié)議,第一個(gè)線性表,第一個(gè)電子制表軟件,第一個(gè)關(guān)系數(shù)據(jù)庫,萬維網(wǎng),Unix系統(tǒng),PostScript,Smalltalk。另一個(gè)是USENIX軟件工具用戶組織(STUG)大獎(jiǎng),這個(gè)獎(jiǎng)項(xiàng)獎(jiǎng)給年度優(yōu)秀的軟件工具。
Tcl核心團(tuán)隊(duì)的成立
?這一部分由Jeff Hobbs和其他人添加
?Scriptics于2000年5月更名為Ajuba解決方案(Ajuba Solutions),反映了公司的發(fā)展重點(diǎn)放在了一系列的基于Tcl的XML技術(shù)。Ajuba創(chuàng)建了基于Tcl的企業(yè)版的XML類服務(wù)器軟件,從這個(gè)方面來說,由于Tcl的成功,Ajuba也成為了犧牲品,之所以這么說是因?yàn)檫@個(gè)原因,后來它被Interwoven于2000年10月收購。不過Interwoven對開放源碼的軟件不感興趣,他們只關(guān)注XML和服務(wù)器技術(shù)。
在2000年的七月到十月期間,核心開發(fā)的“所屬權(quán)”發(fā)生了轉(zhuǎn)變,它從一個(gè)單獨(dú)的組織中脫離出來,屬于了一個(gè)廣泛的團(tuán)隊(duì)而不再屬于任何一個(gè)單獨(dú)的組織,并被廣為傳播。Tcl核心團(tuán)隊(duì)(Tcl Core Team)成立了,并建立了它的基本運(yùn)行程序。
有關(guān)Tcl的教程也得益于包含它的許多公司。一個(gè)典型的例子就是,Jeff Hobbs,前Tcl Scriptics/Tcl的代理人,跳槽到ActiveState(以發(fā)布Perl的產(chǎn)品和開發(fā)聞名)來領(lǐng)導(dǎo)他們的Tcl技術(shù)部,他的工作不僅在開源Tcl核心上,而且也推進(jìn)了許多由Scriptics開創(chuàng)的商業(yè)開發(fā)工具的發(fā)展。
Tcl/Tk
進(jìn)度聲明
我所知道的就這么多了,大家可以盡情的批評了!感覺“最新動(dòng)態(tài)”一節(jié)還需要進(jìn)一步完善。
版權(quán)聲明
Tcl/Tk發(fā)展史一節(jié)的譯文參考了網(wǎng)絡(luò)上的一篇譯文,原譯者為sunny_ring(未做確認(rèn),不過,無論如何都要感謝原來的譯者),不過這里給出的譯文和原譯文還是有很大的出入,包括一些關(guān)鍵詞語和一些語句的翻譯,如果有什么出入,請及時(shí)聯(lián)系我。
概述
Tcl 是一種簡單易學(xué)但功能強(qiáng)大的語言。它的語法可以用僅僅一打規(guī)則就可以描述清楚,但它具備了在應(yīng)用的幾乎任何領(lǐng)域進(jìn)行快速創(chuàng)建實(shí)用程序所有必須的特征,并且這些應(yīng)用可以基于廣泛使用的國際化平臺(tái)。
Tk 是為Tcl 開發(fā)的一個(gè)圖形工具包(graphical toolkit)。你可以使用它開發(fā)運(yùn)行在Windwos,Linux,MacOSX和其它許多平臺(tái)的圖形應(yīng)用程序。
無論你是出色的hacker、應(yīng)用程序、系統(tǒng)管理員還是科研工作者,或者僅僅是學(xué)生,你都可以使用Tcl。
目前,應(yīng)用Tcl比較成功的公司包括BitMover、TiVo Inc.、Motorala、IBM、Oracle等。具體可以參考:http://www.tcl.tk/about/audience.html
開源協(xié)議
I Have To Give Away My Tcl Programs?
Programs you write in Tcl are your intellectual property, and you may sell, license, or give them away as you want. Most Tcl programs are distributed in source-code form, but there are source filters and other tools to render your program unreadable by the casual pirate.
On the other hand, be certain that you check the license of any extensions, tools, or distributions that you use during development. Just because Tcl and Tk are free doesn't mean that everything in the community is free.
?
在網(wǎng)上沒有找到Tcl/Tk具體遵循的協(xié)議,不過在這里(即上面的原文)也可以找到一些論述。Tcl/Tk是免費(fèi)的,但不是說在該社區(qū)里什么都是免費(fèi)的。你用Tcl編寫的程序?qū)儆谀愕闹橇Ξa(chǎn)品,你可以銷、許可(license)或者放棄它們。許多Tcl程序是以開放源代碼的形式發(fā)布的,但是存在源碼過濾器和其它一些工具,在沒有獲得授權(quán)的情況下,它們可以令你的程序不可讀。
?
Tcl/Tk發(fā)展史
John K. Ousterhout(Tcl/Tk的開創(chuàng)人)曾在網(wǎng)上寫了一篇名為《HISTORY OF TCL》的文章,原文詳見附件,全文如下:
?
人們常常問我這樣的問題,設(shè)計(jì)Tcl的靈感是什么,為什么它會(huì)變得這么受歡迎。本文將重溫一下當(dāng)年產(chǎn)生設(shè)計(jì)Tcl和Tk的想法,回顧Tcl和Tk在過去十年間發(fā)展的過程,以及我從伯克利到sun到scriptics的人生經(jīng)歷。你將看到,起初Tcl是很簡陋的;這個(gè)系統(tǒng)的成功令我很吃驚,其實(shí)我也是通過回顧它的歷史才開始明白Tcl流行的原因是什么。
?Tcl的誕生
?Tcl腳本語言誕生于我的集成電路設(shè)計(jì)工具項(xiàng)目,當(dāng)時(shí)我在加州大學(xué)伯克利分校,時(shí)間是80年代初。我和我的學(xué)生已經(jīng)為IC設(shè)計(jì)寫了幾個(gè)交互工具,如Magic和Crystal。每個(gè)工具都需要一個(gè)命令語言(在那個(gè)年代,人們需要鍵入命令才能使用這些工具;圖形用戶界面還沒有被廣泛的使用)。不過,我們的興趣重點(diǎn)是工具而不是它們的命令語言,所以我們沒有在命令語言上投入太多的精力,結(jié)果最終語言方面變得很薄弱。更糟的是,每個(gè)工具的語言之間是互不相通的,以至于每個(gè)工具最終都伴隨著一個(gè)糟糕的命令語言。一段時(shí)間后,情況變得更糟。
1987年秋,在DEC西部研究室的周期性休息日中,我有了設(shè)計(jì)一種嵌入式命令語言的想法。這個(gè)想法就是花費(fèi)額外的精力去創(chuàng)建一種優(yōu)秀的解釋型語言,然后進(jìn)一步把它做成一個(gè)能夠在許多不同的應(yīng)用程序中可重復(fù)利用的庫包(library package)。語言的解釋器要提供一系列相對通用的工具,如變量,控制結(jié)構(gòu),過程。每個(gè)使用這個(gè)語言的程序都可以以擴(kuò)展的形式把自己的特性加到該語言中,達(dá)到用該語言控制程序的目的。Tcl(Tool Command Language)這個(gè)名字就源自這種需求。
可嵌入性是Tcl的特色之一,為了實(shí)現(xiàn)這個(gè)想法,我準(zhǔn)備在以下三個(gè)方面進(jìn)行著手:
l???????? 這個(gè)語言必須是可擴(kuò)展的:它應(yīng)該能夠讓每個(gè)應(yīng)用程序可以很方便的把自己的特色加到語言的基本功能中,并且這種具體的應(yīng)用程序的特色要看起來非常自然,就好像一開始這些特色就被設(shè)計(jì)到了這個(gè)語言中。
l???????? 這個(gè)語言必須非常的簡單通用,能很方便的與許多不同的應(yīng)用程序配合工作,并且不會(huì)限制應(yīng)用程序所能提供的功能。
l???????? 由于大部分出色的功能都來自于應(yīng)用程序,所以這個(gè)語言的首要目的就是將擴(kuò)展部件集成或“膠合”在一起。因此這種語言必須要有很好的集成特性。
1988年初,假期一結(jié)束,我開始研究Tcl,1988年春天的時(shí)候,我開始在一個(gè)圖形化的文本編輯器中使用第一版的Tcl。那時(shí)我已經(jīng)暫停了IC設(shè)計(jì)工具的研究工作,所以有關(guān)Tcl的實(shí)驗(yàn)大部分還在理論研究階段:我當(dāng)時(shí)認(rèn)為除了我,沒有人會(huì)對一種嵌入式命令語言感興趣。
?Tk的誕生
?那時(shí),我的另一個(gè)愛好就是圖形用戶界面。80年代圖形用戶界面逐漸流行的時(shí)候,我注意到交互式軟件的復(fù)雜性正在迅速的增長。最有趣的是新的開發(fā)似乎需要巨額投資的大型工程項(xiàng)目的支持。作為一名只具有有限資源的教授,這令我擔(dān)心:象我的研究小組一樣的小團(tuán)隊(duì)是不是不再可能構(gòu)建出創(chuàng)新型交互系統(tǒng)?
我得出的結(jié)論是,我們的唯一希望就是減少創(chuàng)建大型系統(tǒng)時(shí)除可重用組件以外的部分對資源的需求。如果一個(gè)系統(tǒng)的復(fù)雜性大部分在組件里,并且我們可以在系統(tǒng)間進(jìn)行移植,也許我們就可以以小團(tuán)隊(duì)的規(guī)模來創(chuàng)建強(qiáng)大的系統(tǒng)。這要求花費(fèi)很多精力去開發(fā)這些組件,但是,經(jīng)過一段時(shí)間這項(xiàng)工作是可以逐漸完成的,或許幾個(gè)小團(tuán)隊(duì)一起合作完成。
我同時(shí)深信,對集成這些組件而言,除非有一種強(qiáng)大并具有彈性的機(jī)制,否則,基于組件的設(shè)計(jì)不會(huì)成功。這些想法在我一開始考慮做Tcl的時(shí)候就產(chǎn)生了,我覺得像Tcl這樣的嵌入式命令語言作為腳本語言對集成組件也會(huì)有用。我決定創(chuàng)建一個(gè)GUI組件集合作為對Tcl的擴(kuò)展并且使用Tcl把這些組件集成到圖形用戶界面,從而來驗(yàn)證我的這個(gè)理論。這個(gè)擴(kuò)展就成為了Tk。
我1988年末才開始做Tk,這只是一個(gè)兼職的項(xiàng)目,所以花費(fèi)了大概兩年的時(shí)間才使Tk具有了足夠的實(shí)用功能。
?發(fā)布初期
?我已經(jīng)記不清把Tcl介紹給大家的確切時(shí)間了。截止到1989年,我已經(jīng)在幾個(gè)工程中使用了Tcl,我記得我在伯克利工業(yè)聯(lián)絡(luò)會(huì)議(Berkeley Industrial Liaison Conference)期間做了一個(gè)關(guān)于Tcl的報(bào)告,那時(shí),幾百位來自工業(yè)界的人士來到伯克利聽我們系的研究成果。,我又在對Tcl感興趣的幾家公司做了相關(guān)的Tcl報(bào)告來招待他們,在這幾次報(bào)告中,一些人詢問了他們是否可以得到Tcl的拷貝。無論如何,我在1989年把幾份拷貝給了最早的好奇者。
1990年1月,我在USENIX會(huì)議上宣讀了一篇關(guān)于Tcl的論文。參會(huì)的有幾百人,并且他們對Tcl產(chǎn)生了濃厚的興趣,許多人開始向我要Tcl的拷貝。大約在那個(gè)時(shí)候,我決定在伯克利的FTP站點(diǎn)上免費(fèi)發(fā)放Tcl的源代碼。從此,通過因特網(wǎng),Tcl的用戶開始與日俱增。
出席USENIX會(huì)議的其中一個(gè)人是國家標(biāo)準(zhǔn)和技術(shù)協(xié)會(huì)的Don Libes。一段時(shí)間以來Don想編寫一個(gè)程序,這個(gè)程序能夠自動(dòng)的操作交互的UNIX應(yīng)用程序,但這需要一種優(yōu)秀的命令語言,而Don沒有時(shí)間自己編寫這樣的一個(gè)語言,于是這個(gè)項(xiàng)目只能擱置在一邊。聽了我的演講后,Don立即跑回家,下載了Tcl,編寫了一個(gè)叫做Expect的非常優(yōu)秀的程序,并且趕在下一次USENIX會(huì)議提交論文的最后期限之前完成了一篇關(guān)于它的論文。整個(gè)過程只用了三個(gè)星期。Don在1990年夏發(fā)表了他的論文之后,把Expect免費(fèi)的提供給人們使用,于是在系統(tǒng)管理員界立即引起了一場不小的震動(dòng)。Expect不僅是第一個(gè)廣泛發(fā)布的Tcl應(yīng)用程序,而且多年來一直也是最流行的。許多早期的Tcl用戶都是通過使用Expect來學(xué)習(xí)Tcl。
在1990年末,可以使用Tk的基本功,1991年1月,我同時(shí)在USENIX會(huì)議和X大會(huì)上發(fā)表了一篇關(guān)于Tk的論文。這兩次會(huì)議期間的幾個(gè)星期中,我發(fā)布了Tk的第一個(gè)網(wǎng)絡(luò)版本。Tk的第一版缺少許多重要的組件(比如,沒有多行文本框組件),不過到了1992年夏天的時(shí)候,我就把文本框組件和一個(gè)強(qiáng)大的畫布組件加了進(jìn)去。這時(shí)Tk的用戶開始迅速增長。
?開始流行
?Tcl/Tk的用戶在90年代初每年都在迅速增加,從1989年的幾個(gè)使用者到1993年的幾萬使用者。這種迅速增長的原因主要有兩個(gè)方面。
Tcl/Tk使用者增加的第一個(gè)原因是:它提供了最簡單的在UNIX(那時(shí)Tcl只能在UNIX系統(tǒng)下運(yùn)行)下開發(fā)圖形用戶界面的方法。Tk的GUI工具既簡單又強(qiáng)大;可以完全由Tcl而不用寫一句C代碼來編寫感興趣的應(yīng)用程序。換成基于C的工具來開發(fā)比如Motif工具包則要變得復(fù)雜得多,而且功能也比較少。人們很快就認(rèn)識(shí)到,用Tcl來開發(fā)GUI比用Motif可以少投入5到10倍的精力。這也證明了在工業(yè)界有許多人和我一樣很關(guān)心開發(fā)交互式應(yīng)用程序的高開支問題。
Tcl流行的第二個(gè)原因是它的可嵌入特性。在我開始做Tcl的時(shí)候,我猜想除了我沒有人會(huì)關(guān)心可嵌入式的命令語言,但是我錯(cuò)了。包括Don Libes在內(nèi)的許多人都想要編寫腳本式的可擴(kuò)展的應(yīng)用程序,但卻沒有時(shí)間自己來創(chuàng)建這么一種語言。正因?yàn)榭汕度胧降奶匦?#xff0c;Tcl為他們提供了一個(gè)完美的解決方案。因而,Tcl最終被廣泛的用于股票交易,科學(xué)觀測,生產(chǎn)自動(dòng)化等許多領(lǐng)域。
在Tcl用戶社區(qū)每一兩年都會(huì)有對Tcl和Tk的使用的討論。許多Tcl的使用者認(rèn)為Tk是他們使用Tcl的唯一原因。他們中的一些甚至不喜歡Tcl語言,而希望Tk能夠和其他的腳本語言結(jié)合。(實(shí)際上,已經(jīng)有人這么做了,如Tkperl和Python)。而另一部分人認(rèn)為Tcl正是他們的需求所在,他們把它作為可嵌入式的腳本語言來使用,并且正是因?yàn)槟軌蜻_(dá)到這個(gè)目的才讓他們喜歡上了這個(gè)語言的小道具(afreez注:指Tk)。從某種意義上說,這兩部分人都沒錯(cuò)。
?Tcl社區(qū)
?90年代初隨著Tcl使用者的增加,人們在網(wǎng)上建立了一個(gè)關(guān)于這門語言的社區(qū),目的是讓大家發(fā)布功能強(qiáng)大的擴(kuò)展和為新的用戶提供幫助。Mark Diekhans和Karl Lehenbauer是早期開創(chuàng)者中的兩位。他們編寫了Tclx,最早免費(fèi)可用的Tcl擴(kuò)展之一。Tclx提供了對文件的訪問,時(shí)間和日期控制,以及許多其它有用的功能。隨著時(shí)間的推移,Tclx的功能被證明是非常重要的,以至于其中的許多功能已經(jīng)被整合到了Tcl的基本功能中。
許多早期的Tcl倡導(dǎo)者編寫了高質(zhì)量的擴(kuò)展并使這些擴(kuò)展能夠免費(fèi)的使用。比如Michael Mclennan編寫的[incr Tcl],一種在Tcl內(nèi)部提供面向?qū)ο缶幊痰臄U(kuò)展。George Howlett編寫的BLT,為Tk加進(jìn)了幾個(gè)重要的組件。Tom Poindexter編寫的Sybtcl和Oratcl,提供了對主流數(shù)據(jù)庫的訪問。Brian Smith和Lary Rowe編寫的TclDP,提供了Socket訪問及一些分布式編程特性。還有許多貢獻(xiàn)者我已經(jīng)記不太清了,在此我只能表示歉意。
社區(qū)中其它的論壇在這個(gè)時(shí)期也在發(fā)展。我起初為社區(qū)中的用戶建立了一個(gè)郵件列表,但是短短幾年里,這個(gè)列表變得相當(dāng)冗長,以至于后來無法控制。在Tcl社區(qū)的幫助下,我們建立了comp.lang.tcl新聞組來代替原來的郵件列表;從此,它就成為了信息交流和討論Tcl新功能的絕佳論壇。
1993年Larry Rowe意識(shí)到社區(qū)中的人們需要面對面的交流,于是他在伯克利組織了第一屆Tcl專題討論會(huì)。大約有60人參加,由于這次大會(huì)開得非常成功,所以成為了年會(huì)。1995年,USENIX協(xié)會(huì)開始對這個(gè)討論會(huì)進(jìn)行資助;從此,它就變?yōu)榱艘粋€(gè)有幾百人參加的,發(fā)表大量論文、教程,開展眾多活動(dòng)的全方位的大會(huì)。Tcl大會(huì)也是世界上最大的參加者上身著裝統(tǒng)一的大會(huì)之一,每年要分發(fā)5-10種不同設(shè)計(jì)圖案的T-shirt來區(qū)別不同的擴(kuò)展和活動(dòng)等。
在這段時(shí)間里,我大約每6到10個(gè)月發(fā)布一次Tcl/Tk的新版本。大部分新的功能都是采用的Tcl社區(qū)的建議;有時(shí),使用者甚至直接給我提供新功能的原型代碼(prototype code),然后,我再把它集成到核心軟件中。典型的新版本發(fā)布流程是,開始大家開始討論一段時(shí)間,同時(shí)我提供一份新功能的候選列表,然后在社區(qū)中由大家投票選出他們認(rèn)為最重要的功能。我盡可能優(yōu)先考慮得票最多的功能。
?Ouster-投票
?后來Tcl的發(fā)布周期就慢慢趨向于和Tcl大會(huì)保持一致。新版本發(fā)布的時(shí)間大概和大會(huì)的時(shí)間相當(dāng),大會(huì)上我會(huì)利用一個(gè)專門的議程去討論下一個(gè)版本的新特征并取得反饋信息。我經(jīng)常讓與會(huì)者即興的舉手表決,統(tǒng)計(jì)一下聽眾對一些問題的想法,然后對舉手的人數(shù)做個(gè)大概的統(tǒng)計(jì)(“10,20,30,…,看起來我大約得了35票”)。這些票數(shù)被大家稱之為“ouster-投票”,得票數(shù)的正確性也常常被大家討論的話題。一些愛說笑的人也含沙射影說我這個(gè)投票方法也不怎么太客觀….
?在sun公司的日子
?1994年我決定離開伯克利投身工業(yè)界。過去我就一直想在工業(yè)界做兼職工作,在學(xué)術(shù)界干了14年,現(xiàn)在我看時(shí)機(jī)已經(jīng)成熟了。在考慮了多方面的因素后,我決定接受sun公司的邀請。Eric Schmidt,sun公司的首席技術(shù)官,和Bert Sutherland,sun實(shí)驗(yàn)室的領(lǐng)導(dǎo)者,給我提供了一個(gè)機(jī)會(huì),在sun實(shí)驗(yàn)室創(chuàng)立一個(gè)小組,將Tcl開發(fā)成因特網(wǎng)上通用的腳本語言。
我一直覺得Tcl最終需要進(jìn)行商業(yè)贏利才能在長遠(yuǎn)的開發(fā)中生存下來,sun公司為Tcl向更高性能的發(fā)展提供了很好的機(jī)會(huì)。
我在1994年5月加入sun公司,然后組建了一個(gè)Tcl開發(fā)小組。在以后的3年里,sun的Tcl小組成員發(fā)展到了12人。以前基本上Tcl/tk的每一行代碼都有我親自來編寫,但是從那以后,編寫Tcl代碼的工作就移交給Tcl小組的其他成員來完成了。
Sun公司提供的許多幫助使我們對Tcl/Tk的性能進(jìn)行了大規(guī)模的提升。Scott Stanton 和Ray Johnson將Tcl/Tk移植到了Windows和Macintosh,于是Tcl就成了一個(gè)出色的跨平臺(tái)的開發(fā)環(huán)境;當(dāng)前,超過2/3下載Tcl的用戶是用于Windows開發(fā)。Jacob Levy和Scott Stanton仔細(xì)測試了輸入輸出系統(tǒng)并加進(jìn)了對Socket的支持,于是Tcl可以被廣泛的用于網(wǎng)絡(luò)應(yīng)用程序。Brian Lewis為Tcl腳本創(chuàng)建了一個(gè)字節(jié)碼(bytecode)編譯器,這使它的運(yùn)行速度提升了10倍。Jacob Levy開發(fā)了Safe-Tcl,一個(gè)強(qiáng)大的安全模型,使非信任的腳本能更安全的執(zhí)行。Jacob Levy和Laurent Demailly創(chuàng)建了一個(gè)Tcl插件,使Tcl腳本可以在web瀏覽器中運(yùn)行,我們創(chuàng)建了Jacl和TclBlend,使Tcl和Java可以緊密的工作在一起。我們還進(jìn)行了一些小的改進(jìn),如動(dòng)態(tài)加載,名稱空間,時(shí)間和日期支持,二進(jìn)制I/O,額外的文件操作命令,和一個(gè)改進(jìn)的字體機(jī)制。
當(dāng)我加盟sun后,許多人擔(dān)心Tcl是否會(huì)變成一個(gè)私有的語言,當(dāng)時(shí)在comp.lang.tcl上出現(xiàn)了許多熱烈的討論。幸運(yùn)的是,sun公司同意在源代碼論壇中繼續(xù)發(fā)放Tcl/Tk的核心代碼庫,并且sun一直信守諾言。隨著性能不斷提升的新版本的出現(xiàn),事實(shí)證明,Sun對Tcl的支持是不容質(zhì)疑的,它使得比該語言的發(fā)展速度超過以前任何時(shí)候。起初那些擔(dān)心逐漸被開發(fā)新功能的熱情所代替。
這些年,Tcl的使用者繼續(xù)地爆炸式增長。到1997年已經(jīng)有了數(shù)十萬的Tcl開發(fā)者;sun公司的FTP站點(diǎn)的Tcl下載率由1995年底的2000人每星期上升到1998年初的超過10000人每星期。很明顯,Tcl對我是一個(gè)巨大的商業(yè)機(jī)會(huì)。Tcl開放源代碼的發(fā)展?jié)M足不了Tcl社區(qū)中的許多要求。比如,幾乎沒有開發(fā)Tcl的工具,像培訓(xùn)和技術(shù)支持這樣的專業(yè)服務(wù)也僅僅是零散進(jìn)行的。許多重要的擴(kuò)展,如對ActiveX和CORBA的支持還沒有編寫出來。
?Scriptics(afreez注:公司的名字)
?1997年底,為了更好的發(fā)展Tcl,我決定離開sun創(chuàng)建一個(gè)完全關(guān)注于Tcl的公司。1998年1月,我和Sarah Daniels創(chuàng)建了Scriptics(即今天的 Tcl),由Sarah負(fù)責(zé)市場和營銷。一個(gè)月內(nèi),sun公司Tcl小組的約一半成員都跳槽加入了我們公司,我們開始開發(fā)TclPro,一套包括我們最初產(chǎn)品的開發(fā)工具。TclPro 1.0 于1998年9月完成。它在市場上的成功為公司的發(fā)展注入了強(qiáng)大的動(dòng)力。
Scriptics已經(jīng)取代了sun公司在開發(fā)Tcl核心工具上的角色,并且它將繼續(xù)像sun公司那樣免費(fèi)的發(fā)布它。1998年,Scriptics為Tcl8.0做了一些改進(jìn),修復(fù)了一些錯(cuò)誤并加進(jìn)了一些小的功能,比如可以更好的支持[Incr Tcl]擴(kuò)展。1999年4月,Tcl發(fā)布了第一個(gè)最重要的開放源碼的版本,Tcl/Tk8.1。這個(gè)版本加進(jìn)了對Unicode的支持(國際化),線性安全(用于多線程服務(wù)程序)和一個(gè)由Henry Spencer開發(fā)的全新的規(guī)則表達(dá)式包,該包包含了許多新的特性,也支持Unicode。Tcl成為第一個(gè)滿足企業(yè)中關(guān)鍵程序各方面要求的腳本語言。
Tcl:獲過大獎(jiǎng)的軟件
? 1998年春, 我聽到了令人振奮的消息,Tcl獲得了兩項(xiàng)大獎(jiǎng)。一個(gè)是ACM軟件系統(tǒng)大獎(jiǎng),獎(jiǎng)給每年的“具有長遠(yuǎn)影響的軟件系統(tǒng)”。以往這個(gè)獎(jiǎng)項(xiàng)的獲得者包括許多重要的系統(tǒng)如TCP/IP協(xié)議,第一個(gè)線性表,第一個(gè)電子制表軟件,第一個(gè)關(guān)系數(shù)據(jù)庫,萬維網(wǎng),Unix系統(tǒng),PostScript,Smalltalk。另一個(gè)是USENIX軟件工具用戶組織(STUG)大獎(jiǎng),這個(gè)獎(jiǎng)項(xiàng)獎(jiǎng)給年度優(yōu)秀的軟件工具。
Tcl核心團(tuán)隊(duì)的成立
?這一部分由Jeff Hobbs和其他人添加
?Scriptics于2000年5月更名為Ajuba解決方案(Ajuba Solutions),反映了公司的發(fā)展重點(diǎn)放在了一系列的基于Tcl的XML技術(shù)。Ajuba創(chuàng)建了基于Tcl的企業(yè)版的XML類服務(wù)器軟件,從這個(gè)方面來說,由于Tcl的成功,Ajuba也成為了犧牲品,之所以這么說是因?yàn)檫@個(gè)原因,后來它被Interwoven于2000年10月收購。不過Interwoven對開放源碼的軟件不感興趣,他們只關(guān)注XML和服務(wù)器技術(shù)。
在2000年的七月到十月期間,核心開發(fā)的“所屬權(quán)”發(fā)生了轉(zhuǎn)變,它從一個(gè)單獨(dú)的組織中脫離出來,屬于了一個(gè)廣泛的團(tuán)隊(duì)而不再屬于任何一個(gè)單獨(dú)的組織,并被廣為傳播。Tcl核心團(tuán)隊(duì)(Tcl Core Team)成立了,并建立了它的基本運(yùn)行程序。
有關(guān)Tcl的教程也得益于包含它的許多公司。一個(gè)典型的例子就是,Jeff Hobbs,前Tcl Scriptics/Tcl的代理人,跳槽到ActiveState(以發(fā)布Perl的產(chǎn)品和開發(fā)聞名)來領(lǐng)導(dǎo)他們的Tcl技術(shù)部,他的工作不僅在開源Tcl核心上,而且也推進(jìn)了許多由Scriptics開創(chuàng)的商業(yè)開發(fā)工具的發(fā)展。
總結(jié)
以上是生活随笔為你收集整理的The History of Tcl/Tk的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年区块链教育培训课程研究报告 |
- 下一篇: oracle数据库管理问题,请教三个问题