Groovy 入门介绍

Java平台可以说是目前功能最强大的,应用范围最广的生态系统之一,Java语言运行的JVM在不断的改进下功能变得越来越完善,性能也越来越强大.在一般的认识中,支撑Java运行的JVM是专为Java开发的,其实这是不完全正确的,JVM的确是主要为支撑Java运行的目的下开发的,但是并不带代表只能运行Java.实际上只要能把一种语言编译成符合JVM规范的字节码,那么这种语言就能在JVM上运行,并享受Java强大的生态体系的便利.

目前,有大量的语言可以被编译后运行在JVM上.我们将这些语言称作JVM语言. JVM语言有很多,有直接原生运行在JVM平台上的Scala,Groovy,Kotlin,Clojure等,也有间接运行在JVM上的非原生语言:Jython,C++,Pascal等

尽管Java语言带给开发人员很多的便利,在发展中不断的改进语法和功能,满足程序开发的要求.但是我们还是需要一些其他语言,作为对Java的有力补充.比如在现在函数式,动态类型,元编程需求强烈的情况下,Java就不是非常适合,要么语法啰嗦而且需要一些第三方依赖包要么压根就很难实现.而如果我们换一个JVM语言,比如Groovy,那么我们现在就可以获得这些功能

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy代码能够与Java代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库,直接接入强大的JVM生态.Groovy目前在Apache基金会的托管下发展,目前取得了广泛的使用,比如Spring原生支撑Groovy编写后端应用,Gradle自动化构建工具和Grails快速web开发框架等.

在计算机编程语言的早期,计算机物理硬件的限制下,静态类型的编译型语言是程序开发选择的必然,因为动态类型和解释性这两种语言特点只是面向人类不是面向机器的,优势在于对人友好而对机器不友好,在运行时对机器的性能要求较高.不过随着机器性能的提高,物理硬件无论在价格上还是在性能上都有了难以想象的提升,这时一些早就出现了的动态解释性语言开始流行起来,典型的就是Python,Ruby,JavaScript等,这类语言开发简洁大大的节约开发人员的时间与精力,降低了软件开发的人力成本,相比硬件花销,当下人力成本远远高度多.

以前,开发人员选择动态的编译型的语言就一位这花时间学习新语言,并离开JVM体系.这在Scala,Groovy,Kotlin这些语言大规模普及后,出现了变化.如果我们使用Groovy我们在享受新的语言特性的时候,完全没有学习成本和离开自己熟悉的JVM技术生态的担忧.

groovy是动态的,类型可选的语言,当然类型可选的意思是说我们编写的时候可以不指定类型,由运行时动态的确定.本身Groovy还是强类型的语言.而动态指的是Groovy运行时是可以动态解释执行的,在运行前我们还是需要先将groovy代码初次编译为JVM 字节码.

我在下面简单的以程序员入门一种语言的典型代码为例,向大家演示java和groovy的区别:

++推荐使用IDEA编译并执行++

Java

1
2
3
4
5
public class HelloWorld1 {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

Groovy

1
2
3
4
5
6
7
8
/**
* 第一个Groovy程序,打印Hello World
*/
class HelloWorld {
static void main(args){
println "Hello World,Groovy is a great JVM Lang"
}
}

Groovy 脚本

1
2
// 第一个Groovy Script,打印Hello World
println("Hello World,Groovy is a great JVM Lang")

image
image
image
image