{"id":3913,"date":"2022-05-18T10:39:02","date_gmt":"2022-05-18T10:39:02","guid":{"rendered":"http:\/\/the-codest.localhost\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway\/"},"modified":"2026-04-28T14:07:11","modified_gmt":"2026-04-28T14:07:11","slug":"por-que-kotlin-es-increible-pero-te-quedaras-con-java-de-todos-modos-1","status":"publish","type":"post","link":"https:\/\/thecodest.co\/es\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","title":{"rendered":"Por qu\u00e9 Kotlin es incre\u00edble, pero te quedar\u00e1s con Java de todos modos"},"content":{"rendered":"<p>Independientemente del grupo al que pertenezca, hay una raz\u00f3n por la que se queda con <strong><a href=\"https:\/\/thecodest.co\/es\/blog\/find-the-right-java-developer-now\/\">Java<\/a><\/strong>. Y no le estoy culpando. Tiene posiblemente el ecosistema m\u00e1s desarrollado, universal y completo de todo el <a href=\"https:\/\/thecodest.co\/es\/dictionary\/what-is-enterprise-hybrid-cloud\/\">empresa<\/a> mundo. El lenguaje tiene un conjunto de capacidades muy bien adaptado, en alg\u00fan lugar en la zona correcta entre demasiado y demasiado poco. Y poco a poco se van a\u00f1adiendo nuevas funciones, lo que lo mantiene al d\u00eda de las nuevas tendencias en el mundo de la programaci\u00f3n.<\/p>\n\n\n\n<p>\u00bfSabe usted <a href=\"https:\/\/projectlombok.org\">Lombok<\/a> Sin embargo... Si no, te recomiendo que lo pruebes. Si te gusta, entonces tengo algo para que pruebes. Un lenguaje completamente nuevo, que por sus caracter\u00edsticas deja obsoleto al Lombok. Se llama <b>Kotlin<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfKotlin? \u00bfTe refieres al lenguaje de Android?<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/pClXBLD.jpg\" alt=\"Bueno s\u00ed, pero en realidad no\"\/><\/figure>\n\n\n\n<p>Kotlin en Android fue bendecido por el propio Google hasta el punto de convertirse en el lenguaje de facto de elecci\u00f3n para la plataforma. No es en esto en lo que me centrar\u00e9 en este art\u00edculo, pero Android es de hecho el lugar donde conoc\u00ed Kotlin por primera vez.<\/p>\n\n\n\n<p>Mi compa\u00f1ero de trabajo estaba desarrollando una aplicaci\u00f3n para una <a href=\"https:\/\/thecodest.co\/es\/dictionary\/why-do-projects-fail\/\">proyecto<\/a>por su cuenta. Sin embargo, los plazos se acercaban r\u00e1pidamente, as\u00ed que me delegaron la tarea de ayudarle a cumplirlos. Perm\u00edtanme retroceder en el tiempo hasta ese momento. Y... \u00a1Qu\u00e9 asco! \u00bfPor qu\u00e9 est\u00e1 usando un lenguaje raro que suena como un <a href=\"https:\/\/www.ketchupy.pl\/images\/3\/c\/9\/4\/5\/3c9453c5b720f810c293211d77449d9395f09944-product-front-1.png\">marca de ketchup<\/a>!? \u00a1Se ve horrible!<\/p>\n\n\n\n<p>\u00bfPor qu\u00e9 se escribe \"fun\" antes de cada funci\u00f3n? Como si no supiera ya lo que es. Adem\u00e1s, ya estoy teniendo <em>divertido<\/em> con <strong>Java<\/strong> de todos modos. \u00bfY d\u00f3nde est\u00e1 el tipo de retorno? \u00bfAl final? \u00bfEst\u00e1s loco? \u00bfQu\u00e9 es eso, est\u00e1s asignando algo a una funci\u00f3n? \u00a1No tiene ning\u00fan sentido! Todo parece <b>Java con pasos adicionales<\/b> Espera, \u00bfd\u00f3nde est\u00e1 la clase a la que pertenece este m\u00e9todo? \u00bfD\u00f3nde lo escondiste ketchup-sonido, <strong>Java<\/strong> \u00bfImitando la excusa de un lenguaje de programaci\u00f3n? Oh, no. Oh no, no lo hiciste. \u00bfES UNA FUNCI\u00d3N GLOBAL? Eso es todo, he terminado, voy a llamar a la polic\u00eda.<\/p>\n\n\n\n<p>Spoiler alert: no llam\u00e9 a las fuerzas del orden. Me gustara o no, tuve que ajustar mi mentalidad centrada en Java para adaptarme a otro lenguaje. Aunque no ser\u00e1 tan malo, \u00bfverdad? Sigue siendo un lenguaje JVM, seguramente es s\u00f3lo un lenguaje diferente. <strong>Java<\/strong>. \u00bfQuiz\u00e1 incluso con algunas funciones adicionales? De mala gana, empec\u00e9 a trabajar en el proyecto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Java con pasos adicionales<\/h2>\n\n\n\n<p><em>Si Java es tan bueno, \u00bfpor qu\u00e9 no existe Java 2?<\/em> Bromas aparte, eso es lo que pens\u00e9 para m\u00ed mismo. Voy a fingir que Kotlin es Java 2. Nueva sintaxis y todo, pero s\u00f3lo tengo que aprender lo suficiente para terminar el proyecto. Vaya si me equivoqu\u00e9.<\/p>\n\n\n\n<p>Despu\u00e9s de probarlo durante uno o dos d\u00edas, me di cuenta r\u00e1pidamente de que tanto Kotlin como <strong>Java<\/strong> no son tan el\u00e1sticas. Tratar de doblarlos uno hacia el otro termina inevitablemente con uno de ellos parti\u00e9ndose por la mitad. Se hizo evidente que Kotlin es una cosa en s\u00ed misma, y el hecho de que funciona en una JVM significa casi exactamente nada desde el punto de vista del programador. (Como nota al margen, tambi\u00e9n puede transpilar a <a href=\"https:\/\/thecodest.co\/es\/blog\/hire-javascript-developer\/\">JavaScript<\/a>o ser compilado a un binario nativo).<\/p>\n\n\n\n<p>Plan B entonces. En realidad, conocer el lenguaje. Leer la documentaci\u00f3n por primera vez produce escalofr\u00edos a un programador Java experimentado. Por ejemplo:<br>- anteriormente mencionado contexto de nivel superior aka global<br>- tipos de par\u00e1metro y de retorno de funci\u00f3n especificados al final<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun suma(a: Int, b: Int): Int {\n   return a + b\n}<\/code><\/code><\/pre>\n\n\n\n<p>el cuerpo de la funci\u00f3n puede ser una expresi\u00f3n (utilizando el signo de igualdad)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> fun suma(a: Int, b: Int) = a + b<\/code><\/code><\/pre>\n\n\n\n<p>la sentencia if puede proporcionar un resultado<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> val y = if (x == 1) {\n \"uno\"\n } else if (x == 2) {\n \"dos\"\n } else {\n \"otro\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Vale, tendr\u00e9 que acostumbrarme. S\u00f3lo una sintaxis diferente. \u00bfQu\u00e9 m\u00e1s tienes que ofrecer, se\u00f1or Kotlin?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> \u00bfvalor?.method() \/\/ ejecutar si no es null<\/code><\/code><\/pre>\n\n\n\n<p>Oh ok, deshacerse de <code>si (valor == null)<\/code>un punto para ti. \u00bfQu\u00e9 m\u00e1s tienes?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code>fun comprobar(lista: Lista, alternativo: Booleano) = cuando {\n lista es ListaEnlazada -&gt; print(\"enlazada\")\n alternativa -&gt; print(\"alternativa\")\n list.tama\u00f1o &gt; 50 -&gt; print(\"grande\")\n else -&gt; print(\"otro\")\n }<\/code><\/code><\/pre>\n\n\n\n<p>Hmm bien, podr\u00eda ser \u00fatil para evitar si los bloques de otros, todav\u00eda parece un truco sin embargo.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\"><code> objeto SingularObject: Counter() {\n var a = 14\n fun test() = if (a &gt; 10) \"m\u00e1s\" else \"menos\"\n }<\/code><\/code><\/pre>\n\n\n\n<p>Ok, ese parece realmente \u00fatil, \u00a1me gusta! Por otro lado, puedo crear un singleton en Java tambi\u00e9n. Quiz\u00e1s no sea tan elegante, pero no es nada realmente nuevo. \u00bfAlg\u00fan as en la manga? \u00bfComo, verdaderos pesos pesados?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">var s: String = null \/\/ no compila, tipo no nulo.<\/code><\/code><\/pre>\n\n\n\n<p>Espera... \u00bfqu\u00e9?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#Apologies_and_retractions\">El error del bill\u00f3n de d\u00f3lares<\/a><\/h2>\n\n\n\n<p>Imagina una base de c\u00f3digo en la que no tengas que preocuparte por la seguridad de los nulos. Imagina dar por sentado que cada referencia contiene algo significativo. Imagina estar seguro de que todos los problemas relacionados con los nulos est\u00e1n resueltos de antemano.<br>No te imagines m\u00e1s. Todas las referencias en Kotlin no son anulables por defecto. Si quieres hacerlas anulables, tienes que <u>conscientemente<\/u> tomar esa decisi\u00f3n, y <u>expl\u00edcitamente<\/u> ind\u00edquelo en el <a href=\"https:\/\/thecodest.co\/es\/dictionary\/what-is-code-refactoring\/\">c\u00f3digo<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">var s: \u00bfCadena? = null\n<\/code><\/code><\/pre>\n\n\n\n<p>Comprendo que en este momento se muestre esc\u00e9ptico ante la idea. Est\u00e1s acostumbrado a las referencias anulables. Lo tienes en la cabeza mientras codificas. Has aprendido d\u00f3nde tienes que tener cuidado. Es exactamente lo que pienso. Viniendo de <strong>Java<\/strong>...me sent\u00ed raro al principio. \u00bfQu\u00e9 sentido tiene? No va a hacer desaparecer m\u00e1gicamente todos los problemas relacionados. S\u00f3lo tendr\u00e9 que a\u00f1adir \"?\" en todas partes, suena como una tarea.<\/p>\n\n\n\n<p>Pero decid\u00ed sumergirme en el lenguaje, \u00bfno? Hag\u00e1moslo a su manera se\u00f1or <strong>Kotlin<\/strong>. Empec\u00e9 a esforzarme por eliminar tantas variables, campos y par\u00e1metros anulables como pudiera. Paso a paso, aprend\u00ed a utilizar las caracter\u00edsticas del lenguaje que facilitaban la eliminaci\u00f3n de las referencias anulables, por ejemplo, el operador de llamada segura \"?.\", el operador elvis \"?:\", las propiedades delegadas, el m\u00e9todo \"let\", etc.<\/p>\n\n\n\n<p>Con el tiempo, consegu\u00ed que algunas clases s\u00f3lo contuvieran campos y par\u00e1metros de m\u00e9todos no nulos. B\u00e1sicamente, sab\u00eda que si una clase se instanciaba con \u00e9xito, casi pod\u00eda olvidarme de la anulabilidad en los cuerpos de los m\u00e9todos. Era una bendici\u00f3n. Con el tiempo, lo apreci\u00e9 cada vez m\u00e1s. En \u00faltima instancia, sin embargo, no pens\u00e9 en ello como una caracter\u00edstica asesina, <strong>Java<\/strong> todav\u00eda se sent\u00eda como en casa. Hasta que...<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">El regreso<\/h2>\n\n\n\n<p>El proyecto se acercaba a su fin. Fui conociendo Kotlin m\u00e1s y m\u00e1s, y con este conocimiento, el c\u00f3digo se hizo cada vez m\u00e1s ordenado, legible y conciso. Pod\u00edas ver las mejoras a simple vista en el historial de commits. Pero por fin ha llegado el momento. Con recuerdos inesperadamente gratos del nuevo lenguaje, era hora de decir adi\u00f3s y volver a la dulce zona de confort de <strong>Java<\/strong>. O eso cre\u00eda yo.<\/p>\n\n\n\n<p>\u00bfConoces esa sensaci\u00f3n cuando empiezas a apreciar algo en el mismo momento en que desaparece? \u00bfCuando no te das cuenta de lo mucho que dependes de algo hasta que ya no puedes usarlo? Fue el mejor ejemplo de esa sensaci\u00f3n que probablemente haya experimentado en mi vida.<\/p>\n\n\n\n<p>Cuando volv\u00ed a escribir el c\u00f3digo en <strong>Java<\/strong>Estaba casi aterrorizado por la falta de algunas caracter\u00edsticas. Era como si mi cerebro, subconscientemente, retroadaptara err\u00f3neamente caracter\u00edsticas de Kotlin a Java. Experiment\u00e9 situaciones en las que empec\u00e9 a implementar algo, s\u00f3lo para darme cuenta de que no funcionar\u00eda en este lenguaje. En el mejor de los casos, podr\u00eda escribirlo como Kotlin, pero ser\u00eda voluminoso, ilegible y\/o requerir\u00eda demasiada repetici\u00f3n.<\/p>\n\n\n\n<p>La seguridad nula era, por supuesto, la caracter\u00edstica que m\u00e1s echaba de menos. Pero me sorprendi\u00f3 la cantidad de peque\u00f1as cosas que me resultaron naturales: par\u00e1metros con nombre, propiedades en lugar de getters y setters, \"==\" como igual y \"===\" como igualdad referencial, \"this\" cualificado, funciones de extensi\u00f3n, par\u00e1metro lambda impl\u00edcito singular, \"_\" para par\u00e1metros lambda no utilizados, <a href=\"https:\/\/thecodest.co\/es\/blog\/app-data-collection-security-risks-value-and-types-explored\/\">datos<\/a> clases, funciones scope, otras funciones stdlib de Kotlin, operadores y m\u00e1s. Y la forma en que todo encaja a la perfecci\u00f3n. En comparaci\u00f3n, Java parec\u00eda... primitivo.<\/p>\n\n\n\n<p>De hecho, me sent\u00ed tan mal que empec\u00e9 a considerar cambiar a Kotlin por completo. En teor\u00eda, es totalmente interoperable con Java, s\u00f3lo tienes que a\u00f1adir soporte para Kotlin a un proyecto existente y empezar a escribir nuevas clases. El lado Kotlin sabe c\u00f3mo \"hablar\" con Java, y el lado Java ni siquiera sabe que est\u00e1 \"hablando\" con otro lenguaje. Y despu\u00e9s de la compilaci\u00f3n a bytecode, realmente no hay ninguna diferencia para la JVM.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/calendly.com\/the-codest-java-consulting\"><img decoding=\"async\" src=\"\/app\/uploads\/2024\/05\/meeting_java_expert.png\" alt=\"Conozca al experto en Java\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Comprobaci\u00f3n de la realidad<\/h2>\n\n\n\n<p>\u00bfA qu\u00e9 esperas? Si el lenguaje es tan bueno como dices, \u00a1\u00fasalo! Tal vez no en los proyectos existentes, aunque s\u00e9 que deber\u00eda ser interoperable, pero mezclar dos lenguajes diferentes de esta manera suena feo.<\/p>\n\n\n\n<p>Ok, as\u00ed que para los nuevos m\u00f3dulos - Kotlin es. \u00bfO no? Est\u00e1s trabajando en un <a href=\"https:\/\/thecodest.co\/es\/blog\/how-to-hire-the-best-outsourced-development-team-for-a-scaleup\/\">equipo<\/a>. Hay que consultarles y convencerles de la grandeza de esta nueva lengua. \u00bfQu\u00e9? \u00bfNo les gusta? Parece que no quieren esforzarse en aprenderlo. No puedes culparles, t\u00fa tambi\u00e9n eras esc\u00e9ptico al principio.<\/p>\n\n\n\n<p>\u00a1El jefe de proyecto! \u00a1S\u00ed! Seguro que entender\u00e1 el gran valor que Kotlin aportar\u00eda a nuestro equipo. \u00a1Oh, la grandeza que vendr\u00e1!<br>-No<br>-Espera, \u00bfpor qu\u00e9?<br>-El equipo no lo sabe.<br>-\u00a1Aprender\u00e1n!<br>-No quieren aprender.<br>-\u00a1T\u00fa puedes hacerlos!<br>-No necesitan aprender.<br>-Es cierto, pero \u00a1piensa en las posibilidades!<br>-S\u00ed, qu\u00e9 tal si piensas primero en los problemas.<\/p>\n\n\n\n<p>La leyenda dice que existe un proyecto. Un proyecto grande y complejo, pero bien escrito en todas sus partes. Un proyecto en el que todos los desarrolladores est\u00e1n de acuerdo sobre las soluciones utilizadas. Donde las nuevas funcionalidades fluyen suavemente de los teclados de los programadores. Donde los errores son raros y f\u00e1ciles de solucionar.<\/p>\n\n\n\n<p>\u00bfHas visto un proyecto as\u00ed? Yo no. Algunos estuvieron cerca, pero la mayor\u00eda son un gran l\u00edo de c\u00f3digo heredado. Y si no lo son, probablemente lo ser\u00e1n en alg\u00fan momento en el futuro. Ahora imagina a\u00f1adir otro lenguaje a la mezcla. Introduce nuevas formas de cometer errores. Requiere que los desarrolladores sepan lo que est\u00e1n haciendo. Es un riesgo, como m\u00ednimo.<\/p>\n\n\n\n<p>Ahora considere tambi\u00e9n <a href=\"https:\/\/thecodest.co\/es\/blog\/hire-vue-js-developers\/\">desarrollador<\/a> rotaci\u00f3n. La gente va y viene. \u00bfHar\u00e1s que cada nuevo desarrollador aprenda un lenguaje completamente nuevo? No, es contraproducente. \u00bfContratar\u00e1s en primer lugar a desarrolladores de Kotlin? Buena suerte con eso, contratar a un buen desarrollador Java ya es bastante dif\u00edcil.<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.allegro.tech\/2018\/05\/From-Java-to-Kotlin-and-Back-Again.html\">La gente lo ha intentado.<\/a> Tengo que decir que no estoy de acuerdo con la mayor\u00eda de las acusaciones en ese art\u00edculo. Hay algunas cr\u00edticas v\u00e1lidas all\u00ed, pero creo que no usaron Kotlin lo suficiente como para entender realmente \"la manera Kotlin\". Muchos comentaristas bajo ese art\u00edculo parecen pensar de manera similar.<\/p>\n\n\n\n<p>Pero eso no importa. Apuesto a que esto tambi\u00e9n pasar\u00eda en tu proyecto. \"Lo prob\u00e9, no me gust\u00f3\". No har\u00e1s que le dediquen m\u00e1s tiempo. No har\u00e1s que lo intenten de nuevo. No har\u00e1s que le den otra oportunidad. Y desde un punto de vista pr\u00e1ctico, puede que tengan raz\u00f3n. <strong>Java<\/strong> es tan popular, que usar cualquier otra cosa en la JVM parece redundante.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 este art\u00edculo entonces?<\/h2>\n\n\n\n<p>Acabas de dedicar mucho tiempo a escribir un art\u00edculo que parece no tener sentido. \u00bfPor qu\u00e9 iba a intentar aprender un idioma si usted dice que no tiene sentido?<\/p>\n\n\n\n<p>Bueno, no creo que no tenga sentido. Sigo pensando que Kotlin es genial. Todav\u00eda quiero usarlo de verdad (y de hecho lo hago para mis proyectos privados). Si pudiera, me pasar\u00eda a \u00e9l y me olvidar\u00eda de las limitaciones de Java. Pero la realidad actual dice que no puedo. Y quiero intentar cambiar eso.<\/p>\n\n\n\n<p>Mi intenci\u00f3n para ti, querido lector, es que al menos contemples la posibilidad de salir de la acogedora zona de confort de Java. Porque tal vez, s\u00f3lo tal vez, te encante Kotlin tanto como a m\u00ed. Y si lo haces, ser\u00e1s un desarrollador conocedor de Kotlin m\u00e1s en la red. <a href=\"https:\/\/thecodest.co\/es\/dictionary\/what-is-the-size-of-your-potential-reachable-market\/\">mercado<\/a>.<\/p>\n\n\n\n<p><strong>M\u00e1s informaci\u00f3n:<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-best-type-of-projects-for-java\">El mejor tipo de proyectos para Java<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/3-common-challenges-of-software-product-development-for-startups\">3 Desaf\u00edos comunes del desarrollo de productos de software para startups<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/thecodest.co\/blog\/the-right-way-to-find-top-java-developers\">La forma correcta de encontrar los mejores desarrolladores Java<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Si eres desarrollador Java, lo m\u00e1s probable es que tengas al menos algo de experiencia con otros lenguajes de programaci\u00f3n.  Algunos de nosotros empezamos nuestra aventura de programaci\u00f3n con otro lenguaje como C\/C++, JavaScript, C#, Python o incluso algo como Pascal o Basic. Algunos, sin embargo, empezaron con Java y nunca prestaron demasiada atenci\u00f3n a otros lenguajes, recordando desagradablemente la \u00fanica vez que necesitaron codificar r\u00e1pidamente algo en el frontend.<\/p>","protected":false},"author":2,"featured_media":3914,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-3913","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why Kotlin is awesome, but you will stay with Java anyway - The Codest<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thecodest.co\/es\/blog\/por-que-kotlin-es-increible-pero-te-quedaras-con-java-de-todos-modos-1\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Kotlin is awesome, but you will stay with Java anyway\" \/>\n<meta property=\"og:description\" content=\"If you are a Java developer, chances are you have at least some experience with other programming languages. Some of us started their programming adventure with another language like C\/C++, JavaScript, C#, Python or maybe even something like Pascal or Basic. Some, though, started with Java and just never paid too much attention to other languages, unpleasantly remembering the one time when they needed to quickly code something on the frontend side.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thecodest.co\/es\/blog\/por-que-kotlin-es-increible-pero-te-quedaras-con-java-de-todos-modos-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Codest\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-18T10:39:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-28T14:07:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"thecodest\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"thecodest\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"},\"author\":{\"name\":\"thecodest\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\"},\"headline\":\"Why Kotlin is awesome, but you will stay with Java anyway\",\"datePublished\":\"2022-05-18T10:39:02+00:00\",\"dateModified\":\"2026-04-28T14:07:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"},\"wordCount\":1973,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\",\"name\":\"Why Kotlin is awesome, but you will stay with Java anyway - The Codest\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"datePublished\":\"2022-05-18T10:39:02+00:00\",\"dateModified\":\"2026-04-28T14:07:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/05\\\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/blog\\\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thecodest.co\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Kotlin is awesome, but you will stay with Java anyway\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#website\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"name\":\"The Codest\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thecodest.co\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#organization\",\"name\":\"The Codest\",\"url\":\"https:\\\/\\\/thecodest.co\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"contentUrl\":\"https:\\\/\\\/thecodest.co\\\/app\\\/uploads\\\/2024\\\/03\\\/thecodest-logo.svg\",\"width\":144,\"height\":36,\"caption\":\"The Codest\"},\"image\":{\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/pl.linkedin.com\\\/company\\\/codest\",\"https:\\\/\\\/clutch.co\\\/profile\\\/codest\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thecodest.co\\\/#\\\/schema\\\/person\\\/7e3fe41dfa4f4e41a7baad4c6e0d4f76\",\"name\":\"thecodest\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g\",\"caption\":\"thecodest\"},\"url\":\"https:\\\/\\\/thecodest.co\\\/es\\\/author\\\/thecodest\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Por qu\u00e9 Kotlin es incre\u00edble, pero te quedar\u00e1s con Java de todos modos - The Codest","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thecodest.co\/es\/blog\/por-que-kotlin-es-increible-pero-te-quedaras-con-java-de-todos-modos-1\/","og_locale":"es_ES","og_type":"article","og_title":"Why Kotlin is awesome, but you will stay with Java anyway","og_description":"If you are a Java developer, chances are you have at least some experience with other programming languages. Some of us started their programming adventure with another language like C\/C++, JavaScript, C#, Python or maybe even something like Pascal or Basic. Some, though, started with Java and just never paid too much attention to other languages, unpleasantly remembering the one time when they needed to quickly code something on the frontend side.","og_url":"https:\/\/thecodest.co\/es\/blog\/por-que-kotlin-es-increible-pero-te-quedaras-con-java-de-todos-modos-1\/","og_site_name":"The Codest","article_published_time":"2022-05-18T10:39:02+00:00","article_modified_time":"2026-04-28T14:07:11+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","type":"image\/png"}],"author":"thecodest","twitter_card":"summary_large_image","twitter_misc":{"Written by":"thecodest","Est. reading time":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#article","isPartOf":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"},"author":{"name":"thecodest","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76"},"headline":"Why Kotlin is awesome, but you will stay with Java anyway","datePublished":"2022-05-18T10:39:02+00:00","dateModified":"2026-04-28T14:07:11+00:00","mainEntityOfPage":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"},"wordCount":1973,"commentCount":0,"publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"image":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","articleSection":["Software Development"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","url":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/","name":"Por qu\u00e9 Kotlin es incre\u00edble, pero te quedar\u00e1s con Java de todos modos - The Codest","isPartOf":{"@id":"https:\/\/thecodest.co\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"image":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage"},"thumbnailUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","datePublished":"2022-05-18T10:39:02+00:00","dateModified":"2026-04-28T14:07:11+00:00","breadcrumb":{"@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#primaryimage","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/05\/why_kotlin_is_awesome-_but_you_will_stay_with_java_anyway.png","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/thecodest.co\/blog\/why-kotlin-is-awesome-but-you-will-stay-with-java-anyway-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thecodest.co\/"},{"@type":"ListItem","position":2,"name":"Why Kotlin is awesome, but you will stay with Java anyway"}]},{"@type":"WebSite","@id":"https:\/\/thecodest.co\/#website","url":"https:\/\/thecodest.co\/","name":"The Codest","description":"","publisher":{"@id":"https:\/\/thecodest.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thecodest.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/thecodest.co\/#organization","name":"The Codest","url":"https:\/\/thecodest.co\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/","url":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","contentUrl":"https:\/\/thecodest.co\/app\/uploads\/2024\/03\/thecodest-logo.svg","width":144,"height":36,"caption":"The Codest"},"image":{"@id":"https:\/\/thecodest.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/pl.linkedin.com\/company\/codest","https:\/\/clutch.co\/profile\/codest"]},{"@type":"Person","@id":"https:\/\/thecodest.co\/#\/schema\/person\/7e3fe41dfa4f4e41a7baad4c6e0d4f76","name":"thecodest","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5dbfe6a1e8c86e432e8812759e34e6fe82ebac75119ae3237a6c1311fa19caf4?s=96&d=mm&r=g","caption":"thecodest"},"url":"https:\/\/thecodest.co\/es\/author\/thecodest\/"}]}},"_links":{"self":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/comments?post=3913"}],"version-history":[{"count":8,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3913\/revisions"}],"predecessor-version":[{"id":8525,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/posts\/3913\/revisions\/8525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/media\/3914"}],"wp:attachment":[{"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/media?parent=3913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/categories?post=3913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thecodest.co\/es\/wp-json\/wp\/v2\/tags?post=3913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}