¿Qué aporta Kotlin que no aporta Java?

Ante la pregunta de qué aporta Kotlin que no aporta Java, la respuesta es muy simple: Simplicidad.

Con Kotlin se puede hacer mucho más por poco, es decir, empleando menos código, lo que hace que a menor cantidad de código menor probabilidad de errores. Por ejemplo, el típico método para setear el clic en un botón, que en Java se hace con al menos cinco o seis líneas de código, en Kotlin se reduce a una simple línea.

Esto es así gracias al uso de los operadores lambda, las funciones de extensión y las funciones de orden superior, que son funciones a las que se les pueden pasar otras funciones. Todas estas características de Kotlin hacen que frente a Java resulte una apuesta bastante fiable e interesante.

Imagen 0 en ¿Qué aporta Kotlin que no aporta Java?

Características básicas

Las características básicas que tiene Kotlin son las siguientes:

  • Conciso: está diseñado para emplear pocas líneas de código y muy claras, lo que se ve es lo que se hace.
  • Seguro: una de las principales características de Kotlin, ya que es seguro frente a NullPointerException y otros errores como casteo, etc:
    • Es seguro porque en Kotlin todo puede ser nulo, pero en el momento que el compilador comprueba que algo está marcado como que puede ser nulo, fuerza en todo momento a que se compruebe, lo que hace que se eviten los NPE y los crash que pueden originar este tipo de errores.
    • Es muy seguro también en cuanto al casting de objetos, ya que automáticamente, si por ejemplo, tenemos un if dónde queremos castear un elemento, un número de tipo entero, automáticamente en ese bloque if, esa variable número ya está casteado a entero, por lo tanto podemos usarla como tal, sin hacer ningún casteo automático, simplificando mucho todo el desarrollo.
  • Pragmático: se dice que Kotlin se desarrolló para problemas del mundo real, por lo tanto no vamos a encontrarnos con los típicos problemas arquitectónicos que podemos encontrarnos, por ejemplo en Java, para montar ciertas estructuras que son bastante complejas.
  • No penaliza el rendimiento: al ejecutarse bajo misma máquina virtual tiene prácticamente el mismo rendimiento que Java, incluso superior, ya que el código empleado es mucho menor.
  • Interoperabilidad con Java: está diseñado para interoperar con Java, es decir, podemos tener una aplicación con código Kotlin y otro modulo con código Java, y ambos se pueden comunicar sin problemas, simplemente habría que superar el escalón que existe entre el desarrollo en Java y el desarrollo en Kotlin, como por ejemplo los Null Pointer, que si están permitidos en Java. De hecho normalmente las aplicaciones que se están comenzando a migrar a Kotlin se van migrando módulo a módulo, no se empieza un proyecto en Kotlin desde cero.
  • Programación funcional: nos da la posibilidad de emplear la programación funcional si queremos desarrollarla para nuestra aplicación.