产生原因
使用 Unix 系统的有些人发现他们一直在重复
的敲入类似的命令,所以有人就发明了“脚本”这东西。它的设计初衷是“批量式”
的执行命令,你在一个文件里把命令都写进去,然后执行这个文件。可是不久人们就发现,这些命令行其实可以用更加聪明的方法构造,比如定义一些变量,或者根据系统类型的不同执行不同的命令。于是,人们为这脚本语言加入了变量,条件语句,数组,等等构造。“脚本语言”就这样产生了。
什么是脚本语言
“脚本语言”与“非脚本语言”并没有语义上,或者执行方式上的区别。它们的区别只在于它们设计的初衷
:脚本语言的设计,希望能让程序员快速
完成程序(往往是作为一种临时的“补丁”
)的编写工作。它的设计者并没有考虑
把它作为一种“通用
程序语言”,没有考虑
用它构建大型的软件
,它的设计初衷往往是目光短浅
的(这些语言里面充满了历史遗留下来的各种临时的 hack,几乎没有“原则”可言。Unix 的 shell(比如 bash,csh,……),一般都是这样的语言)。这些设计者往往没有经过系统的训练,有些甚至连最基本的程序语言概念都没搞清楚。相反,“非脚本”的通用程序语言,往往由经过严格训练的专家甚至一个小组的专家设计,它们从一开头就考虑到了“通用性”,以及在大型工程中的可靠性和可扩展性。
特点
鉴于脚本语言的设计初衷,它一般有以下特点:
- 简单、易学、易用
- 通常是解释运行而非编译(一般认为
不需要编译器,直接通过
解释器执行
的语言就是脚本语言) - 和其它语言编写的程序组件之间通信功能很强大
实际应用
-
在当今现实的工程项目中,脚本语言却占据了它们不该占有的地位。
许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序。很多公司使用 shell 脚本来处理整个软件的“build”过程或者测试过程,其实是相当错误的决定。因为一旦这种 shell 脚本日益扩展,就变得非常难以控制。经常出现一些莫名其妙的问题,却很难找到问题的所在。Linux 使用 shell 脚本来管理很多启动项目,系统配置等等,其实也是一个历史遗留错误。所以,不要因为看到 Linux 用那么多 shell 脚本就认为 shell 语言是什么好东西。
-
我认为脚本语言是一个祸害,它几乎永远是错误的决定。我们应该尽一切可能避免使用脚本语言。在没有办法的情况下(比如老板要求),也应该在脚本里面尽可能的使用通常的程序设计原则。
常见的脚本语言
- C Shell
- JavaScript
- Perl
- PHP
- Python
- Ruby
参考文献
http://www.yinwang.org/blog-cn/2013/03/29/scripting-language 什么是脚本语言