雖然我認為這個問題不適合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代碼“更密集”:)