Groovy,Clojure和Kotlin都是基于jvm的语言,那他们在实际项目中的运用场景有什么区别?

Groovy,Clojure和Kotlin都是基于jvm的语言,那他们在实际项目中的运用场景有什么区别? - RednaxelaFX 的回答 - 知乎
https://www.zhihu.com/question/29818569/answer/45729205
简单说,在JVM上不想用Java,喜欢某种别的平台上已有的语言但想要更Java化的版本的话:
喜欢Ruby => 用Groovy
喜欢LISP,喜欢STM功能 => 用Clojure
喜欢C++ => 用Kotlin
Scala的话看评论↓

Groovy比较讨好来自Java的程序员的一点是:用它写代码可以渐进的从接近Java的风格进化为接近Ruby的风格。使用接近Java风格写Groovy时,代码几乎跟Java一样,容易上手;而学习过程中可以逐渐用上各种类似Ruby的方便功能。

//
Scala自成一派,没直接对应的原型语言。它比带面向对象功能的函数式语言更面向对象(例如OCaml),比带函数式风格功能的面向对象语言更函数式(例如C#、Java 8)。

//koltin和cpp有什么相同点吗
有很多。一个词概括就是“复杂”。它的设计在逐步变得合理,但并非一开始就是这样的。

例如说Kotlin的类的继承设计。一开始Kotlin设计的类继承是允许像C++那样的受限很少的多重继承。我正好参加了2011N年的JVMLS,而Kotlin的两位设计者在那个会议上介绍Kotlin的设计特性时被大家狂吐槽,其中最重点吐槽的就是这个多重继承的设计。设计者一边在说C++的设计不好,一边描述的Kotlin的设计其实就跟C++的一样…

现在的Kotlin改为很受限的基于trait的多继承设计,这就好多了。

其它许多特性也是从大杂烩状态开始的…就跟C++的状况类似。

//
还有python,groovy号称是jvm上的python


Scala、Groovy、Clojure 、Kotlin 分别解决了Java 的什么痛点? - Aaron 的回答 - 知乎
https://www.zhihu.com/question/48633827/answer/118542587
scala有两种风格,一种是“the better java”,也就是保持java大体风格,但是灵活运用语法糖来简化代码。这个角度就是解决了java冗长的特点。
还有一种就是函数式为主了, pattern matching,闭包,高阶函数等。这个角度就是对java的扩充,让函数式进入jvm。后来java8也支持函数式不过还是scala实现的更早。

groovy是动态类型脚本语言,可以直接当做脚本跑。语言也比较灵活,所以常常拿来当配置文件用,比如gradle,或者连接数据库参数之类。

clojure就是jvm上的lisp方言,除了它是lisp之外好像也没解决什么痛处,所以一直想不通为何有人拿他做工程。。。


你可能感兴趣的:(Groovy,Clojure和Kotlin都是基于jvm的语言,那他们在实际项目中的运用场景有什么区别?)