Sping Boot 与Kotlin和Java有什么区别?
Kotlin是您可以选择使用https://start.spring.io启动应用的三种语言之一。因此,Sping Boot 团队支持它。我用它开发了一些微服务,据我所知,最后一切都很顺利,但我希望其他开发人员能提供一些反馈,因为我试图说服我的新团队使用Kotlin启动我们的新微服务。
优点:
- 零安全性
- 更清晰的代码
- 瓦尔/var
缺点:
- Mockito对Kotlin不友好(我切换到mockk)
- 代码覆盖率不是开箱即用的(我们必须开发自己的插件)
- Java比Kotlin发展得更快
2条答案
按热度按时间hzbexzde1#
因为Kotlin只是Maven的一个依赖和插件(就是这样!)。它是一种非常好的,紧凑的,易于理解的语言,去除了Java提供的所有语法脂肪(而不是语法糖)。
从5.0.0开始,Kotlin获得了Spring的一流支持,这实际上意味着它在代码正确工作方面具有与Java相同的保证。
Kotlin本身具有大量的互操作性功能,可以与任何现有的Java库顺利集成,这意味着您有相同的选择自由。
Kotlin的Java互操作是惊人的,并且绝不是Jet Brains的事后想法。因此Kotlin与Spring配合得很好,Spring为Web应用程序提供了很多样板功能,特别是Sping Boot 。
Kotlin有一个更加紧凑的语法,它的类型系统通过空安全,密封类和不可变/可变集合的区别允许更健壮的代码,这些都大大减少了任何项目的开发时间。
t2a7ltrp2#
主要区别在于:使用Kotlin,你是在用Kotlin编程...使用Java,你是在用Java编程。Spring使用了Kotlin独有的一些语言特性来简化某些操作,但我不认为你会因为这些额外的好处而选择一种语言。在大多数情况下,没有区别。Spring很好地支持这两种语言。
更新:我想我应该补充一下,Kotlin确实给整个Spring带来了一些小问题,只是因为Spring实际上是用Java编写的,并且最初设计用于通过Java使用。但是就像你使用Spring和Kotlin的优点一样,这些小缺点同样不应该决定你选择使用哪种语言。
我认为你应该问的是“我应该使用哪种语言?”而不是Spring。我的公司正在用Kotlin编写新的模块,因为我们认为它比Java好得多。但是我们有很多遗留的Java代码,我们选择在大多数情况下不在单个模块中混合语言,所以我们仍然用Java编程。你必须自己做决定。根据语言本身和现有的代码库来决定你想用什么语言编程,而不是Spring如何使用它。Spring可以很好地使用任何一种语言。
有很多文章和博客在比较这两种语言,列出它们相对的优点和缺点。我建议你尽可能多地阅读。这里没有“正确”的答案。(...这就是为什么我知道这个问题会因为基于观点而被关闭).试试Kotlin.见鬼,也试试Groovy和Scala.为自己“活”出利弊然后决定什么对你最有效
顺便说一句,你把“让Java比Kotlin发展得更快的风险”列为Kotlin的一个缺点。我认为风险是在另一个方向。与Kotlin和其他替代语言相比,Java发展得非常缓慢。这就是为什么你看到它在追赶......最终将替代语言中已经存在多年的功能引入到语言中。