当前位置:文档之家› 脚本语言的发展

脚本语言的发展

脚本语言的发展主流的脚本语言目前主流的脚本语言有以下几种:GroovyRubyPythonGroovyGroovy 是 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 语言替代品。

1PythonPython 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。

它的名字来源于一个喜剧,也许最初设计Python这种语言的人并没有想到今天Python会在工业和科研上获得如此广泛的使用。

著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。

这的确是一个中肯的建议,对于那些从来没有学习过编程或者并非计算机专业的编程学习者而言,Python是最好的选择之一。

这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。

目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。

Groovy介绍Groovy 特点开始使用 Groovy 时,会发现它使日常的编程活动变得快了许多。

Groovy有如下这些特点:Groovy 的松散的 Java 语法允许省略分号和修改符。

除非另行指定,Groovy 的所有内容都为 public。

Groovy 允许定义简单脚本,同时无需定义正规的class 对象。

Groovy 在普通的常用 Java 对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。

Groovy 语法还允许省略变量类型。

Groovy 的新特性虽然 Groovy 允许省略 Java 语法中的一些元素,但也增加了一些新特性,例如本地集合、内置的正则表达式和闭包。

在标准的 Java 代码中,如果想要创建一个项列表,首先要导入<code>java.util.ArrayList</code>,然后程序化地初始化<code>ArrayList</code> 实例,然后再向实例中添加项。

在 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_method"general method"endendmc = MyClass.newdef mc.the_method"special 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...matrix1[0].length).each {|k| matrix1[k].to_f*matrix2[k][j].to_f };temp<<tmp}; result<<temp}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是最好的选择,因为这已经得到了很好的认可——包括许多开发环境,开源的项目,简单的集合等等。

相关主题