脚本语言的发展.doc_第1页
脚本语言的发展.doc_第2页
脚本语言的发展.doc_第3页
脚本语言的发展.doc_第4页
脚本语言的发展.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

脚本语言的发展主流的脚本语言目前主流的脚本语言有以下几种: Groovy Ruby PythonGroovy Groovy 是 JVM 的一个替代语言 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。目前的 Groovy 版本是 1.6.3,在 Java 1.4 和 Java 5 平台上都能使用,也能在 Java 6 上使用。Groovy 的一个好处是,它的语法与 Java 语言的语法很相似。虽然 Groovy 的语法源于 Smalltalk 和 Ruby 这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。(在这点上,Ruby 与 Groovy 不同,因为它的语法与 Java 语法差异很大。)许多 Java 开发人员非常喜欢 Groovy 代码和 Java 代码的相似性。从学习的角度看,如果知道如何编写 Java 代码,那就已经了解 Groovy 了。Groovy 和 Java 语言的主要区别是:完成同样的任务所需的 Groovy 代码比 Java 代码更少。(有时候会少很多!)RubyRuby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。Python Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。它的名字来源于一个喜剧,也许最初设计Python这种语言的人并没有想到今天Python会在工业和科研上获得如此广泛的使用。著名的自由软件作者Eric Raymond在他的文章如何成为一名黑客中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。这的确是一个中肯的建议,对于那些从来没有学习过编程或者并非计算机专业的编程学习者而言,Python是最好的选择之一。这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。Groovy介绍Groovy 特点开始使用 Groovy 时,会发现它使日常的编程活动变得快了许多。Groovy有如下这些特点: Groovy 的松散的 Java 语法允许省略分号和修改符。 除非另行指定,Groovy 的所有内容都为 public。 Groovy 允许定义简单脚本,同时无需定义正规的class 对象。 Groovy 在普通的常用 Java 对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。 Groovy 语法还允许省略变量类型。Groovy 的新特性虽然 Groovy 允许省略 Java 语法中的一些元素,但也增加了一些新特性,例如本地集合、内置的正则表达式和闭包。在标准的 Java 代码中,如果想要创建一个项列表,首先要导入java.util.ArrayList,然后程序化地初始化 ArrayList 实例,然后 再向实例中添加项。在 Groovy 中,列表和映射都内置在语法中 无需导入任何内容。正则表达式也不需要额外的导入或对象;它们可以通过特殊的 Groovy 语法来创建。闭包对于任何 Java 开发人员来说,闭包都是一个令人兴奋的新技巧。这些神奇的构造将会包含在未来的 Java 发行版(很可能是 Java 7)中,成为正式的 Java 语法,但现在已经可以在 Groovy 中使用了。可以将闭包 想像为一个代码块,可以现在定义,以后再执行。可以使用这些强大的构造做许多漂亮的事,不过最著名的是简化迭代。使用 Groovy 之后,就有可能再也不需要编写Iterator 实例了。动态的 Groovy从技术上讲,Groovy 可能是您最近听说过的类型最松散的动态语言之一。从这个角度讲,Groovy 与 Java 语言的区别很大,Java 语言是一种固定类型语言。在 Groovy 中,类型是可选的,所以您不必输入String myStr = Hello; 来声明 String 变量。除此之外,Groovy 代码还能在运行时轻松地改变自己。这实际上意味着,能够在运行时轻松地为对象指定新方法和属性。这一编程领域称为元编程,Groovy 能够很好地支持这种编程方式。在学习本教程的过程中,您将了解到关于 Groovy 的动态性质的更多内容。现在惟一要补充的是,您会惊讶地发现,在 Groovy 会使操作 XML 或普通的 java.io.File 实例变得非常轻松。一体两面用 Groovy 编写的任何内容都可以编译成标准的 Java 类文件并在 Java 代码中重用。类似地,用标准 Java 代码编写的内容也可以在 Groovy 中重用。所以,可以轻易地使用 Groovy 为 Java 代码编写单元测试。而且,如果用 Groovy 编写一个方便的小工具,那么也可以在 Java 程序中使用这个小工具。Groovy是用Java实现的开源脚本语言并且和它联系紧密.它需要JDK 1.4. Groovy向Java添加了许多Ruby和Python脚本语言的特性. Groovy的特性包括动态类型(dynamic typing), 闭包(closures),简单对象导航( easy object navigation)和更加简洁的Lists和Maps语法.Groovy是由James Strachan和Bob McWhirter创造的. James还参与了许多其他开源项目的开发,其中包括Jelly, dom4j, Jaxen, Betwixt和Maven. Bob是Jaxen和Drools (一个开源的面向对象的JAVA规则引擎) 的创始人. 目前最新稳定版为Groovy1.5。这个Groovy版本包含了很多Java5的特性(Annotation,泛型,Enum.),并修正了很多错误。Ruby介绍Ruby 的设计理念减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计 Ruby 语言的 Matz 的一个首要的考虑;其次是良好的界面设计。他强调系统设计必须强调人性化,而不是一味从机器的角度设想。“ 人们特别是电脑工程师们,常常从机器着想。他们认为:“这样做,机器就能运行的更快;这样做,机器运行效率更高;这样做,机器就会怎样怎样怎样。”实际上,我们需要从人的角度考虑问题,人们怎样编写程序或者怎样使用机器上应用程序。我们是主人,他们是仆人。 ”遵循上述的理念,Ruby 语言通常非常直观,按照编程人认为它应该的方式运行。SemanticsRuby 是完全面向对象的:任何一点数据都是对象,包括在其他语言中的基本类型(比如:整数,布尔逻辑值),每个过程或函数都是方法。Ruby 的特点 完全面向对象在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数. 变量没有类型Ruby的变量可以保有任何类型的数据。 任何东西都有值不管是数学或者逻辑表达式还是一个语句,都有值 命名规则Ruby的变量有一定的规则,以$开头的一定是全局变量,以开头的都是实例变量,而以开头的是类变量。常数则以大写字母开头;这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。 已经定义的类可以在运行时修改Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单立方法。class MyClassdef the_methodgeneral methodendendmc = MyClass.newdef mc.the_methodspecial for this instance.endmc.the_method #special for this instance使用Ruby可以写出简短而有功能强大的代码#下面的方法用来完成两个矩阵的乘积def matrix_mul(matrix1,matrix2)result=Array.new(0.matrix1.length).each |i| temp=Array.new;(0.matrix2.length).each|j| tmp=0; (0.matrix10.length).each |k| matrix1k.to_f*matrix2kj.to_f ; temptmp; resulttemp return resultendRuby 与 PHP由于PHP自身的混乱,很多PHPer对PHP开始感到对PHP的不安,有一部分人听说了Ruby on Rails的好处之后,便跑来学了,PHP与Ruby究竟是什么关系呢?Stefan Mischook宣称PHP社区的人们不必恐慌于Ruby近期的增长和普及。他表示尽管Ruby和PHP都是使得开发Web应用更简单的脚本语言,但每种语言都吸引着不同的听众。Ruby有一点抽象,因此无法满足大多数PHPer的需要。 Stefan同样提到PHP程序的面向对象版本仅仅增强了它的力量。“面向对象的构造对建立清理设计是有好处的,这使得保持和促进代码重复利用的可能性变的更简单。代码的重复利用经常被奉为OOP思想的优势,但是我从Java世界里看到的是,它常常不能达到这样的要求。OOP增加了复杂性和管理费用的开销,当你通过OOP做某些事情时,你不得不写更多的代码来完成它。”相反的,Ruby中的每一个东西都是对象。“核心语言有着非常复杂的构造,需要使用Ruby去有效地理解,Ruby的力量同样也是它的缺点。 他同样非常有信心的指出Ruby很好的适用于面向对象设计,因为它是作为一个面向对象的语言而建立的。但是,面向对象的能力已经被程序的框架限定了。 “我认为PHP是最好的选择,因为这已经得到了很好的认可包括许多开发环境,开源的项目,简单的集合等等。Ruby刚刚开始进入主流,在Ruby和Web开发中还是有些基本的问题。例如Ruby和APACHE的结合仍然还不稳定,但是还有些已知的问题并且可以提出争论。”Python介绍Python的设计理念可扩充性可说是Python作为一种编程语言的特色。新的内置模块(module)可以用C 或 C+写成。而我们也可为现成的模块加上Python的接口。Python可以使用户避免过分的语法的羁绊而将精力主要集中到所要实现的程序任务上。Python也被称为是一门清晰的语言。因为它的作者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:There should be one- and preferably only one -obvious way to do it. 有意思的是,这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(Theres More Than One Way To Do It)完全相反。这似乎是人们常把Perl和Python互相比较的重要原因。Python语言是一种清晰的语言的另一个意思是,它的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这样有意的强制程序员养成良好的编程习惯。其中很重要的一项就是Python的缩进规则。例如if语句:if ageAPI,能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。 图形处理,有PIL、Tkinter等图形库支持,能方便进行图形处理。 数学处理,NumPy扩展提供大量与许多标准数学库的接口。 文本处理,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。 数据库编程,程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论