首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

13.5  总结和注记

Summary and Concluding Remarks

脚本语言最主要的用途是控制其他软件组件之间的协作。虽然它们的发源可以追溯到20世纪60年代的解释性语言,但却一直没有受到计算机科学学术界的关注。然而,随着人们越来越关心程序员的生产率,伴随着万维网的诞生,对脚本语言的兴趣和关心在学术界和工业界都在迅猛增长。商业软件开发商和开源社团在这方面都取得了许多重要进展,脚本语言很可能主导21世纪的程序设计领域,使传统的编译语言越来越被看作是一些专用工具。

与传统的语言强调效率相比,脚本语言更强调表达的灵活性和丰富性。它们的常见特点包括同时支持批处理和交互式应用,表达的简洁性,缺少声明,简单的作用域规则,灵活的动态类型化,容易访问其他程序,复杂丰富的模式匹配和串操作功能,以及高级数据类型。

在本章的开始我们回顾了脚本的历史发展,从命令解释器或20世纪70年代的外壳程序开始,随后很快进入文本处理和报表生成工具。我们特别考察了“Bourne again”外壳bash和Unix的工具sed和awk。还提出了一些特殊应用领

域如数学和统计,脚本语言在那里被广泛用于做数据分析、可视化、建模和模拟。而后我们转到了主导今天脚本语言的三个领域:“粘接”(协作)应用、配置和扩充,以及万维网的脚本。

按“市场占有率”来说,Perl几乎无疑是使用最广的通用脚本语言,它被广泛用于报表生成、粘接和服务器端的(CGI)脚本。Python和Ruby似乎都正在变得越来越流行,而Tcl仍然得到很强的支持。有几种脚本语言,包括Scheme、Python和Tcl,都被广泛用作复杂应用系统的功能扩充语言。历史上Visual Basic一直被选作微软平台的脚本语言,现在也有可能会随着C#和各种跨平台语言的发展而逐渐被抛弃。

Web脚本有许多种形式。在HTTP连接的服务器端,通用网关接口(CGI)标准允许一个URI去指名一个程序,用它来生成动态的内容。另一方式是嵌入脚本的web页,通常用PHP来写,它能以用户不可见的方式创建动态内容。为了降低服务器的负担,或者为了改进交互响应的状况,也有一些脚本在客户浏览器里执行。JavaScript是这一领域的主导语言,它使用HTML文档对象模型(DOM)操作web页里的元素。对于要求更高的任务,大部分浏览器都可以按指挥去运行

设计和实现

坏些就是好些

有关脚本与“系统”语言之间相对优劣的讨论,最终都变成了以表达能力和灵活性为一方,以编译时安全和性能为另一方的利弊权衡。它也可能被离题地说成是“快而不净的”或“精心打磨的”应用。这一争论的一个有趣论述可以在Richard Gabriel的一篇广泛传阅的随笔中找到(www.dreamsongs.com/ WorseIsBetter.html)。1989年在Lucid公司工作时,Gabriel发现自己常常被问到为什么Unix和C已经如此成功地吸引了这么多用户,而Common Lisp(Lucid公司主要关注的语言)却没有。他在解释中对比了“正确的东西”(以Common Lisp为例)和“坏些就是好些”哲学(以C和Unix为例)。“正确的东西”强调完全、正确、一致和优美的设计。“坏些就是好些”强调软件的快速开发,使之能在大多数时间做用户需要的大多数事情,并基于领域经验逐渐调整和完善。大多数脚本(特别是Perl)符合这种“坏些就是好些”哲学(Ruby和Scheme的拥护者可能不同意)。Gabriel并没有确定自己的观点,他的随笔为双方都做了辩护。

Java小程序,让它全权负责处理“屏幕实际范围”中某个部分。随着万维网的持续发展,XML很可能变成存储和传递结构化数据的标准媒介。XSL,即所谓可扩充风格纸语言,也将在变换和格式化动态内容方面扮演主要的角色。

由于正在快速发展,脚本语言已经从前面各章描述的功能最强大而又最优美的机制中得到了许多东西,包括第一级函数和高阶函数、废料收集、无限的生存期、迭代器、表内涵描述,以及面向对象,且不说扩充的正则表达式,如字典、集合、元组等高级数据结构。随着技术的不断进步,脚本语言也将变得更加无处不在,并始终作为语言创新的最主要阵地。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论