{"id":67097,"date":"2020-08-17T17:08:56","date_gmt":"2020-08-17T17:08:56","guid":{"rendered":"http:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=67097"},"modified":"2020-08-26T02:04:31","modified_gmt":"2020-08-26T02:04:31","slug":"lanzamos-kotlin-1-4-calidad-y-rendimiento","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/es\/kotlin\/2020\/08\/lanzamos-kotlin-1-4-calidad-y-rendimiento\/","title":{"rendered":"Lanzamos Kotlin 1.4: calidad y rendimiento"},"content":{"rendered":"<p>\u00a1Hoy lanzamos Kotlin 1.4.0! Durante los \u00faltimos a\u00f1os hemos trabajado duro para hacer de Kotlin un lenguaje de programaci\u00f3n divertido, agradable y productivo con el trabajar. Para continuar buscando este objetivo con esta versi\u00f3n de Kotlin, dedicamos muchos esfuerzo a mejorar el rendimiento y la calidad de Kotlin y sus herramientas. Tambi\u00e9n estamos encantados de anunciar la compatibilidad con varias nuevas funcionalidades del lenguaje, incluyendo las esperadas conversiones SAM para interfaces de Kotlin.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1597417083773.png\" alt=\"file\" \/><\/p>\n<p>Para ayudarle a aprovechar al m\u00e1ximo los cambios y mejoras introducidos en Kotlin 1.4, le invitamos al <a href=\"https:\/\/kotlinlang.org\/lp\/event-14\" target=\"_blank\" rel=\"noopener\">evento online de Kotlin 1.4<\/a>, donde podr\u00e1 disfrutar de cuatro d\u00edas de charlas acerca de Kotlin, sesiones de preguntas y respuestas con el equipo de Kotlin y mucho m\u00e1s, totalmente gratis.<\/p>\n<h2 id=\"compiler-and-ecosystem\">Comunidad y ecosistema<\/h2>\n<p>M\u00e1s de 5,8 millones de personas han editado c\u00f3digo Kotlin en los \u00faltimos 12 meses, y las cifras no dejan de crecer:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1596831871952.png\" alt=\"archivo\" \/><\/p>\n<p>\u00a1Nos complace ver el \u00e9xito que est\u00e1 cosechando Kotlin! Los n\u00fameros de usuarios activos (explicaremos esta m\u00e9trica en m\u00e1s detalle en un art\u00edculo del blog m\u00e1s adelante) han sido especialmente satisfactorios. Las cifras se est\u00e1n quintuplicando con respecto a las de los a\u00f1os anteriores.<\/p>\n<p>Seg\u00fan la <a href=\"https:\/\/insights.stackoverflow.com\/survey\/2020#most-popular-technologies\" target=\"_blank\" rel=\"noopener\">Encuesta para desarrolladores de StackOverflow 2020<\/a>, Kotlin ha ascendido al 13.\u00ba puesto entre los lenguajes de programaci\u00f3n m\u00e1s populares para los desarrolladores profesionales, y nos alegra ver que Kotlin es uno de los 5 lenguajes m\u00e1s queridos.<\/p>\n<p>Muchas empresas han escogido Kotlin como lenguaje, y lo est\u00e1n utilizando con \u00e9xito en todas las plataformas. Nos agrada ver esta tendencia, y estamos enormemente agradecidos de que tantas de estas empresas hayan puesto estudios de casos a disposici\u00f3n de la comunidad para que las lea y aprenda de ellos. Estos son solo unos pocos geniales ejemplos de software recientemente desarrollado en Kotlin:<\/p>\n<ul>\n<li>Servidores: <a href=\"https:\/\/www.youtube.com\/watch?v=4GkoB4hZUnw\" target=\"_blank\" rel=\"noopener\">Atlassian<\/a>, <a href=\"https:\/\/medium.com\/adobetech\/streamlining-server-side-app-development-with-kotlin-be8cf9d8b61a\" target=\"_blank\" rel=\"noopener\">Adobe<\/a>, <a href=\"https:\/\/medium.com\/ing-blog\/introducing-kotlin-at-ing-a-long-but-rewarding-story-1bfcd3dc8da0\" target=\"_blank\" rel=\"noopener\">ING Bank<\/a>;<\/li>\n<li>Android: <a href=\"https:\/\/developer.android.com\/stories\/apps\/google-home\" target=\"_blank\" rel=\"noopener\">Google Home<\/a>, <a href=\"https:\/\/developer.android.com\/stories\/apps\/duolingo-kotlin\" target=\"_blank\" rel=\"noopener\">Duolingo<\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=ao9QvtpszOU\" target=\"_blank\" rel=\"noopener\">Zomato<\/a>;<\/li>\n<li>M\u00f3vil multiplataforma: <a href=\"https:\/\/medium.com\/vmware-end-user-computing\/adopting-a-cross-platform-strategy-for-mobile-apps-59495ffa23b0\" target=\"_blank\" rel=\"noopener\">VMware<\/a>, <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/116027\/\" target=\"_blank\" rel=\"noopener\">PlanGrid and CashApp<\/a>, <a href=\"https:\/\/shift.mirego.com\/en\/trikot\" target=\"_blank\" rel=\"noopener\">Trikot<\/a> de Mirego;<\/li>\n<li>Web: <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/137062\/\" target=\"_blank\" rel=\"noopener\">Space de JetBrains<\/a>, <a href=\"https:\/\/www.karhoo.com\/\" target=\"_blank\" rel=\"noopener\">Karhoo <\/a>, <a href=\"https:\/\/www.youtube.com\/watch?v=lzsF0NuhS6g\" target=\"_blank\" rel=\"noopener\">VisionForge (Laboratorio de Experimentos de F\u00edsica Nuclear del MIPT)<\/a>.<\/li>\n<\/ul>\n<p>Nuestras comunidades Kotlin tambi\u00e9n est\u00e1n creciendo con rapidez. M\u00e1s de 30.000 desarrolladores de Kotlin ya intercambian conocimiento y se apoyan entre s\u00ed en <a href=\"http:\/\/kotlinlang.slack.com\/\" target=\"_blank\" rel=\"noopener\">Slack<\/a> y <a href=\"https:\/\/www.reddit.com\/r\/Kotlin\/\" target=\"_blank\" rel=\"noopener\">Reddit<\/a>, y m\u00e1s de 90.000 personas siguen nuestra cuenta oficial de <a href=\"https:\/\/twitter.com\/kotlin\" target=\"_blank\" rel=\"noopener\">Twitter<\/a> para obtener consejos, trucos y noticias. Con m\u00e1s de 200 grupos de usuarios en todo el mundo, la comunidad Kotlin est\u00e1 prosperando y creciendo. Les damos las gracias a todos por ayudarnos a difundir el mensaje, compartir sus conocimientos y apoyar a sus colegas desarrolladores de Kotlin. El entorno c\u00e1lido y acogedor que ustedes crean es lo que hace que explorar Kotlin juntos sea una experiencia tan agradable. No ser\u00eda lo mismo sin ustedes.<\/p>\n<h3 id=\"online-event\">Evento online de Kotlin 1.4<\/h3>\n<p>Queremos asegurarnos de que disfruten de una gran experiencia utilizando Kotlin 1.4, y deseamos que sepan bien hacia d\u00f3nde vamos a continuar desarrollando el lenguaje. Por eso estamos encantados de invitarles a todos a nuestro evento online de Kotlin 1.4.<\/p>\n<p>Se trata de cuatro d\u00edas llenos de conocimientos sobre Kotlin y el futuro del lenguaje y su ecosistema: hablaremos de los nuevos cambios y mejoras que hemos realizado en Kotlin 1.4, y compartiremos nuestros planes futuros para el lenguaje. Los miembros de nuestro equipo de Kotlin responder\u00e1n a sus preguntas en sesiones diarias de preguntas y respuestas. Env\u00ede sus preguntas con antelaci\u00f3n tuite\u00e1ndolas con el hashtag <a href=\"https:\/\/twitter.com\/search?q=%23kotlin14ask&amp;src=typed_query\" target=\"_blank\" rel=\"noopener\">#kotlin14ask<\/a>, o utilizando <a href=\"https:\/\/surveys.jetbrains.com\/s3\/Q-A-Your-question-for-the-Kotlin-team\" target=\"_blank\" rel=\"noopener\">este formulario<\/a>.<\/p>\n<p>El evento online de Kotlin 1.4 se retransmitir\u00e1 del 12 al 15 de octubre, y puede registrarse <em>gratuitamente<\/em> aqu\u00ed:<\/p>\n<p align=\"center\"><a class=\"jb-download-button\" href=\"https:\/\/kotlinlang.org\/lp\/event-14#registration\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Reg\u00edstrese en el evento online de Kotlin 1.4<\/a><\/p>\n<p>\u00a1Esperamos verles a todos all\u00ed!<\/p>\n<h2 id=\"focusing-on-quality\">Centrados en la calidad<\/h2>\n<p>En esta versi\u00f3n, nuestro objetivo principal era mejorar la experiencia general de desarrollo con Kotlin, incluyendo una estabilidad y un rendimiento del IDE mejorados. Queremos que los usuarios de Kotlin sean lo m\u00e1s productivos posible, y nos hemos centrado en mejorar todo aquello que es importante para ellos, \u00a1para disfruten todav\u00eda m\u00e1s de utilizarlo!<\/p>\n<p>Hemos revisado y solucionado <a href=\"https:\/\/youtrack.jetbrains.com\/issues?q=%23%7BPerformance%20Problem%7D%20Subsystems:%20%7BIDE*%7D%20%23Fixed%20resolved%20date:%202019-10%20..%20Today%20and%20Target%20versions:%20-1.4.20\" target=\"_blank\" rel=\"noopener\">m\u00e1s de 60<\/a> problemas de rendimiento, incluyendo muchos que causaban que el IDE se colgase y se produjesen fugas de memoria. Durante la fase de acceso anticipado a Kotlin 1.4.0, recopilamos muchos comentarios positivos que indican que la experiencia general es ahora mucho m\u00e1s agradable.<\/p>\n<p>Cuando trabaja en un proyecto y abre un archivo de Kotlin grande por primera vez, ahora ve su contenido con partes resaltadas mucho antes. En la mayor\u00eda de los casos, el resaltado es ahora de 1,5 a 4 veces m\u00e1s r\u00e1pido:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1596832840332.png\" data-gif-src=\"https:\/\/resources.jetbrains.com\/storage\/products\/blog\/wp-content\/uploads\/Kotlin\/1.4-release-highlighting.gif\" width=\"607\" height=\"454\" \/><\/p>\n<p>Tambi\u00e9n hemos mejorado significativamente el tiempo que se tarda en autocompletar las sugerencias que aparecer\u00e1n. El siguiente gr\u00e1fico muestra una descripci\u00f3n general del tiempo de respuesta promedio de autocompletado experimentado por los usuarios de Kotlin. El n\u00famero de casos en los que completar lleva m\u00e1s de 500 ms se ha reducido casi a la mitad:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/08\/image-1597151211621.png\" alt=\"archivo\" \/><\/p>\n<p>Tenga en cuenta que estos cambios m\u00e1s recientes, incluido el resaltado de c\u00f3digo m\u00e1s r\u00e1pido, requieren IntelliJ IDEA 2020.1+ y Android Studio 4.1+.<\/p>\n<p>Las mejoras de rendimiento contin\u00faan en marcha, y hemos planeado muchas m\u00e1s, como continuar trabajando en evitar que se cuelgue y hacer que teclear resulte m\u00e1s suave. Ya hemos comenzado la integraci\u00f3n con el nuevo <a href=\"#new-compiler\">frontend del compilador<\/a> experimental de Kotlin que har\u00e1 que el IDE sea mucho m\u00e1s r\u00e1pido. Se trata de una ardua tarea que requiere reescribir muchas partes del complemento, pero mejorar\u00e1 el rendimiento en muchas \u00e1reas del IDE, incluyendo la finalizaci\u00f3n de c\u00f3digo, resaltado de sintaxis e informes de errores del compilador.<\/p>\n<h3 id=\"new-ide-functionality\">Nueva funcionalidad del IDE<\/h3>\n<p>La misi\u00f3n de JetBrains es que el desarrollo de software sea una experiencia m\u00e1s agradable y productiva, as\u00ed que naturalmente queremos asegurarnos de que las herramientas en torno a Kotlin sean excelentes y hagan que codificar con Kotlin sea lo m\u00e1s sencillo posible.<\/p>\n<p>Para facilitarle el trabajo con corrutinas, y especialmente para detectar errores en su aplicaci\u00f3n simult\u00e1nea, hemos introducido el <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#coroutine-debugger\" target=\"_blank\" rel=\"noopener\">Coroutine Debugger<\/a>. Vamos a ampliar el conjunto de recursos inicial para incluir las funcionalidades que la comunidad m\u00e1s necesita, as\u00ed que no dude en darnos su opini\u00f3n utilizando uno de nuestros canales o en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<p>Tambi\u00e9n vamos a introducir un nuevo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-flexible-project-wizard\" target=\"_blank\" rel=\"noopener\">asistente de proyectos de Kotlin<\/a> flexible. Este nuevo asistente ofrece una \u00fanica plataforma desde la que crear y configurar proyectos de Kotlin de distintos tipos, facilitando comenzar incluso con estructuras m\u00e1s complejas, como proyectos multiplataforma.<\/p>\n<p>Se han a\u00f1adido m\u00e1s de <a href=\"https:\/\/youtrack.jetbrains.com\/issues?q=%23Feature%20Subsystems:%20%7BIDE.%20Inspections%20and%20Intentions%7D%20%23Fixed%20resolved%20date:%202019-10%20..%20Today%20and%20Target%20versions:%20-1.4.20\" target=\"_blank\" rel=\"noopener\">40 nuevas soluciones<\/a>, intenciones e inspecciones con Kotlin 1.4.0, y estar\u00e1n disponibles exactamente cuando las necesite, cuando modifique su c\u00f3digo y <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/intention-actions.html#apply-intention-actions\" target=\"_blank\" rel=\"noopener\">pulse Alt+Enter<\/a> para ver qu\u00e9 hay disponible en su contexto espec\u00edfico.<\/p>\n<h3 id=\"new-compiler\">Nuevo compilador<\/h3>\n<p>Hace ya alg\u00fan tiempo que trabajamos en un nuevo compilador de Kotlin que continuar\u00e1 con la evoluci\u00f3n de Kotlin en cuanto a rendimiento y extensibilidad. Los principales objetivos del nuevo compilador son que sea muy r\u00e1pido, que unifique todas las plataformas compatibles con Kotlin y ofrecer una API para las extensiones del compilador. Estamos introduciendo nuevas piezas de forma paulatina, para que lleguen al usuario lo antes posible. Con Kotlin 1.4.0 vamos a lanzar varias partes de este esfuerzo continuo:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-more-powerful-type-inference-algorithm\" target=\"_blank\" rel=\"noopener\">El nuevo y m\u00e1s potente algoritmo de inferencia de tipo<\/a> est\u00e1 habilitado de forma predeterminada. Infiere tipos autom\u00e1ticamente en m\u00e1s casos de uso, es compatible con conversiones inteligentes incluso en escenarios complicados, mejora la inferencia de propiedades delegadas, y m\u00e1s.<\/li>\n<li>Hay <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#unified-backends-and-extensibility\" target=\"_blank\" rel=\"noopener\">nuevos backends de JVM y JS<\/a> disponibles en modo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/evolution\/components-stability.html\" target=\"_blank\" rel=\"noopener\">Alpha<\/a>. Una vez estabilizados, se convertir\u00e1n en los nuevos predeterminados.<\/li>\n<\/ul>\n<p>Estamos trabajando activamente en una nueva implementaci\u00f3n de frontend, que ofrecer\u00e1 el mayor aumento del rendimiento en el proceso del compilador. El frontend es la parte del compilador que analiza el c\u00f3digo, resuelve nombres, realiza la verificaci\u00f3n de tipos y m\u00e1s, por lo que tambi\u00e9n afecta el rendimiento del IDE. En futuras versiones lanzaremos una vista previa, as\u00ed que \u00a1no se lo pierda!<\/p>\n<h2 id=\"language-features\">Funcionalidades del lenguaje<\/h2>\n<p>Kotlin 1.4 incluye muchas nuevas funcionalidades:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#sam-conversions-for-kotlin-interfaces\" target=\"_blank\" rel=\"noopener\">Conversiones SAM para la interfaces de Kotlin<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#explicit-api-mode-for-library-authors\" target=\"_blank\" rel=\"noopener\">Modo API expl\u00edcito para autores de bibliotecas<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#mixing-named-and-positional-arguments\" target=\"_blank\" rel=\"noopener\">Mezcla de argumentos con nombre y posicionales<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#trailing-comma\" target=\"_blank\" rel=\"noopener\">Trailing comma<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#callable-reference-improvements\" target=\"_blank\" rel=\"noopener\">Mejoras en la referencia Callable<\/a><\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#using-break-and-continue-inside-when-expressions-included-in-loops\" target=\"_blank\" rel=\"noopener\">Uso de <code>break<\/code> y <code>continue<\/code> dentro de <code>when<\/code> en bucles<\/a><\/li>\n<\/ul>\n<h2 id=\"library-improvements\">Mejoras en las bibliotecas<\/h2>\n<p>Nuestra prioridad general para la biblioteca est\u00e1ndar es mejorar la coherencia, tanto entre distintas plataformas como entre las propias operaciones. En esta versi\u00f3n, la biblioteca est\u00e1ndar de Kotlin cuenta con <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-functions-for-arrays-and-collections\" target=\"_blank\" rel=\"noopener\">nuevos operadores de colecci\u00f3n<\/a>, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#delegated-properties-improvements\" target=\"_blank\" rel=\"noopener\">mejoras en propiedades delegadas<\/a>, <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#arraydeque\" target=\"_blank\" rel=\"noopener\">implementaci\u00f3n de cola de doble fin <code>ArrayDeque<\/code><\/a> y mucho <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#standard-library\" target=\"_blank\" rel=\"noopener\">m\u00e1s<\/a>.<\/p>\n<p>Puede utilizar la biblioteca est\u00e1ndar en c\u00f3digo &quot;com\u00fan&quot; (el c\u00f3digo compartido entre distintas plataformas, ya sean Android &amp; iOS o JVM &amp; JS). Estamos ampliando gradualmente la biblioteca com\u00fan y a\u00f1adiendo o trasladando a ella funciones que faltaban.<\/p>\n<p>Adem\u00e1s, tampoco es necesario ya declarar una dependencia en <code>stdlib<\/code> en cualquier proyecto Gradle Kotlin, tanto si su objetivo es una \u00fanica plataforma como si trabaja en un proyecto multiplataforma. Desde Kotlin 1.4.0, esta dependencia se <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#dependency-on-the-standard-library-added-by-default\" target=\"_blank\" rel=\"noopener\">a\u00f1ade de forma predeterminada<\/a>.<\/p>\n<p>Estamos trabajando en otras partes del ecosistema Kotlin:<\/p>\n<ul>\n<li>Estamos haciendo evolucionar gradualmente <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.coroutines\" target=\"_blank\" rel=\"noopener\">kotlinx.coroutines<\/a> bas\u00e1ndonos en sus comentarios.<\/li>\n<li>La <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/serialization.html\" target=\"_blank\" rel=\"noopener\">biblioteca de serializaci\u00f3n<\/a> se acerca a su madurez. \u00a1Hoy lanzamos <a href=\"https:\/\/github.com\/Kotlin\/kotlinx.serialization\/releases\/tag\/1.0.0-RC\" target=\"_blank\" rel=\"noopener\">kotlinx.serialization<\/a> 1.0.0-RC!<\/li>\n<li>Ya hemos lanzado la vista previa de la API DateTime, la biblioteca <a href=\"https:\/\/github.com\/Kotlin\/kotlinx-datetime\" target=\"_blank\" rel=\"noopener\">kotlinx-datetime<\/a> en un estado experimental.<\/li>\n<\/ul>\n<h2 id=\"kotlin-jvm\">Kotlin\/JVM<\/h2>\n<p>Le recomendamos que pruebe el nuevo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-jvm-ir-backend\" target=\"_blank\" rel=\"noopener\">backend de Kotlin\/JVM<\/a> Alpha para sus proyectos habituales y nos env\u00ede sus comentarios. Junto con la unificaci\u00f3n de los procesos del compilador, este esfuerzo nos ayudar\u00e1 a traer las extensiones del compilador como <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> a la comunidad Kotlin m\u00e1s r\u00e1pidamente.<\/p>\n<p>Funcionalidades del lenguaje espec\u00edfico para Kotlin\/JVM:<\/p>\n<ul>\n<li>Hemos a\u00f1adido <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-modes-for-generating-default-methods\" target=\"_blank\" rel=\"noopener\">nuevos modos experimentales de generar m\u00e9todos predeterminados<\/a> en interfaces en el bytecode (para el destino Java 8).<\/li>\n<li>Hemos introducido <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#unified-exception-type-for-null-checks\" target=\"_blank\" rel=\"noopener\">tipos de excepci\u00f3n unificados para comprobaciones null<\/a>.<\/li>\n<li>Kotlin ahora puede generar <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#type-annotations-in-the-jvm-bytecode\" target=\"_blank\" rel=\"noopener\">anotaciones de tipo<\/a> en el bytecode JVM, de modo que est\u00e9n disponibles en el Java reflection en tiempo de ejecuci\u00f3n. Esto funciona para las versiones de destino 8 y posteriores, y por ahora se ha lanzado en modo experimental.<\/li>\n<\/ul>\n<h2 id=\"kotlin-js\">Kotlin\/JS<\/h2>\n<p>Kotlin 1.4.0 cuenta con el nuevo Gradle DSL y una versi\u00f3n Alpha del nuevo backend del compilador Kotlin\/JS, entre otras funcionalidades.<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-gradle-dsl\" target=\"_blank\" rel=\"noopener\">El nuevo Gradle DSL<\/a> incluye compatibilidad con la configuraci\u00f3n de CSS y cargadores de estilos desde el DSL, agrega varias mejoras relacionadas con la gesti\u00f3n de dependencias npm y mejora el control de la integraci\u00f3n en Dukat.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#new-js-ir-backend\" target=\"_blank\" rel=\"noopener\">El backend del compilador Kotlin\/JS<\/a> da una idea del futuro de Kotlin\/JS. Incluye optimizaciones y funcionalidades como la generaci\u00f3n autom\u00e1tica de definiciones TypeScript desde el c\u00f3digo Kotlin, paquetes y binarios m\u00e1s peque\u00f1os, un modo modernizado de exponer la funcionalidad de Kotlin a JavaScript y m\u00e1s.<\/li>\n<\/ul>\n<h2 id=\"kotlin-native\">Kotlin\/Native<\/h2>\n<p>Kotlin\/Native obtuvo un n\u00famero significativo de nuevas funcionalidades y mejoras, que incluyen:<\/p>\n<ul>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#performance-improvements\" target=\"_blank\" rel=\"noopener\">Mejoras en el rendimiento general de la compilaci\u00f3n y ejecuci\u00f3n de Kotlin\/Native<\/a>.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#support-for-kotlins-suspending-functions-in-swift-and-objective-c\" target=\"_blank\" rel=\"noopener\">Interoperabilidad mejorada entre Kotlin\/Native y Swift \/ Obj-C<\/a>.<\/li>\n<li><a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#simplified-management-of-cocoapods-dependencies\" target=\"_blank\" rel=\"noopener\">Gesti\u00f3n simplificada de dependencias de CocoaPods<\/a>.<\/li>\n<\/ul>\n<p>La actual implementaci\u00f3n de gesti\u00f3n de memoria autom\u00e1tica en Kotlin\/Native presenta limitaciones en cuanto a simultaneidad, y estamos trabajando en una <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2020\/07\/kotlin-native-memory-management-roadmap\/\">alternativa<\/a>.<\/p>\n<p>Un objetivo importante para Kotlin\/Native es que resulte perfectamente fluido con <a href=\"https:\/\/www.jetbrains.com\/lp\/mobilecrossplatform\/\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform Mobile<\/a>, pero no se limita a ello.<\/p>\n<h2 id=\"kotlin-multiplatform\">Kotlin multiplataforma<\/h2>\n<p>Hacer de Kotlin una gran soluci\u00f3n multiplataforma es una de nuestras prioridades. <a href=\"https:\/\/kotlinconf.com\/2019\/talks\/video\/2019\/130754\/\" target=\"_blank\" rel=\"noopener\">Prometimos<\/a> algunas mejoras importantes en la KotlinConf, y nos complace informarle de que hemos cumplido nuestra promesa:<\/p>\n<ul>\n<li>Gracias a la <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#sharing-code-in-several-targets-with-the-hierarchical-project-structure\" target=\"_blank\" rel=\"noopener\">estructura de proyectos jer\u00e1rquica<\/a> ahora puede compartir c\u00f3digo entre un subconjunto espec\u00edfico de destinos, como el similar destino de dispositivos iOS ARM64 y el destino de simuladores x64.<\/li>\n<li>Puede <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#leveraging-native-libs-in-the-hierarchical-structure\" target=\"_blank\" rel=\"noopener\">utilizar bibliotecas dependientes de plataformas a partir del c\u00f3digo com\u00fan compartido entre varios destinos nativos<\/a>.<\/li>\n<li>Puede <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#specifying-dependencies-only-once\" target=\"_blank\" rel=\"noopener\">especificar una dependencia solo una vez<\/a> en el conjunto de fuentes compartido en lugar de especificar dependencias en diferentes variantes de la misma biblioteca en conjuntos de fuentes compartidos y espec\u00edficos de una plataforma.<\/li>\n<li>Seguimos trabajando en el formato de biblioteca Kotlin, Klib, que se utiliza en segundo plano para compartir las bibliotecas multiplataforma.<\/li>\n<\/ul>\n<p>Estamos trabajando en un complemento de Android Studio para ejecutar, probar y depurar c\u00f3digo Kotlin en dispositivos y simuladores iOS. La primera vista previa p\u00fablica se lanzar\u00e1 muy pronto, as\u00ed que \u00a1est\u00e9 atento!<\/p>\n<p>Pronto lanzaremos toda una serie de materiales creados con ayuda de los miembros de la comunidad Kotlin para explicarle c\u00f3mo utilizar la tecnolog\u00eda Kotlin Multiplatform Mobile (KMM) espec\u00edficamente para los casos de uso para m\u00f3viles, en los que Android e iOS comparten c\u00f3digo.<\/p>\n<p>A pesar de que ahora estamos centrados principalmente en los m\u00f3viles, Jetbrains ya utiliza activamente la web para Kotlin multiplataforma para crear y enviar <a href=\"https:\/\/www.jetbrains.com\/space\/\" target=\"_blank\" rel=\"noopener\">JetBrains Space<\/a>. La web contin\u00faa siendo una importante inversi\u00f3n estrat\u00e9gica para Kotlin.<\/p>\n<h2 id=\"more-details\">M\u00e1s detalles<\/h2>\n<p>Encontrar\u00e1 descripciones detalladas de las nuevas funcionalidades en <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html\" target=\"_blank\" rel=\"noopener\">la p\u00e1gina y la documentaci\u00f3n de novedades de Kotlin 1.4<\/a>, y podr\u00e1 leer m\u00e1s acerca de c\u00f3mo <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/whatsnew14.html#migrating-to-kotlin-140\" target=\"_blank\" rel=\"noopener\">migrar a Kotlin 1.4<\/a>.<\/p>\n<p>Como en todas las versiones principales, algunos ciclos de entrada en desuso de cambios anunciados previamente llegar\u00e1n a su fin con Kotlin 1.4. El <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/evolution\/kotlin-evolution.html#decision-making\" target=\"_blank\" rel=\"noopener\">comit\u00e9 del lenguaje<\/a> ha revisado detenidamente todos estos casos y los ha incluido en la<\/p>\n<p>Gu\u00eda de compatibilidad de Kotlin 1.4<\/0>. <\/p>\n<\/p>\n<h2 id=\"how-to-help-us\">Ay\u00fadenos a mejorar Kotlin<\/h2>\n<p>El completo para Kotlin de IntelliJ IDEA y Android Studio puede recopilar estad\u00edsticas anonimizadas sobre c\u00f3mo utiliza esta funcionalidad. Le rogamos que contribuya a estas estad\u00edsticas.<\/p>\n<p>Estos datos an\u00f3nimos nos ayudan en gran medida a comprender mejor nuestra base de usuarios, a ver qu\u00e9 funciona, qu\u00e9 causa dificultades y en qu\u00e9 deber\u00edamos centrarnos. Para habilitar las estad\u00edsticas, vaya a <em>Preferences<\/em>, abra <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/settings-usage-statistics.html\" target=\"_blank\" rel=\"noopener\"><em>Appearance &amp; Behaviour | System Settings | Data Sharing<\/em><\/a> y marque la casilla <em>Send usage statistics<\/em>.<\/p>\n<h3 id=\"top-issue-reporters\">Principales notificadores de incidencias desde Kotlin 1.3<\/h3>\n<p>\u00a1Nos gustar\u00eda agradecer a todos los miembros de la comunidad que nos han ayudado a mejorar esta versi\u00f3n al informar incidencias a <a href=\"http:\/\/kotl.in\/issue\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>! Hemos hecho una lista de los 20 principales notificadores a los que queremos agradecer especialmente:<\/p>\n<p><a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20panell\" target=\"_blank\" rel=\"noopener\">Igor Wojda<\/a> (145 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20louis.cad\" target=\"_blank\" rel=\"noopener\">Louis CAD<\/a> (87 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20fluidsonic\" target=\"_blank\" rel=\"noopener\">Marc Knaup<\/a> (86 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20lblb636\" target=\"_blank\" rel=\"noopener\">AndroidDeveloperLB<\/a> (83 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Robert_Stoll\" target=\"_blank\" rel=\"noopener\">Robert Stoll<\/a> (68 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20kotlinisland\" target=\"_blank\" rel=\"noopener\">Morgan Bartholomew<\/a> (62 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Turansky\" target=\"_blank\" rel=\"noopener\">Victor Turansky<\/a> (54 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20him188\" target=\"_blank\" rel=\"noopener\">Guan Tianyi<\/a> (51 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20spierce7.1\" target=\"_blank\" rel=\"noopener\">Scott Pierce<\/a> (38 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20gamalik\" target=\"_blank\" rel=\"noopener\">Andreas Malik<\/a> (37 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20stevenschaefer\" target=\"_blank\" rel=\"noopener\">Steven Sch\u00e4fer<\/a> (37 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Vampire\" target=\"_blank\" rel=\"noopener\">Bj\u00f6rn Kautler<\/a> (36 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20TWiStErRob\" target=\"_blank\" rel=\"noopener\">R\u00f3bert Papp<\/a> (34 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20t-kameyama\" target=\"_blank\" rel=\"noopener\">Toshiaki Kameyama<\/a> (30 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20nbilyk3\" target=\"_blank\" rel=\"noopener\">Nicholas Bilyk<\/a> (29 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Michael.Bailey\" target=\"_blank\" rel=\"noopener\">Michael Bailey<\/a> (26 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Jake.Wharton\" target=\"_blank\" rel=\"noopener\">Jake Wharton<\/a> (25 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20lamba92\" target=\"_blank\" rel=\"noopener\">Lamberto Basti<\/a> (24 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20sergepro\" target=\"_blank\" rel=\"noopener\">Serge Pro<\/a> (23 incidencias); <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT?q=created:%202018-10-29%20..%20*%20created%20by:%20Egorand\" target=\"_blank\" rel=\"noopener\">Egor Andreevici<\/a> (21 incidencias).<\/p>\n<h2 id=\"start-using\">\u00a1Comience a usar Kotlin 1.4 ahora mismo!<\/h2>\n<p>Como siempre, puede probar Kotlin online en <a href=\"http:\/\/play.kotl.in\/\" target=\"_blank\" rel=\"noopener\">play.kotl.in<\/a>.<\/p>\n<p>En Gradle y Maven, utilice 1.4.0 como versi\u00f3n del compilador. Vea los documentos de <a href=\"http:\/\/kotlinlang.org\/docs\/reference\/using-gradle.html\" target=\"_blank\" rel=\"noopener\">Gradle<\/a> y <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/using-maven.html\" target=\"_blank\" rel=\"noopener\">Maven<\/a>.<\/p>\n<p>IntelliJ IDEA y Android Studio autom\u00e1ticamente <a href=\"https:\/\/kotlinlang.org\/releases.html#updating-to-a-new-release\" target=\"_blank\" rel=\"noopener\">le piden<\/a> que actualice el complemento Kotlin a la versi\u00f3n 1.4.0. Tambi\u00e9n puede abrir <a href=\"https:\/\/www.jetbrains.com\/help\/idea\/managing-plugins.html\" target=\"_blank\" rel=\"noopener\">Preferences | Plugins<\/a> y actualizar el complemento de Kotlin manualmente.<\/p>\n<p>El compilador de l\u00ednea de comandos se puede descargar desde la <a href=\"https:\/\/github.com\/JetBrains\/kotlin\/releases\/tag\/v1.4.0\" target=\"_blank\" rel=\"noopener\">p\u00e1gina de lanzamiento de GitHub<\/a>.<\/p>\n<p>Puede usar las siguientes versiones de las bibliotecas publicadas junto a esta versi\u00f3n:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.coroutines\" target=\"_blank\" rel=\"noopener\">kotlinx.coroutines<\/a> versi\u00f3n: <code>1.3.9<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.serialization\" target=\"_blank\" rel=\"noopener\">kotlinx.serialization<\/a> versi\u00f3n: <code>1.0.0-RC<\/code><\/li>\n<li><a href=\"https:\/\/ktor.io\/\" target=\"_blank\" rel=\"noopener\">ktor<\/a> versi\u00f3n: <code>1.4.0<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.atomicfu\" target=\"_blank\" rel=\"noopener\">kotlinx.atomicfu<\/a> versi\u00f3n: <code>0.14.4<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx.html\" target=\"_blank\" rel=\"noopener\">kotlinx.html<\/a> versi\u00f3n: <code>0.7.2<\/code><\/li>\n<li><a href=\"https:\/\/github.com\/Kotlin\/kotlinx-nodejs\" target=\"_blank\" rel=\"noopener\">kotlinx-nodejs<\/a> versi\u00f3n: <code>0.0.6<\/code><\/li>\n<\/ul>\n<p>Las versiones de las bibliotecas de <code>kotlin-wrappers<\/code> (<code>kotlin-react<\/code> etc.) se pueden encontrar en el <a href=\"https:\/\/github.com\/JetBrains\/kotlin-wrappers\" target=\"_blank\" rel=\"noopener\">repositorio<\/a> correspondiente.<\/p>\n<p>Las \u00faltimas mejoras de rendimiento de IDE, incluido el resaltado de c\u00f3digo m\u00e1s r\u00e1pido, requieren IntelliJ IDEA 2020.1+ y Android Studio 4.1+.<\/p>\n<p>Si encuentra alg\u00fan problema con la nueva versi\u00f3n, encontrar\u00e1 ayuda en <a href=\"http:\/\/kotlinlang.slack.com\/\" target=\"_blank\" rel=\"noopener\">Slack<\/a> (obtenga una invitaci\u00f3n <a href=\"http:\/\/slack.kotlinlang.org\/\" target=\"_blank\" rel=\"noopener\">aqu\u00ed<\/a>) e informe acerca de las incidencias en nuestro <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/KT\" target=\"_blank\" rel=\"noopener\">YouTrack<\/a>.<\/p>\n<h2 id=\"thank-you\">\u00a1Gracias!<\/h2>\n<p>Estamos verdaderamente agradecidos a todos los que lo han probado y nos han enviado sus comentarios sobre los programas de acceso anticipado a Kotlin y sus funcionalidades experimentales. Estamos desarrollando el lenguaje Kotlin junto con ustedes, y tomamos muchas decisiones de dise\u00f1o bas\u00e1ndonos en su valiosa opini\u00f3n. Es muy importante continuar con este bucle de feedback de la comunidad tan r\u00e1pido y eficaz para ayudar a Kotlin a lograr su mejor versi\u00f3n.<\/p>\n<p>Nos gustar\u00eda agradecer enormemente a todos los contribuidores externos cuyas solicitudes de incorporaci\u00f3n de cambios se han incluido en esta versi\u00f3n. \u00a1Nos han ayudado a que esta versi\u00f3n sea posible!<\/p>\n<p>Estamos verdaderamente agradecidos a todos los miembros de nuestra comunidad que est\u00e1n creando cosas tan geniales con Kotlin. <em>Kotlin 1.4: \u00a1Uno para todos!<\/em><\/p>\n","protected":false},"author":1086,"featured_media":67108,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/67097"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/comments?post=67097"}],"version-history":[{"count":1,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/67097\/revisions"}],"predecessor-version":[{"id":67170,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/kotlin\/67097\/revisions\/67170"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/67108"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=67097"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=67097"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=67097"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=67097"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}