¿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.

  • No se pudo encontrar org.jetbrains.kotlinx: kotlinx-html: 0.6.4
  • ¿Cómo creo una enumeración de una cadena en Kotlin?
  • Convertir la function de raíz imperativa en estilo funcional en kotlin
  • Android Kotlin create class implement Parcelable da un error en 'anulación' del método writeToParcel
  • Cómo hacer una list KOTLIN con lists de corchetes API JSON
  • Kotlin lazy var throwing ClassCastException: kotlin.UNINITIALIZED_VALUE
  • ¿Hay alguna forma de reutilizar una instancia de Job?
  • Cómo usar Mockito para Kotlin Fragment / Activity para simular kotlinx.android.synthetic views
  • ¿Cómo puedo configurar el layoutmanager en RecycleView usando kotlin?
  • ¿Cómo traducir Array <T?> A List <T>?
  • ¿Cómo establecer la pestaña BottomNavigationView pnetworkingeterminada en Kotlin?