¿Por qué Kotlin soltó la palabra key "nueva"?

¿Por qué Kotlin soltó la nueva palabra key? Hace más difícil ver la diferencia entre una llamada de function y una asignación de object.

Los Convenios de Codificación de Kotlin establecen claramente que:

  • uso de camelCase para los nombres (y evitar guiones bajos en los nombres)
  • los types comienzan con mayúsculas
  • methods y properties comienzan con minúsculas

Si sigue lo anterior y trata al constructor como una function normal que se puede llamar, es decir, val invoice = Invoice() la new palabra key se vuelve networkingundante . Una vez que se acomode con la convención, queda claro qué está haciendo un código.

De hecho, incluso en el código Java tendrás muchas asignaciones implícitas que ocurren justo debajo de una llamada a un método como Collections.singleton(o) o Guava's Lists.newArrayList() así que no creo que tu argumento sobre la visibilidad de la asignación sea mejor con el new la palabra key es completamente válida.

(IMO) Se realizó porque NO existe una diferencia real entre las funciones y la construcción del object, es decir, nada impide que una function asigne un object (y a menudo lo hacen).

Un buen ejemplo son las funciones de fábrica. Estas funciones crean nuevos objects, pero de ninguna manera son constructores de classs.

AFAIK, la new palabra key se creó debido a una experiencia negativa con C \ C ++, donde las funciones, devolver objects nuevos, tienen que estar marcadas especialmente (por convenciones de nombres) para no olvidar (liberar) manualmente la memory. En un lenguaje de administración automática de memory como Java \ Kotlin no es una preocupación.

Varios otros idiomas no tienen palabras key new (Python, Scala, tal vez Ceilán) y las personas que han cambiado a esos idiomas nunca parecen perderlo. Sé que no.

  • Método de arranque estático de la actividad android en Kotlin
  • Android se cuelga después de intentar crear una versión de lanzamiento
  • Cómo replace un FrameLayout con un fragment con Kotlin en Android
  • Mutidex y Kotlin
  • String :: toByteArray () no se comstack en Kotlin
  • kotlin usando types generics de class de datos
  • Kotlin anko onclick es una reference no resuelta
  • Convirtiendo el método Java "Callable <T>" a Kotlin
  • Kotlin constructor secundario
  • No se permite declarar una tarea 'limpia' personalizada cuando se usan los complementos estándar de ciclo de vida de Gradle
  • La creación de la aplicación Kotlin falló debido a "No se pudo inicializar la class com.intellij.ide.highlighter.JavaFileType"