你说的是安卓吧,谷歌在安卓上用kotlin来延续java,不再用java的api,而是用kt,dalvik上的语言
那这么说,你说sc比kt灵活,强大,好,姑且就算你说的对,sc比kt强大且灵活
但是
kt有两个重要的特性,是当时sc没有的
一个是可以await也就是coroutine,kt三大吹里面coroutine出镜率极高
还有一个top level function,顶层成员,尤其是函数
sc的dotty,也就是scala 3,我只看到glavo转过来说,会加入顶层函数,但是coroutine以及基于coroutine实现的await,估计不会自己做了,那目前进展上看,我估计java的loom还会更早出来,到时候sc直接用loom就是了,反正loom也没有增加任何的关键字,jvm上所有语言都兼容java的api,所以可以直接用java的loom
那是这样,在客户端开发里面,await是一个极为重要的功能,你自己动手做一下gui等客户端的开发就知道了,有await和没有await,两码事
那谷歌其实也仅仅是在安卓上用kt来延续生命,但是我们都知道,谷歌在做fuchsia,而fuchsia钦定的gui是flutter,语言是dart,dart还为flutter做了优化,所以谷歌说dart是根据客户端优化的语言,这个应该在flutter的一些宣传材料上可以看到
那flutter里面的dart有没有上述两个特性呢?
当然有
所以为什么选择kt,因为kt比sc更适合做gui,客户端开发的语言,有我们在开发gui,app时候所需要的特性,也就是await/coroutine和顶层函数
oop在gui以及游戏等领域的开发,是非常重要的,你说的scala更为强大灵活,那是因为sc比kt在fp这一个paradigm上走得更远,但是我开发个gui,app,你说搞fp,你确定吗?
gui,客户端开发,基本上都是跟java相像的语言,比如dart,swift,kotlin这些,都可以简单认为是java++,因为他们都保留了java的绝大多数特性,然后在此基础之上,再做了发展和延续
而且java最早也是做gui出名的,applet那些,像mvc等设计模式,最早就是用在客户端gui上,v就是ui嘛
这些东西,你动手做一下就知道了