Tcl Tk Introduction
eryar@163.com
摘要Abstract:Tcl/Tck腳本可以很容易實現用戶自定義的命令,方便的創建圖形化的用戶界面GUI,所以Tcl和Tk的應用領域幾乎覆蓋了圖形和工程應用的全部范圍,包括計算機輔助設計、軟件開發、測試、儀器控制、科學可視化及多媒體方面。即可以使用Tcl/Tk實現AVEVA中的PML類似的功能,允許用戶自己編寫簡單程序實現程序的二次開發。
關鍵字Key Words:AVEVA, PDMS, PML, Tcl/Tk, Script Modeling
一、PML of AVEVA
看到AVEVA的解決方案中有一個方便靈活的用戶自定義語言PML(the AVEVA Programmable Macro Language),通過PML可以根據不同的用戶需求來對程序進行擴展,而AVEVA則可以專注于核心模塊的開發與完善。這對軟件開發而言,是很有益處的,可以在滿足各種用戶多變的需求的情況下保證軟件的質量。使用PML實現一個簡單的窗口代碼及效果如下圖所示:
Figure 1.1 Hello World Form code of PML
Figure 1.2 A simple Form of PML
二、Tcl/Tk
Tcl表示“Tool Command Language”。在學習OpenCascade的過程中,看到OpenCascade的一個測試工具Draw Test Harness就是使用了Tcl/Tk來實現自定義的命令。通過自定義的命令,即可以對一些功能進行測試,如下圖所示,使用簡單命令,即可以生成圖形:
Figure 2.1 Draw Test Harness with Tcl/Tk
Netgen是一個用于網格剖分的程序,它的用戶界面也是用Tcl/Tk來實現的,效果也不錯,如下圖所示:
Figure 2.2 Pipe Model in Netgen
三、結論 Conclusion
Tcl和Tk一起為應用程序開發者和使用者提供了很多好處。首先是快速開發。很多有意思的應用程序完全可以用Tcl腳本編寫。這樣就可以在比C/C++或Java更高的層次上進行開發,Tk隱藏了C或Java程序員必須關注的很多細節。與低級工具相比,要使用Tcl和Tk所需要學習的知識更少,需要編寫的代碼更少。通過幾個小時的學習,Tcl/Tk新手用戶就可以創建有意思的用戶界面,很多開發人員從其他工具集轉而使用Tcl和Tk工具集后,應用程序開發所需要的代碼數量和開發時間都減少了90%。
Tcl和Tk適于快速開發的另一個原因在于Tcl是解釋語言,使用Tcl應用程序時,可以在運行中生成和使用新腳本,而無需重新編譯和重啟應用程序。
Tcl可以跨平臺,這意味著在一個平臺如Linux上開發的程序,在大多數情況下可以不加改動的在另一個平臺上運行,如在Windows上或Macintosh上運行。
Tcl還是第一種擁有原生Unicode支持的動態語言。因此,Tcl可以處理這個世界上幾乎所有的書面語言。
使用Tcl的另一個顯著優點在于它和它的大多數擴展都是免費的開源軟件,允許所有人免費下載、查看、修改及再發布。
另外,Tcl還可以讓應用程序很容易地擁有強大的腳本功能。例如為要一個已經存在的程序添加腳本功能,您只需要實現幾條新的Tcl命令,用來為應用程序提供相應的基本功能。然后,把您的新命令和Tcl庫鏈接起來生成全功能的腳本語言,該語言就包含了Tcl提供的命令和您編寫的那些命令。
Tcl還為用戶提供了方便。一旦學習了Tcl/Tk就能為任何Tcl和Tk應用程序編寫腳本,只需要學習該應用程序特有的少數幾條命令即可。這使得更多的用戶有能力對應用程序進行個性化改造和強化。
如果不借助別的軟件自己來實現一個AVEVA中的PML類似的功能,可能要涉及很多知識,如編譯原理,計算機系統等很多很多,編寫出來的程序即使能用,可能質量也不好。正如荀子所言:“君子性非異也,善假于物也”;牛頓也說“我不知道在別人看來,我是什么樣的人;但在我自己看來,我不過就像是一個在海濱玩耍的小孩,為不時發現比尋常更為光滑的一塊卵石或比尋常更為美麗的一片貝殼而沾沾自喜,而對于展現在我面前的浩瀚的真理的海洋,卻全然沒有發現。如果說我比別人看得更遠些,那是因為我站在了巨人的肩上。”如果借助于巨人的力量,使用Tcl就可以方便的實現PML類似的功能,現在需要做的就是對前人知識的學習與使用。