既生Java,何生Groovy?

这周接手了组里一个旧项目,Javadoc显示这是从2017年开始编写,@author显示的是一位前端员工的名字,他在我入职前已离职,好像是去了腾讯。前端

我十分好奇,为何前端人员的名字会出如今后台代码里?问了下X叔,告知多是当时该同窗正在转后端,而后人手不够,就由他来写了。后端

上面都是题外话。ruby

我浏览了一下,项目是用Groovy写的,我以前没有接触过Groovy,可是做为和Java同样运行在jvm上的语言,阅读两者代码不会有障碍。在格式方面,Groovy提供了更多的语法糖,让开发者可以更加愉悦地编写。微信

可是做为维护者,则偏偏相反。好比,Groovy用到了动态类型,这对于维护者阅读理解和调试都增长了必定的难度。架构

下面我想从两方面谈起,一是既生Java,何生Groovy?两者有什么区别?二是在开发前,如何进行语言选型。jvm

Java自1995年诞生以来,遇到过几回重大波折,但都一一化解,而且一路高歌猛进,成为当前具备不二地位的老大哥。既然老大哥有着众多拥趸,那么千秋万代,岂不美哉?设计

可是,有人的地方就有江湖,语言也是,尤为以PHP信徒最为猖獗,这是后话。3d

Groovy诞生于2004年,是一种JVM上的替代语言,这里的替代不能理解为取代,而是一种对原有语言的完善和补充。因此说,Groovy的诞生不是为了革命,而是一种改良。调试

Groovy改良了什么?cdn

Groovy的语法与Java很类似,基本上只要你会Java,你就能读懂Groovy,甚至能直接着手写。可是其设计理念是源于smalltalk和ruby,从这个维度来看Groovy更像是一门胶水语言。因此能够这么理解,它博采了其余门派的一些优势。

Groovy最大的特色是支持动态类型,相较于Java,它更简洁,表达能力也更强,具体特性能够搜索了解,这里暂不赘述。短时间来看,它能够缩短你的开发周期,提高你的效率,可是长期来看,可能会致使一些问题,好比我如今维护就很吃力,一部分缘由也是由于我菜。

你们可能会萌生这样一个问题:对于这两者,在开发时如何选用呢?

首先是技术选型,这是架构师的任务,学问比较高深,须要必定的技术视野和经验积累,而咱们做为我的开发者或者是初级工程师,这方面比较欠缺,因此不敢自做主张。不过在开发除工做之外的本身的小项目时,能够尽可能去自我培养这一种能力。

在语言选型上,有人说,超过200行代码的项目都不该该使用动态类型,虽然有一点夸张,但仍然有一些道理的,俗话说:“动态类型一时爽,代码重构火葬场”。有些代码写完后,一个月后回头再看,只有天知地知,你不知由于我也不知。

我认为,对于我的开发或者2-3人小团队合做,并且不用长期维护的项目,写法自由松散,追求速度是高效的。此时,Python、Ruby、Groovy这类的语言手到擒来,好不快活。可是对于中大型项目,时间跨度较长的,仍是应该范式优先,即便Java有那么一点笨重。

首发于个人微信公众号:字节流

相关文章
相关标签/搜索