虽然我认为这个问题不适合Stack Overflow,因为它倾向于主要产生基于意见的答案,但这里有一个尝试:你有两种不同的语言,特别是关于类型系统,以及两个完全独立的编译器实现 . 所以期望它们具有“相同”的编译速度已经是一种谬论 . 我在评论中链接了另一个检查Scala编译器速度的问题 . 基本上,它取决于许多因素,例如类型推断器的工作量和特定代码库所需的隐式解析 .
然而,我运行了一个非常快速的例子:我在Kotlin和Scala中编译了一些Project Euler解决方案 . 这让我对整个项目进行了新的重新编译:
6 seconds in Kotlin (在连续重建中下至 5 seconds )
10 seconds in Scala (在连续重建中下至 7 seconds ) .
源代码的来源:
我拿了this code for Kotlin,改变了很多进口,因为显然Kotlin标准库在此期间发生了变化,以便进行编译 .
我拿了this code for Scala,并将其转换为sbt项目,每个问题都包含在 object pXY extends App { ... } 中,并将其放在包 euler 中 .
然后我删除了只存在一个解决方案的文件,最终导致了26个问题 . 这两个项目都是使用 Rebuild Project 使用IntelliJ IDEA 15 CE编译的 .
为了对这个业务提供另一个视角,我在源上运行了 wc (字数统计):
// lines words bytes
931 3603 33087 total // Kotlin
261 1166 6472 total // Scala
所以现在你可以争辩说Kotlin编译器需要处理“更多源代码”或者Scala代码“更密集”:)