style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

¿Han usado Kotlin? ¿Qué es lo que ofrece respecto a Java y otros lenguajes dependientes de la JVM?

Últimamente he estado usando Kotlin por mera curiosidad. Nada de proyectos reales. Por lo que veo y he notado se está llevando de corbata a lenguajes como Scala y Groovy. Y más aún dado que ahora hasta Google promueve su uso para desarrollar en Android (el matador de memoria preferido por los programadores masoquistas).

Proyectos como Ceylon prometían mucho, pero es un hecho que éste lenguaje (Kotlin) lleva la delantera. Migrar un proyecto hecho en Java a otros lenguajes es muy arriesgado. Java es un mundo enorme, siempre hay algo nuevo que ver. Con Kotlin se abre otro mundo.

No es sorpresa saber que existen 1010101010 de alternativas para nosotros los desarrolladores. Que si es mejor usar Angular, Vue, React, Node y olvidarte de Java, porque Java es difícil y es mejor Javascript por que es el futuro (lo he escuchado).

Ahora sería mu útil saber si alguien lo ha usado y qué ventajas ha encontrado respecto a lenguajes como Caylon, Scala, Groovy y el propio Java.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Como en todas las tecnologias actuales

Depende de que estes buscando con respecto a java, en lo personal creo que es ligeramente mas lento que java (en practicidad no se nota) pero te ofrece programacion funcional mas amigable sin ser puramente funcional como clojure, compila a javascript aunque yo no hago eso porque en lo personal me gusta javascript, definitivamente escribes menos y es compatible con java aunque como en todo hay excepciones.

Tal vez su mejor caracteristica es el soporte de co-rutinas, algo asi como async/await en otros lenguajes, definitivamente inspirado por go y con mucho en comun con event loop en javascript, por lo que la programacion concurrente y ayncrona no deberia tantos dolores de cabeza como en java solito o en c++.

Imagen de ezamudio

Comparación

Lo bueno de Kotlin, que no tenga Java 8:

  • Data classes
  • Destructuring
  • top-level methods
  • varianza en sitio de declaración
  • inferencia de tipos (esto ya está en Java 11)
  • typesafe null
  • interpolación de valores en cadenas
  • smart casts
  • sobrecarga de operadores
  • Métodos de extensión

Lo malo de Kotlin:

  • Métodos de extensión
  • La sobrecarga de operadores es informal
  • La combinación de los dos puntos previos permite escribir código poco mantenible
  • Typesafe null tiene un switch para apagarlo y todo mundo lo usa
  • Siguen existiendo los stupid casts
  • non-local return en closures

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">