.kt与.java还有.groovy_Scala、Groovy、Clojure 、Kotlin 分别解决了 Java 的什么痛点?

我们扩展一下吧,光说这几个语言一点都不爽

目前jvm上的语言大概有以下几个,主要的几个

groovy, ruby, javascript, python, scala, kotlin, ceylon,还有latte(支持国产)

那是这样,以java为分界线

分为j--和j++

j--什么意思呢?弱化线程这些功能,将静态类型改成动态类型,增加程序员的自由度

这一类可以统称为脚本语言

jvm上的脚本语言有:groovy, ruby(jruby), javascript(nashorn)和python(jython)

解决了什么痛点呢?就是java写起来太繁琐,简化它的语法,让你可以很快写出代码来

比如动态类型

每次我们拿到一个变量,都要想想是什么类型,在java里面

对于脚本来说,这不是问题,直接var myVar = ....就行了

然后说,后面要复用这个变量,那怎么办?静态类型要重新声明一个

动态不用,直接myVar = 就可以赋值了

其实这一类还不仅仅是focus在脚本上的语言,高级语言也有相关脚本

比如kotlin-script和scala-script,latte-script

j++是什么意思呢?扩展java,让java在oop上走得更远,同时加入fp的功能,以及其他的语法糖

不妨把这一类称之为better java

jvm上这一类的语言有:scala,kotlin,ceylon和latte(请支持国产)

比如scala

scala里面的万事万物都是真的对象,java里面原始数据类型不是真对象

但是在scala和kotlin里面是,ceylon和latte里面应该也是,不是很确定

然后呢,比如jee里面经常有人用的,set/get方法的entity bean,对吧?

这个就有语法糖实现,比如case class(scala)和data class(kotlin)

还有fp的一些特性,比如最后一个参数可以用{}写在()外

还有inline方法等,基本上都是在java的基础之上,扩展了新的特性和功能

最后,建议你还是要学习vert.x

学了vert.x之后,对多语言的亲和力是增强了很多

不要局限在java这一个小天地内,外面世界更精彩

出来看看

更新一下:其实从vert.x支持的语言你能看出来,有些语言已经开始掉队了

一个是jython,一个是clojure,这两个在vert.x 2的时候都是支持的

3版本开始,因为找不到合适的开发和维护人员,暂时不再支持

分开说原因,jython属于脚本,对吧?但是python本身的语法比较蛋疼

最明显的,没有花括号,这是败笔,不管怎么辩解

python在jvm上,跟groovy的竞争是不可避免地败下阵来

groovy反而越发火热起来,google,netflix什么都在使用groovy

而jvm上的python jython则显得落寂,因为python有的那些好用的功能

groovy都有,而且groovy有花括号,ide友好,可以编译也可以解释执行

同时groovy将兼容java语法放在非常优先的位置上

所以当我们在jvm上选择脚本的时候,一般都会选择groovy,而放弃python

所以j--阵营里面,python开始掉队

然后看j++,这一块里面,pure fp的语言,clojure开始显得落寂起来

为啥?不管社会朋克青年怎么批判java,啰嗦繁琐,怎样滴

java的巨大成功是不容否认的,所以想说单独搞一个语言跟java语言匹配

啊,就像clojure这样做一个相对pure的fp语言,跟相对pure的oop语言,一起合作

这样做,还不如干脆扩展java,在oop的基础之上,加入fp的features

目前看,这种是主流,因为pure fp没有太多人喜欢,不管学术界怎么个吹

总之受众有限,你要玩你自己玩去,工业界考虑的是投入和产出

不是理论上怎么滴高明,没有人在乎那个东西,一堆人要吃饭,不是来跟你搞理论的

所以scala逐步压过clojure,现在kotlin,ceylon这些也都是走在scala的这条道路上

国产的latte也是这条路,基本上都用脚走出了选择

所以前面在说j++的时候,clojure压根就没提,其实clojure这种相对pure的fp

应该可以算作是第三条路,可以说是another java的路

只是这条路走的语言太少,算了吧,学术界要apply到工业界上去

也得老老实实用oop,改用时候还是要用

而曲高和寡的pure fp/lisp的一种clojure也正在面临着jython一样的尴尬

找不到人开发和维护,所以vert.x也就没办法继续支持下去

所以还是要看vert.x,多好玩啊,一堆语言在同一个平台上比武

随着版本的升级,开发人员和社区人员的贡献,有些语言就会表现出不足来

掉队的有,新增的也有啊,vert.x 3的scala和kotlin其实都是社区的贡献

latte也是我们中国人自己做的啊,多好玩

关注vert.x,就请关注我的专栏:白木城全栈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值