style="text-indent:2em;">大家好,感谢邀请,今天来为大家分享一下java程序员为什么使用Groovy的问题,以及和不建议使用groovy的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
本文目录
groovy、scala和clojure等JVM模型并发模型本质都是线程和锁模型吗
groovy、scala和clojure等脚本语言虽然语法各不相同,是被重新设计过的,但它们同属java系,是需要jvm虚拟机作为平台支撑来运行的。关于并发它们也各自在语法层面可能也被redesign,但解析到jvm层面还是依靠其完成并发的处理,该部分我也正研究当中,有心得时会写一篇博客来记录一下。建议多看一下JVM
java程序员为什么使用Groovy
1.Groovy可以兼容java。
是的,你可以用java语法来编写groovy,最后还可以生成class文件,直接用java调用。你会说,这有什么好的,不就是改了个后缀名么?呕,也许吧…但是它的亮点当然不是这个,它的亮点是你可以在Groovy里面直接用java语法混搭写,当然不是很推荐这样做的。
2.Groovy是动态的。
不需要java的反射,不需要冗长的代码,不需要各种trycatch异常,你就可以实现各种神奇的事情。Groovy的class可以这样新增一个方法,或者调用它。
Java、Groovy、Scala的未来会怎样
Scala有两个流派:FP和BetterJava。FP派喜欢scalaz,喜欢shapeless,喜欢typelevelprogramming。这一派特点是程序高度抽象但可读性奇差。适合PL研究者验证概念,适合业余项目自嗨,也适合学习PL概念。不适合多人协作的工程项目。BetterJava派以前之所以存在,单纯是因为Java语法设计太烂,烂到无法忍受。而JVM上当时也没有其它更好的选择。那些告诉你“写了n年Java以后,我切换到Scala,现在每天都活在幸福中”的人,基本都是这一派。但ScalaasabetterJava的工程性也不好,因为特性太多太复杂,除非有高手带队,否则很难只用到它“betterjava”的那个子集。解决一个问题的同时,往往引入更多的问题。所以会有Java8发布以后Linkedin所有新项目全部回归Java这种事情。
Groovy是动态语言,工程性比Scala还差。但是因为有Gradle这种被广泛采用的项目,所以会存活下去。但是请记住爱因斯坦曾经说过:“任何超过两百行的新项目,都不应该采用动态语言开发,无论是Ruby,Python,Perl,Groovy还是Clojure”。哦,对了,也不要用Clojure。因为它是动态语言,而且是Lisp系的动态语言。“Lisp系”意味着,读书的时候可以靠它开眼界。毕业工作以后,对于这一类语言,能躲多远就躲多远。
Kotlin看上去靠谱。它不讲究FP有多纯,目标就一个:“abetterjava”。Kotlin在“到底引入多少FP特性”上面做得恰到好处。看到Kotlin,我马上就想起了这个演讲:“Pleasestoppollutingourimperativelanguageswithpureconcepts”。
Kotlin有以下好处:
1.强大的IDE。而且是JetBrains第一方支持,不是3年更新一次的第三方插件;
2.库多生态强。Kotlin的设计者非常重视和Java的互操作,所以Kotlin号称可以无缝衔接所有Java库。
3.宇宙第一运行时:JVM。4.Android上不能用Java8的新语法,Kotlin恰逢其时的出现,抓了一波完美的timing。
如果Kotlin依靠Android开发爆发,那服务器端,大数据界,也会收益,最后多面开花,势不可挡。但是Kotlin刚出来,到底有没有它自称的那么好用还待观察。另外,Kotlin社区现在集中力量攻坚Android,在服务器和大数据方向没什么靠谱项目。所以还是得用Java8。总之,“魔镜啊魔镜,谁是JVM上最好的语言”之最后决战,将是Java10vsKotlin(Java9在语法特性上已经输了)。
groo什么颜色
Groo这个词汇实际上不是一个色彩名称,而是肯尼亚的一种民族语言。因此,它并没有一个具体的颜色定义。
如果你是在用英文中的“groovy”这个词汇,它的意思是“时髦的”、“迷人的”等,与颜色也无关。
如果你指的是一种特定的产品或产品线,那么你需要了解该品牌或产品的官方定义。不同品牌或产品可能会用不同的颜色来定义自己的品牌形象或产品设计。因此,了解具体的上下文非常重要。
如果你还想了解更多这方面的信息,记得收藏关注本站。