冒号课堂§5.3:动态语言

第五课 语言小谈(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)语言。”

时间: 2024-11-18 06:54:37

冒号课堂§5.3:动态语言的相关文章

冒号课堂§5.4:语言误区

第五课 语言小谈(4) 5.4语言误区--语言的宗教情结 爱而不知其恶,憎而遂忘其善 --<吴兢·贞观政要> 关键词:编程语言,宗教,程序员,架构师 摘要:关于编程语言的一些误区 !预览 ·如果说编程范式是一种文化,那么编程语言更像是一种宗教--尽管它本不该是 ·语言只有两种:一种怨声载道,一种无人问津 ·对待一门语言的态度应该是:与其抱怨争执,不如扬长避短 ·过分拔高一种语言与抹煞语言之间的差别是两种极端,皆为秕言谬说 ·这些人若有幸拜关公为师,他们最艳羡的一定他的赤兔马和青龙偃月刀,或许还

冒号和他的学生们(连载16)——动态语言

16.动态语言 Freedom is not free --Kelly Strong 叹号急不可耐地问:"现在可以谈动态语言了吧?" 冒号感言:"曾几何时,动态语言还只是陪太子读书的角色,那时候它们的名字是'脚本语言'.近来却迅速崛起,俨然有与静态语言分庭抗礼之势." 问号忍不住问道:"动态语言与脚本语言是一回事吗?" "相比动态语言定义上的模糊,脚本语言的概念还是比较明确的."冒号回避直接给出答案,"脚本(scri

冒号课堂§6.4:后台脚本

6.4后台脚本--敏捷开发的利器 操千曲而后晓声,观千剑而后识器 --<文心雕龙·知音> 关键词:后台脚本, Perl,PHP,Python,Ruby,RoR,LAMP 摘要:简谈Perl.PHP.Python和Ruby !预览 语言的发展趋势一定是动静结合.刚柔并济 Perl凝练晦涩,Python优雅明晰,Ruby精巧灵动,PHP简明单纯 或许优雅正是来自对细节和规范的重视 (RoR)与Ruby结合之后,便如一只猱身而上灵猫,立刻衬托出Java和.NET大象般的身影 ?提问 Perl.Pyt

冒号课堂§5.2:数据类型

第五课 语言小谈(2) 5.2数据类型--规则与变通 操纵于规矩之中,神明于规矩之外 --<俞震·古今医案按> 关键词:数据类型,静态类型,动态类型,Duck类型,强类型,弱类型,类型安全 摘要:关于数据类型的讨论 !预览 ·Duck类型的哲学是:是什么不重要,重要的是能干什么 ·将一个会叫会游的家伙放进池塘看起来不算坏主意,但如果一艘轮船趁机也轰隆隆地开了进来,事情恐怕就不那么美妙了 ·静态类型检查类似"疑罪从有"的有罪推定制,动态类型检查类似"疑罪从无&quo

理解Javascript的动态语言特性

  这篇文章主要介绍了理解Javascript的动态语言特性,需要的朋友可以参考下 Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行:javascript提供eval()函数,用于动态解释一段文本,并在当前上下文环境中执行. 首先我们需要理解的是eval()方法它有全局闭包和当前函数的闭包,比如如下代码,大家认为会输出什么呢? ? 1 2 3 4 5 6 7 var i = 100; function myFunc() { var

理解Javascript的动态语言特性_javascript技巧

Javascript是一种解释性语言,而并非编译性,它不能编译成二进制文件. 理解动态执行与闭包的概念 动态执行:javascript提供eval()函数,用于动态解释一段文本,并在当前上下文环境中执行. 首先我们需要理解的是eval()方法它有全局闭包和当前函数的闭包,比如如下代码,大家认为会输出什么呢? var i = 100; function myFunc() { var i = 'test'; eval('i = "hello."'); } myFunc(); alert(i

试问:动态语言是否将会挽救Swing?

动态 据国外网站报道,动态语言是否将会挽救Swing?Swing是否需要挽救? Julian Doherty 通过陈述JRuby可以挽救Swing开始了这场讨论.2003年,Joshua Marinacci发文列出了Swing失败的原因: ·Swing应用建立缓慢 ·Swing设计管理器很恶心 ·Swing应用很难维护 ·Swing功能太广泛 ·没有自身特质 ·Swing应用历史纪录比较糟糕 Doherty 指出动态语言,尤其是Ruby,能帮助解决这些问题.回应Doherty的观点, pinde

ASP等动态语言网站做SEO时站内搜索应该注意的问题

WEB动态语言有很多,ASP,PHP,.NET,JSP等,之所以在标题中着重提到ASP,是因为目前市面上大多数的企业站点还是采用ASP来做的,这个语言因为学习的门槛较低,又有ACCESS的完美配合,所以是大多数程序员首选的企业站点语言.我们不在这篇文章中讨论ASP的安全性或技术层面的东西,我仅在这篇文章中分享最新学习到的一个理念,就是ASP网站的站内搜索功能对SEO的影响. 因为SEO对静态语言的收录有一定的优先(虽没有绝对性,但由于同样的配置上,静态页面的访问速度快于动态页面,所以从用户体验角

在Operamasks中使用ELite和JRuby动态语言的秘笈

随着微软正式发布IronPython,推出基于第一款基于动态语言的开源编程工具:紧接着Sun又正式对外宣布收购JRuby,Ruby将成为JVM支持的第一个动态语言,动态语言一直围绕在我们的身边.如何使用动态语言给我们编写JavaWebUI带来帮助?什么样的动态语言能够适合Java开发团队呢?SirsiDynix的架构师TravisJensen通过五条粗略的标准来评估Groovy,JRuby,Jython这三种动态语言在Java上的表现. 1.动态语言与Java之间的交互 2.IDE工具的支持 3