
Java es un lenguaje de programación que lleva más de 20 años en la cúspide y Kotlin es el único capaz de “matarlo”. Java sigue siendo ampliamente usando aún hoy en día, sin embargo es bien sabido que muchas personas lo detestan, al punto de llamar su etapa mientras lo aprendían como una etapa de “sufrimiento”.
Entendible, si lo vemos desde un punto de vista imparcial, lo cierto es que para quienes recién empiezan, nada más el primer programa puede llegar a tener un sin fin de conceptos que no entienden, clases, paquetes, métodos estáticos, arreglos, etc.
Conceptos que aún muchos devs aún con experiencia no entienden, como el caso de los métodos estáticos.
Ahora bien, también es muy cierto que por muchos años ha sido el lenguaje de programación más enseñado en ámbitos educativos y eso ha sido fundamental para convertirlo en el titán que es hoy en día, pero a medida que el tiempo ha pasado han llegado al mercado propuestas más modernas como Python, JavaScript, C# entre otras, al punto que Java ha tenido que cambiar por completo su ciclo de versiones para mantenerse en el ojo público y también para lanzar versiones más constantemente.
El gran problema es que aunque estas nuevas propuestas lleguen, no es tan fácil que algunas empresas las adopten como su lenguaje principal y las razones son validas, curva de aprendizaje, adaptación de un equipo de desarrollo, kits de desarrollo ya construidos en Java, librerías internas, reconstrucción desde cero de sistemas complejos, etc.
Y es ahí, donde entra Kotlin.
¿Por qué Kotlin puede reemplazar a Java?
Kotlin es un lenguaje increíblemente versátil, tiene la particularidad no solo de ser un lenguaje que puede ser ejecutado en la JVM si no que también se puede ejecutar como código nativo, puede ser compilado a JavaScript, en fin. Son muchas sus posibilidades pero hay una que es clave, me refiero a la interoperabilidad con Java.
Interoperabilidad con Java
La interoperabilidad en Kotlin es la capacidad de poder ejecutar cualquier código Java dentro de Kotlin, podríamos tomar una librería que hayamos creado en Java e invocarla en Kotlin sin necesidad de hacer alguna configuración adicional.
Solo tenemos que incluirla en nuestro gestor de paquetes Maven o Gradle otra opción es simplemente incluir el código Java directamente en el proyecto, de hecho tengo un ejemplo en mi canal de Youtube en el que uso unas clases que creé en Java desde Kotlin, puedes verlo aquí
Si retomamos lo que mencioné antes de la cantidad de software que existe hecho en Java en el mercado, ahora ya no es un problema tan grande, cualquier empresa sin importa su tamaño puede reutilizar todo el código Java que tenga y migrarlo de forma completamente automática a Kotlin.
Sin hacer nada más que incluir un par de líneas en algunos archivos, es simplemente increíblemente, además si usamos el IDE de IntelliJ cuenta con una funcionalidad que traduce el código Java a Kotlin automáticamente.
¿Eso es todo lo que ofrece Kotlin?
Si bien Kotlin tiene sus propias convenciones, su propia curva de aprendizaje, su propia sintaxís y demás, creo que su característica más importante para convertirse en un referente en el mercado es la interoperabilidad con Java, ya sé que se puede compilar a JavaScript, pero es que JavaScript no es un lenguaje que sea tachado de no ser moderno, menos aún con la irrupción de TypeScript.
Pero es que todo lo que Java podría tener por mejorar Kotlin ya lo tiene como por ejemplo el Null Safety.
Y el hecho de que podamos migrar nuestro código por defecto a Kotlin, lo hace la mejor alternativa a Java, por mucho, es más te reto a que me digas una mejor.
Entonces ¿Dejamos de Usar Java?
Por supuesto que no, Java es y va a seguir siendo un estandarte en la industria por muchos años, y es un excelente lenguaje, su comunidad es increíble y ni hablar de la gente que lo mantiene, es para mí el lenguaje más interesante por lejos, tiene el mejor framework del mercado, Spring Framework y un sin fin de librerías que hacen ver como poco a los muchos paquetes abandonados que hay en el mundo de JS por ejemplo.
Pero hay que abandonar la creencia que es un lenguaje ideal para empezar, el mejor lenguaje para empezar en esto quizás sea Python o PHP, así se quita todo ese odio que tiene encima.