Freeze_Dolphin
稍微了解了一下kotlin,但是感觉与其多学一门语言还不如用纯java写项目?反正目的都能达到

洞穴夜莺
kotlin似乎更加简洁,写得更少

Itsusinn
因为kotlin的诸多特性和语法糖,比如协程,高阶函数,函数式编程
当然还有语法糖DSL

Yaossg
你知道 build.gradle 是 groovy 语言写的吗

William_Shi
每一种语言都有存在的意义
你的这个问题简直就像是
“有了Java,为什么还要有Kotlin?”
建议自己搜索后再来提问

洞穴夜莺
你大可使用c语言编写一切程序

耗子
本帖最后由 耗子 于 2020-10-19 21:02 编辑

看了楼上的这些回答,大都是从Kotlin的功能和优点出发做出回答。作为一名纯Java的拥护者,我有必要从Kotlin的缺点和不足出发,回答这个问题。

首先,Kotlin并不兼容Java的语法,这让学习Java的人难以接受,这意味着他们要抛弃在Java的开发习惯。而Groovy就可以同时兼容Java的语法。

其次,Kotlin独立于Java平台,引入了很多新的特性、语法糖和约定,Java尚且经常有人吐槽难学,Kotlin的难度恐怕在此之上。

再者,Kotlin对于Java库的互调用在我当年使用时深受诟病,不知道现如今修复与否。

最后,Kotlin开发者大多数曾经都是忠实的Java开发者,我认为使用Java可以顾及Java和Kotlin两个受众群,增加曝光度。

希望各位能够对于语言好坏的提问予以善意公正的回答,没有最好的语言,只有最合适的语言。

2020年10月19日补充
参考资料:从 Java 到 Kotlin,再从 Kotlin 回归 Java(原文为2018年5月31日发布)



ARSpark
在Java项目中确实应该使用Java,否则Maven,Gradle在build时会比纯Java麻烦很多。

QiuJay
本帖最后由 QiuJay 于 2020-10-12 12:28 编辑

楼主不用在意这种,自己喜欢哪个就用哪个,然后可以慢慢接触新的,能写出好的程序,实现需求,用什么语言不重要。
毕竟在 jvm 环境中,kotlin 最后也是编译成了 class 文件,你说他会比 java 执行效率快吗?并不会,只是开发者在开发时比 java 简洁些而已。

所以,开发时,喜欢用哪种语言就用哪种就可以了。

另外,kotlin 开发的程序,必须要把 kotlin run time 打到包中,不然会运行不了。java 不用是因为要运行 java 程序,机器上需要有 jre ,其实一个道理。

双色心情
本帖最后由 双色心情 于 2020-10-13 15:12 编辑

这要看kotlin这东西产生的根源,在Android开发那边。(说白了就是因为java易主带来的版权问题,搞出了这个可以抛开Java的新语言。)
我目前只知道“更好的树叶”新版本应用了kotlin的库。
我也找不出MC为什么要用这个的理由来……

mzmzmz
Kotlin更加简洁方便
但也有人不喜欢这种风格或懒得学这种语言
都可以用
基本上没区别
看个人喜好而已

QiuJay
如果只是参与 minecraft 插件的编写,java 就够了,kotlin 那些什么特性,语法糖什么的,能用到多少,看你用途吧!

如果是参与 java 项目开发,看项目需求,有啥要求没,一个人参与想用啥就用啥,如果是多人项目,看团队

kotlin 完全兼容 java,可以使用 java 所有的东西,所以这种看自己选择了

Itsusinn
本帖最后由 Itsusinn 于 2020-10-23 23:22 编辑

当你使用了kotlin编写的库之后,就不得不用kotlin了,(一旦使用了dsl,就会被它的魔幻吸引

Itsusinn
本帖最后由 Itsusinn 于 2020-10-23 23:16 编辑
耗子 发表于 2020-10-11 16:02
看了楼上的这些回答,大都是从Kotlin的功能和优点出发做出回答。作为一名纯Java的拥护者,我有必要从Kotlin ...

的确kt调用java可以,java调用kt却极其困难。
主要的问题在协程库(有https://github.com/Him188/kotlin-jvm-blocking-bridge 来解决这个问题)
和诸多@JVM注解的使用上(JetBrains是十分注重java与kt的互操作的)

耗子
Itsusinn 发表于 2020-10-23 23:15
的确kt调用java可以,java调用kt却极其困难。
主要的问题在协程库(有https://github.com/Him188/kotlin-j ...

为了方便交流与沟通,使用Java语言是好的