冒号课堂§5.3:动态语言 - 编程入门网
切面式编程,这对于支持元编程的动态语言来说非常自然,因为切面式编程一般都是通过元编程来实现的。”冒号进一步指出,“而逻辑式编程语言的代表Prolog,同样有动态语言的特征。至于事件驱动式编程嘛,对支持callback的语言来说都不是难事。”
引号高兴地看到:“九大编程范式无一漏网啊!” 叹号较为感性:“静态语言给人的感觉是沉稳持重,而动态语言则活泼轻快。如果同时用静态语言和动态语言编程,岂不培养出双重人格?” “程序员本就是双重人格的。”冒号淡淡地说,“你总结得没错,两类语言的风格的确大相异趣:待静态语言披盔戴甲、备马抬**之际,动态语言已衣袂飘飘,长剑出手了。不过,如果是应付强敌的长期大规模作战,静态语言还是有优势的。” 冒号课堂§5.3:动态语言(3)时间:2011-06-27 BlogJava xyz98引号听声辨音:“这意味着动态语言不适用大型应用开发吗?“ “这么说未免有些武断。”冒号并不同意,“诚然,动态语言的语法比较宽松,相对容易出错。但也有人辩称,动态语言的代码量少于相应的静态语言,bug应该更少。有人认为动态语言调试不如静态语言方便,有人却说随着IDE的日益强大,出错几率和找错成本也在减少。谈到运行效率,动态语言虽然多为解释型语言(interpreted language),但许多也提供了与Java类似的字节码编译(bytecode compilation)甚至JIT编译(just-in-time compilation)。动态语言在某方面甚至还更胜一筹:譬如一个类的接口如果发生变动,在静态语言中所有该类的子类和一些相关类都可能需要重新编译、连接,这在大型应用中是非常耗时的,而动态语言则大可不必,这当然不足为奇——在它眼里类结构本来就是能动态改变的。除此之外,越是大型的程序,越耗费人力和时间成本,客户需求的变化也越大,因而对程序的灵活性、适应性和开发周期提出了更高的要求。动态语言在这些方面比静态语言更有优势,并且还能作为快速原型(rapid prototyping)开发的工具。” “快速原型开发?”问号一脸的疑惑。 冒号简作介绍:“这是一种软件开发的方式。举例来说,为了快速搭建一个系统,以适应不断变化的客户需要,可以先采用开发效率更高的动态语言。在交付时再将其转化为编译型的静态语言。如果系统对性能的要求不高,这种转化至多是局部的。有的干脆一字不易,不仅省了当下的时间,以后维护起来也更方便。” 逗号耍起了贫嘴:“这就叫:替补变成了主力,配角变成了主角,媳妇熬成了婆婆。” 叹号开始担忧起来:“听您这意思,动态语言优点突出而弱点并不突出,这样下去静态语言还有市场吗?” 冒号坦然道:“动态语言小快灵的风格的确吸引了越来越多人的注意,也渐渐走入静态语言的世界。Java平台和.Net平台不仅为Ruby和Python等动态语言铺设了跑道,而且为培植诸如Groovy等动态语言提供了土壤。同时,Java和C#本身也融进了越来越多的动态特征。” 句号断言:“静态语言这种融合性结合内在的安全性、稳定性,以及较高的性能、成熟度和接受度,都决定了它不可能被动态语言完全取代。” “对!”冒号坚定地表示赞同,“当脚本语言披上动态语言的彩衣,昔日不起眼的毛毛虫便羽化成碟,开始飘舞在众人追逐的目光之中。但静态语言也绝不会淡出人们的视线,它如矫健的苍鹰,依然有搏击长空的雄力。程序员只要保持严谨的作风和开放的心态,既有稳如泰山的马步,又有一跃凌空的飞腿,静如处子,动如脱兔,如履平地般游走于高高的梅花桩上,绝无跌落之虞。” 一股豪情在众人心中荡漾开来。 冒号看了看时 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |