一、DSL介绍
1、DSL语言:领域全称特定语言,domain specific language
UML建模语言,它是用来将现实中的模型转换为计算机中的模型,也是DSL语言的一种。
更常见的是HTML,这也算是DSL语言的一个分支,他是专门来做浏览器可识别的网页的。
Groovy也是DSL语言的一个分支。Groovy主要是用来做脚本,和phython类似。
HML和XML也sgroovy语言的一种
2、特点:与系统语言是两个极端,系统语言是希望解决所有问题,比如java既希望能做android开发,右希望能做服务端开发等等。DSL语言初衷就是解决特定领域的问题
3、DSL与通用编程语言的区别
DSL就是解决特定领域内的问题,所以DSL是纵向,往深度发展的。
通用编程语言是向宽度更广方向发展的。
DSL语言核心思想:
求专不求全,解决特定问题
二、groovy介绍
1、是一种基于JVM的敏捷开发语言
java语言是将java文件编译为字节码文件让JVM去运行,而groovy与java文件是完全一样的,同样可以将groovy编译的字节码文件交给JVM去执行。groovy还可以直接将groovy源文件解释执行。就像javascript一样。
2、结合了Python、Ruby和Smalltalk的许多强大的特性。
所以groovy写脚本也非常强大。
3、groovy可以与java完美结合,而且可以使用java所有的库
三、groovy特性
1、语法上支持动态类型,闭包等新一代语言特性
动态类型和闭包是groovy最显著的特点之一,而且groovy的闭包比其它所有语言的闭包都要强大
2、无缝集成所有已经存在的Java类库
因为groovy同样是基于JVM的,所以,它可以和java无缝地去兼容。如果愿意的话,完全可以用java的语言和语法写groovy的程序,但是一般是不会这么去干的,虽然groovy与java语法类似,但是groovy做了好多修改,所以还是有一定的不同的
3、既支持面向对象编程也支持面向过程编程
面向对象是因为groovy是基于java的扩展,而java是面向对象编程的,所以groovy也是支持面向对象编程的。
而面向过程是因为groovy又集合了python、rubby这些脚本语言的特性。所以groovy也是支持面向过程编程的。
这就要看最终要将groovy用在什么用途了。如果要用groovy开发应用程序,就要用groovy的面向对象编程,而如果希望用groovy去写脚本,那么就使用的groovy的面向过程编程。
四、groovy的优势
1、一种更加敏捷的编程语言
在语法上做了很多处理,在java中很多需要写的东西在groovy中是可以省略的,所以可以用更少的代码写出更多的功能
2、入门非常容易,但功能非常的强大
入门容易指在掌握java的前提下掌握groovy非常简单
3、既可以作为编程语言,也可以作为脚本语言
因为groovy既支持面向对象开发,也支持面向过程开发,groovy既集合了java,也结合了phython等脚本语言的特性
4、熟练掌握java的同学会非常容易掌握Groovy