第五课 语言小谈(3)
5.3动态语言——披着彩衣飞舞的脚本语言
故凡天下之理,欲向动上求静,静上求动 ——《蔡牧堂·发微论》
关键词: 动态语言,静态语言,脚本语言
摘要: 动态语言简谈
!预览
·程序是为终端用户服务的,而脚本是为程序员服务的
·动态语言秉承的一个理念是:优化人的时间而不是机器的时间
·待静态语言披盔戴甲、备马抬枪之际,动态语言已衣袂飘飘,长剑出手了
·当脚本语言披上动态语言的彩衣,昔日不起眼的毛毛虫便羽化成碟,开始飘舞在众人追逐的目光之中
?提问
·脚本与程序的区别是什么?
·脚本语言有什么特点?为什么适合作粘合语言?
·动态语言有什么特点?它与脚本语言究竟有什么分别?
·动态语言也能用于大型应用开发吗?
·动态语言会最终取代静态语言吗?
:讲解
叹号急不可耐地问:“现在可以谈动态语言了吧?”
冒号感言:“曾几何时,动态语言还只是陪太子读书的角色,那时候它们的名字是‘脚本语言’。近来却迅速崛起,俨然有与静态语言分庭抗礼之势。”
问号忍不住问道:“动态语言与脚本语言是一回事吗?”
“相比动态语言定义上的模糊,脚本语言的概念还是比较明确的。”冒号回避直接给出答案,“脚本(script)的提法,是为了区别于一般的程序(program)。Perl的发明者Larry Wall不愧为语言学家,对此有一个精彩的说法:‘A script is what you give the actors, a program is what you give the audience’。直译为:脚本是给演员看的,节目是给观众看的。此言妙在一语双关——program兼有‘节目’和‘程序’的意思。”
句号领会其意:“这里的演员指的是程序员,观众指的是用户。换言之,程序是为终端用户服务的,而脚本是为程序员服务的。”
“正解!”冒号肯定道,“脚本最常见的形式是壳脚本(shell script),在非Unix类的操作系统中也称为批处理文件(batch file)。”
“批处理文件倒是很熟悉,壳脚本听起来就怪怪的。”逗号嘀咕着。
“那是因为你在Windows的世界里长大,听不惯Unix的方言。”冒号一语道破缘由,“操作系统的内核称为核(kernel),出于安全考虑不便直接与用户交互,因此裹上一层壳(shell),即人们常说的命令行解释器(command line interpreter)。壳脚本是在壳上运行的脚本,扩展了命令行下可执行的命令。它最初主要是内建(built-in)命令的组合,用于系统程序的调度,是系统管理员的必备武器。其后,壳脚本也发展到用于应用程序的调度、连接、调试等,成为粘合(glue)语言。”