Kotlin es la primera opción para el desarrollo de Android, pero no se limita únicamente a Android. ¡No te pierdas esta introducción a Kotlin!
¿Cómo funciona Kotlin? ¿Alguna vez te has enfocado en este lenguaje específico? En realidad, no se ha hablado mucho de Kotlin durante mucho tiempo, y de hecho, es un lenguaje de programación que se ha hecho famoso en tiempos relativamente recientes: según Google Trends, solo desde 2017 ha adquirido cierta relevancia en las búsquedas de los usuarios.
Sin embargo, no es tan nuevo: el primer anuncio de JetBrains data de 2010. ¿Qué sucedió entonces, en 2017 o poco antes, que lo hizo popular?
¿Es Kotlin solo para el desarrollo de Android?
Un evento que, hasta la fecha, también ha sido la causa de uno de los principales malentendidos relacionados con el lenguaje: el respaldo de Google y la elección de considerarlo la primera opción para el desarrollo de Android, en detrimento de Java.
Desde entonces, Kotlin ha experimentado un aumento en popularidad, obviamente en el ecosistema de Android, pero también se ha encasillado en cierta medida como «el lenguaje de Android»: el autor ha trabajado con Kotlin durante años y es el mantenedor de la librería de mocking de código abierto más adoptada en Kotlin (https://github.com/mockk/mockk/), y solo por haber escrito «Kotlin» en su CV, ha sido contactado varias veces para puestos de desarrollador de Android, a pesar de no saber absolutamente nada sobre este ecosistema.
Vamos a aclarar esto de una vez por todas: Kotlin es la primera y, de hecho, la única opción para el desarrollo de Android, pero no es un lenguaje que solo sirva para Android, al contrario.
Vamos a aclarar esto de una vez por todas: Kotlin es la primera y, de hecho, la única opción para el desarrollo de Android, pero no es un lenguaje que solo sirva para Android, al contrario.
Pero entonces, ¿cómo funciona Kotlin? Bueno, este es, más que muchos otros, un lenguaje de propósito general: no solo es utilizable en todos los contextos donde se puede usar Java, es decir, en toda la programación backend, sino que también es muy adecuado para el desarrollo totalmente multiplataforma, similar a herramientas como Flutter, que te permiten escribir el código una vez y compilarlo para diferentes plataformas como Android, iOS y aplicaciones de escritorio.
Pero eso no es todo: también es un excelente lenguaje para ciencia de datos, lo que permite una transición desde el desarrollo hasta el lanzamiento en producción más sencilla que Python o R, y permite compilar el código incluso para objetivos como WASM y JavaScript para el desarrollo web.
Principales características
Pero ¿cuáles son las principales características del lenguaje Kotlin y cómo funciona? ¿Es un lenguaje solo para expertos o también es adecuado para desarrolladores principiantes?
En primer lugar, debido a su naturaleza orientada al JVM y su historia, Kotlin es un lenguaje que los desarrolladores de Java encontrarán muy fácil de aprender: si tienes algo de experiencia con Java, puedes esperar ser perfectamente productivo en Kotlin en un par de semanas.
Y sinceramente, no hay razón para no hacerlo, ya que Java y Kotlin son perfectamente interoperables: el código Java puede invocar código Kotlin y viceversa sin ningún problema, y los proyectos Java existentes pueden integrar partes escritas en Kotlin sin esfuerzo, tanto es así que es una práctica bastante común en diversas empresas escribir directamente en Kotlin las nuevas partes de aplicaciones Java.
¿Quién lo obliga? ¿Por qué no seguir usando Java, que después de todo ha estado haciendo su trabajo sucio durante años?
Kotlin en realidad tiene muchas características que todos los desarrolladores de Java siempre han deseado tener, sobre todo la que resuelve el famoso «error de mil millones de dólares»: en Kotlin, de hecho, todas las variables son no nulas de forma predeterminada y los riesgos del temido NullPointerException se reducen en gran medida en tiempo de compilación, porque un trozo de código que accede a una variable nula se identifica de inmediato por el compilador y no durante la ejecución.
Pero eso no es todo, porque Kotlin también tiene muchas características, como clases de datos, funciones de extensión y expresiones lambda, que hacen que sea hasta un 40% más conciso, y por lo tanto más legible, que Java: una de las críticas más famosas de Java es su verbosidad y la enorme cantidad de líneas de código que requiere para las tareas más triviales, Kotlin hace lo contrario y permite a los desarrolladores escribir solo el código realmente necesario para resolver problemas, no el código innecesario.
Y no ha terminado: si has desarrollado aplicaciones no triviales en Java, seguramente sabrás lo complicado que es manejar la programación asíncrona y el multihilo; y si este es tu caso, te encantarán las corrutinas y las herramientas que Kotlin ofrece para la programación asíncrona, desde funciones suspendidas hasta objetos evolucionados como flow y channel.
Por qué y cuándo elegir Kotlin
¿Es eso todo? (Solo digo) ¿Por qué elegir Kotlin y no uno de los otros lenguajes interoperables con Java, entonces?
Ya hemos hablado de algunas áreas de uso, como la ciencia de datos y la programación multiplataforma, donde Kotlin es claramente una mejor opción que otros lenguajes basados en JVM como Scala, Groovy o Clojure, pero hay otro detalle que lo hace superior a estos últimos: la adopción.
Cuando se trata de una herramienta como un lenguaje de programación, tener una masa crítica de usuarios que lo utilicen es fundamental, pero la cantidad no es suficiente: también es importante contar con el apoyo de actores importantes que actúen de alguna manera como garantes de la calidad de la herramienta. Después de todo, ¿qué sería de un marco como React sin el apoyo de Meta?
Bueno, en este sentido, Kotlin puede contar al menos con dos autoridades muy respetables: en primer lugar, como ya hemos mencionado, Google apoya firmemente a Kotlin, pero tampoco debemos olvidar que es un lenguaje nacido dentro de una empresa, JetBrains, cuyo negocio principal es producir IDEs, por lo que el soporte para las herramientas de Kotlin es absolutamente excelente, y IntelliJ ofrece una gran ayuda a los desarrolladores, lo que hace que la experiencia de desarrollo sea extremadamente ergonómica y sencilla.
Kotlin es un lenguaje de programación moderno, conciso y seguro, desarrollado por JetBrains. Es un lenguaje orientado a objetos con tipado estático, y puede compilarse para la Máquina Virtual de Java (JVM), para JavaScript y para Native (nativo).
Conclusiones: Más que solo Android
Entonces: Kotlin es un lenguaje extremadamente eficiente, utilizado en muchas empresas, incluso bastante importantes, y garantiza posibilidades de empleo en muchos campos diferentes, desde aquellos que eran la prerrogativa de Java y sus derivados, hasta aplicaciones móviles y ciencia de datos. Pero, ¿es un lenguaje fácil de aprender? ¿Es una buena elección como primer lenguaje de programación, o es mejor orientarse hacia opciones aparentemente más simples, como PHP o JavaScript?
La respuesta, como en todas las preguntas importantes, obviamente es «depende», pero sentimos que podemos recomendarlo incluso como un primer lenguaje para aprender, por varias razones.
En primer lugar, es un lenguaje con un tipado fuerte, lo que te «obliga» a aprender a pensar en los datos que nuestras funciones y clases intercambian y reduce en gran medida la posibilidad de errores. Además, como ya hemos mencionado, es un lenguaje muy conciso, lo que te permite enfocarte en los conceptos fundamentales del código que estás escribiendo en lugar de perder tiempo con código repetitivo. Por último, cuenta con una librería estándar muy bien diseñada, coherente y completa, lo que permite a los desarrolladores con menos experiencia familiarizarse con software muy bien escrito.
En resumen, sin importar tu nivel de experiencia o el área de desarrollo de software que te interese, Kotlin definitivamente merece que le dediques tiempo. Si además quisieras contribuir a MockK, la librería para mocking de código abierto del cual soy el mantenedor, sin duda estarías haciendo algo bueno.
Únete a nuestra comunidad
¿Te apasiona el Desarrollo multiplataforma? ¿Quieres cambiar tu trayectoria laboral? En nuestra plataforma de Talent puedes encontrar la forma de llevar tu carrera al siguiente nivel. Entra en nuestra web y encuentra tu trabajo ideal- Échale un vistazo.
Ser parte de la comunidad de Codemotion te permitirá potenciar tu experiencia y enfrentar nuevos desafíos que impulsarán tu carrera. Aprenderás nuevas habilidades técnicas y crecerás junto a otros miembros mediante el intercambio de opiniones y la creación conjunta. Tenemos dos comunidades para ti según tu experiencia:
- Si eres wanna-be-dev, junior-dev o early-mid-dev nuestra comunidad de Discord es para ti. Allí encontrarás recursos, eventos, formación, muchos compañeros de viaje y beneficios exclusivos. Súmate aquí.
- Si eres late-mid-dev, senior-dev, Tech Lead o CTO nuestra comunidad de Telegram es para ti. Allí encontrarás el mejor networking, artículos high-tech, debates de tendencias tech y beneficios exclusivos. Súmate aquí.
¡Nos vemos en Codemotion!