领域特定语言DSL介绍
DSL全称domain specific language(领域特定语言)。DSL并不是一个全新概念,像专门做计算的matlab,统一建模语言uml,超文本标记语言html,都是属于DSL的一种。Groovy也是DSL的一个分支,专门用来做脚本。
DSL语言及特点
DSL解决的是特定领域的专有问题,和系统开发语言是相辅相成的。
DSL与通用变成语言的区别
DSL语言的特点就是解决某一特定领域内的问题,DSL是纵向往深度方向发展,通用系统编程语言是横向以更广的应用范围发展,这是最大的区别。
DSL核心思想:求专不求全,解决特定问题。
Groovy 介绍
- Groovy是一种基于JVM的敏捷开发语言
可以将groovy编写的源文件编译成class字节码文件,然后交给JVM去执行,也可以直接将groovy源文件解释执行。
- 结合了Python,Ruby和Smalltalk的许多强大的特性
Groovy是对Java的扩展,语法和Java很类似,可以以学习Java的方式去学习groovy,可以起到事半功倍的效果。
- Groovy可以与Java完美结合,而且可以使用java所有的库
Groovy特性
- 语法上支持动态类型,闭包等新一代语言特性
- 无缝集成所有已经存在的Java类库
- 既支持面向对象编程也支持面向过程编程
基于面向对象编程是因为groovy是基于java的扩展,而Java是可以面向对象编程的,所以groovy也是支持面向对象编程的。面向过程是因为groovy结合了Python,Ruby这些脚本语言的特性,所以也是支持面向过程编程的,主要看最后将groovy用在什么用途,如果使用groovy开发应用程序,就需要用groovy的面向对象编程这些特性,如果用groovy写脚本,使用的是groovy的面向过程特性。
Groovy优势
- 一种更加敏捷的编程语言
它在语法上做了非常多的语法糖,有许多在java中必须写的东西,在groovy中是可以省略的,我们可以用更少的代码写出同样的功能。
- 入门非常容易,但功能非常强大
在掌握java的前提下,再去学习groovy,那是非常简单的,甚至可以搬用java那一套写groovy程序
- 既可以作为编程语言也可以作为脚本语言
groovy即结合了java特性,也结合了Python,Ruby等脚本语言的特性
- 熟练掌握java会非常容易掌握groovy