¿Por qué Kotlin comstack más rápido que Scala?

Cuando leemos la descripción en wikipedia del lenguaje de progtwigción de Kotlin, indica que:

El líder de JetBrains, Dmitry Jemerov, dijo que la mayoría de los idiomas no tenían las características que estaban buscando, a exception de Scala. Sin embargo, citó el lento time de compilation de Scala como una deficiencia obvia. [4] Uno de los objectives declarados de Kotlin es comstackr tan rápido como Java.

¿Cómo lograron ese objective? ¿Y por qué el time de compilation de Scala es tan lento que era inaceptable para los creadores de Kotlin? O, en otras palabras, ¿qué características del comstackdor de Scala lo hacen más lento que el comstackdor de Kotlin?

Aunque creo que la pregunta no es adecuada para Stack Overflow ya que tenderá a producir principalmente respuestas basadas en opinión, aquí hay un bash: usted tiene dos idiomas diferentes, especialmente con respecto al sistema de tipo, y dos implementaciones de comstackdores completamente independientes. Entonces, esperar que tengan el "mismo" tipo de velocidad de compilation ya es una falacia. He vinculado en mi comentario a otra pregunta que examina la velocidad del comstackdor de Scala. Básicamente, depende de muchos factores, por ejemplo, la cantidad de trabajo que requiere el tipo inferencer y la resolución implícita de una base de código específica.

Sin embargo, ejecuté un ejemplo muy rápido: compilé algunas soluciones de Project Euler en Kotlin y Scala. Esto me dio una nueva compilation de todo el proyecto:

  • 6 segundos en Kotlin (hasta 5 segundos en sucesivas reconstrucciones)
  • 10 segundos en Scala (hasta 7 segundos en sucesivas reconstrucciones).

Origen del código fuente:

  • Tomé este código para Kotlin , cambié muchas importaciones porque al parecer, la biblioteca estándar de Kotlin cambió mientras tanto para hacer que comstackra.
  • Tomé este código para Scala , y lo convertí en un proyecto sbt con cada problema envuelto en un object pXY extends App { ... } y lo coloqué en un package euler .

Luego eliminé los files para los que solo existía una solución, y terminé con 26 problemas. Ambos proyectos fueron comstackdos con IntelliJ IDEA 15 CE usando Rebuild Project .


Para dar otra perspectiva sobre este negocio, ejecuté wc (conteo de palabras) en las fonts:

 // lines words bytes 931 3603 33087 total // Kotlin 261 1166 6472 total // Scala 

Así que ahora puedes argumentar que el comstackdor de Kotlin necesitaba procesar "más código fuente" o que el código de Scala era "más denso" 🙂

  • ¿Cómo funcionan las funciones de extensión de Kotlin?
  • Herencia genérica de Kotlin
  • Progtwigción funcional: cómo continuar el context para una cadena de reglas de validation
  • Kotlin: llaves de varias expresiones (o declaraciones)
  • Scala require () equivalente en Kotlin
  • Companion se beneficia de la posibilidad de implementar interfaces
  • Biblioteca Headless de una fuente para JVM y JavaScript
  • Comstackción manual de JAR para Scala & Kotlin
  • Convierta la function de Scala a la function de Kotlin
  • Sistema local de administración de packages Java en Python PIP style?
  • Kotlin VS Scala: Implementar methods con parameters constructor primarios