1、Tcl/TkTcl 的最大特点我觉得就其语法格式极其简单甚至可以说僵化,纯粹的 [命令 选项 参数] 形式,名副其实的 Tool Command Language。不过正因为如此,学习掌握起来就极为容易了,而且这种形式上的简单却大大简化了解析器的复杂性,使得对Tcl 脚本的支持非常容易实现,这些应该也是大多数EDA工具采用Tcl 为其脚本环境的原因吧。但另一方面说,这种形式的简单不太对一些很喜欢使用语法技巧的人的胃口。Tcl 的另一特点就是通过Tk对跨平台用户界面的支持了,一来有丰富的用户界面元素,二来又可以跨平台。这两点合在一起就非常吸引人了,难怪很多流行的EDA工具也采用Tk来实现其用户界面了,比如Mentor的ModelSim。不过就ModelSim的使用经验来看,Tk界面似乎不太稳定。
2、PerlPerl 我觉得是脚本语言当中,语法,功能,效率三方面的赢家。Perl的语法源自C/C++,所以对于为数众多的C/C++程序员来说,上手非常容易。而且设计者在设计之初就特别考虑了语法的灵活性和多样性,目标就是使其能够媲美自然语言,正是这种考虑成就了今天Perl语法的灵活而多样。在数据类型和动态性方面,Perl也支持的不错。功能上,Perl的扩展模块之多可说是脚本之最,虽然Perl本身没有用户界面支持,但是通过Tk扩展包完美地嵌入了Tk,弥补了这方面的缺憾。效率方面,Perl解释器的执行速度是比较快的,而且可以通过PerlCC等转为C程序编译为本地执行文件,这就大大超越了一般脚本所能提供的运行效率。
3、VBS/VBA出于对VB语言的厌恶,我对VBS/VBA一直不怎么顺眼,我一直觉得拘泥于BASIC这种早期的语言衍生出来的Visual Basic天生就不会如C/C++般好用。也许很多人会强调VB的简易性,动态性和功能的丰富。但简易性和动态性,我可以去用脚本语言,功能的话,只能用在Win32平台上的VB能够走多远呢?而其运行效率更是不能和C/C++相比。所以说VB其实就是编译型语言和脚本语言结合的产物。若不是微软的大力推广,这门语言很难到达现在这个高度。VBS是VB的一个脚本化版本,弥补命令行功能的缺陷。VBA则是作为诸如 Office 之类的应用程序当中的脚本环境。我对他们的评价如同VB。这两种语言都只能用于特定环境,远不及Tcl的通用性。