Lanzamos Kotlin 1.4: calidad y rendimiento

Publicado el por luizdibella

¡Hoy lanzamos Kotlin 1.4.0! Durante los últimos años hemos trabajado duro para hacer de Kotlin un lenguaje de programación divertido, agradable y productivo con el trabajar. Para continuar buscando este objetivo con esta versión de Kotlin, dedicamos muchos esfuerzo a mejorar el rendimiento y la calidad de Kotlin y sus herramientas. También estamos encantados de anunciar la compatibilidad con varias nuevas funcionalidades del lenguaje, incluyendo las esperadas conversiones SAM para interfaces de Kotlin.

file

Para ayudarle a aprovechar al máximo los cambios y mejoras introducidos en Kotlin 1.4, le invitamos al evento online de Kotlin 1.4, donde podrá disfrutar de cuatro días de charlas acerca de Kotlin, sesiones de preguntas y respuestas con el equipo de Kotlin y mucho más, totalmente gratis.

Comunidad y ecosistema

Más de 5,8 millones de personas han editado código Kotlin en los últimos 12 meses, y las cifras no dejan de crecer:

archivo

¡Nos complace ver el éxito que está cosechando Kotlin! Los números de usuarios activos (explicaremos esta métrica en más detalle en un artículo del blog más adelante) han sido especialmente satisfactorios. Las cifras se están quintuplicando con respecto a las de los años anteriores.

Según la Encuesta para desarrolladores de StackOverflow 2020, Kotlin ha ascendido al 13.º puesto entre los lenguajes de programación más populares para los desarrolladores profesionales, y nos alegra ver que Kotlin es uno de los 5 lenguajes más queridos.

Muchas empresas han escogido Kotlin como lenguaje, y lo están utilizando con éxito 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ón de la comunidad para que las lea y aprenda de ellos. Estos son solo unos pocos geniales ejemplos de software recientemente desarrollado en Kotlin:

Nuestras comunidades Kotlin también están creciendo con rapidez. Más de 30.000 desarrolladores de Kotlin ya intercambian conocimiento y se apoyan entre sí en Slack y Reddit, y más de 90.000 personas siguen nuestra cuenta oficial de Twitter para obtener consejos, trucos y noticias. Con más de 200 grupos de usuarios en todo el mundo, la comunidad Kotlin está 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álido y acogedor que ustedes crean es lo que hace que explorar Kotlin juntos sea una experiencia tan agradable. No sería lo mismo sin ustedes.

Evento online de Kotlin 1.4

Queremos asegurarnos de que disfruten de una gran experiencia utilizando Kotlin 1.4, y deseamos que sepan bien hacia dónde vamos a continuar desarrollando el lenguaje. Por eso estamos encantados de invitarles a todos a nuestro evento online de Kotlin 1.4.

Se trata de cuatro días 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án a sus preguntas en sesiones diarias de preguntas y respuestas. Envíe sus preguntas con antelación tuiteándolas con el hashtag #kotlin14ask, o utilizando este formulario.

El evento online de Kotlin 1.4 se retransmitirá del 12 al 15 de octubre, y puede registrarse gratuitamente aquí:

Regístrese en el evento online de Kotlin 1.4

¡Esperamos verles a todos allí!

Centrados en la calidad

En esta versión, 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ás productivos posible, y nos hemos centrado en mejorar todo aquello que es importante para ellos, ¡para disfruten todavía más de utilizarlo!

Hemos revisado y solucionado más de 60 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ás agradable.

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ía de los casos, el resaltado es ahora de 1,5 a 4 veces más rápido:

También hemos mejorado significativamente el tiempo que se tarda en autocompletar las sugerencias que aparecerán. El siguiente gráfico muestra una descripción general del tiempo de respuesta promedio de autocompletado experimentado por los usuarios de Kotlin. El número de casos en los que completar lleva más de 500 ms se ha reducido casi a la mitad:

archivo

Tenga en cuenta que estos cambios más recientes, incluido el resaltado de código más rápido, requieren IntelliJ IDEA 2020.1+ y Android Studio 4.1+.

Las mejoras de rendimiento continúan en marcha, y hemos planeado muchas más, como continuar trabajando en evitar que se cuelgue y hacer que teclear resulte más suave. Ya hemos comenzado la integración con el nuevo frontend del compilador experimental de Kotlin que hará que el IDE sea mucho más rápido. Se trata de una ardua tarea que requiere reescribir muchas partes del complemento, pero mejorará el rendimiento en muchas áreas del IDE, incluyendo la finalización de código, resaltado de sintaxis e informes de errores del compilador.

Nueva funcionalidad del IDE

La misión de JetBrains es que el desarrollo de software sea una experiencia más agradable y productiva, así que naturalmente queremos asegurarnos de que las herramientas en torno a Kotlin sean excelentes y hagan que codificar con Kotlin sea lo más sencillo posible.

Para facilitarle el trabajo con corrutinas, y especialmente para detectar errores en su aplicación simultánea, hemos introducido el Coroutine Debugger. Vamos a ampliar el conjunto de recursos inicial para incluir las funcionalidades que la comunidad más necesita, así que no dude en darnos su opinión utilizando uno de nuestros canales o en la sección de comentarios a continuación.

También vamos a introducir un nuevo asistente de proyectos de Kotlin flexible. Este nuevo asistente ofrece una única plataforma desde la que crear y configurar proyectos de Kotlin de distintos tipos, facilitando comenzar incluso con estructuras más complejas, como proyectos multiplataforma.

Se han añadido más de 40 nuevas soluciones, intenciones e inspecciones con Kotlin 1.4.0, y estarán disponibles exactamente cuando las necesite, cuando modifique su código y pulse Alt+Enter para ver qué hay disponible en su contexto específico.

Nuevo compilador

Hace ya algún tiempo que trabajamos en un nuevo compilador de Kotlin que continuará con la evolución de Kotlin en cuanto a rendimiento y extensibilidad. Los principales objetivos del nuevo compilador son que sea muy rápido, 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:

Estamos trabajando activamente en una nueva implementación de frontend, que ofrecerá el mayor aumento del rendimiento en el proceso del compilador. El frontend es la parte del compilador que analiza el código, resuelve nombres, realiza la verificación de tipos y más, por lo que también afecta el rendimiento del IDE. En futuras versiones lanzaremos una vista previa, así que ¡no se lo pierda!

Funcionalidades del lenguaje

Kotlin 1.4 incluye muchas nuevas funcionalidades:

Mejoras en las bibliotecas

Nuestra prioridad general para la biblioteca estándar es mejorar la coherencia, tanto entre distintas plataformas como entre las propias operaciones. En esta versión, la biblioteca estándar de Kotlin cuenta con nuevos operadores de colección, mejoras en propiedades delegadas, implementación de cola de doble fin ArrayDeque y mucho más.

Puede utilizar la biblioteca estándar en código "común" (el código compartido entre distintas plataformas, ya sean Android & iOS o JVM & JS). Estamos ampliando gradualmente la biblioteca común y añadiendo o trasladando a ella funciones que faltaban.

Además, tampoco es necesario ya declarar una dependencia en stdlib en cualquier proyecto Gradle Kotlin, tanto si su objetivo es una única plataforma como si trabaja en un proyecto multiplataforma. Desde Kotlin 1.4.0, esta dependencia se añade de forma predeterminada.

Estamos trabajando en otras partes del ecosistema Kotlin:

Kotlin/JVM

Le recomendamos que pruebe el nuevo backend de Kotlin/JVM Alpha para sus proyectos habituales y nos envíe sus comentarios. Junto con la unificación de los procesos del compilador, este esfuerzo nos ayudará a traer las extensiones del compilador como Jetpack Compose a la comunidad Kotlin más rápidamente.

Funcionalidades del lenguaje específico para Kotlin/JVM:

Kotlin/JS

Kotlin 1.4.0 cuenta con el nuevo Gradle DSL y una versión Alpha del nuevo backend del compilador Kotlin/JS, entre otras funcionalidades.

  • El nuevo Gradle DSL incluye compatibilidad con la configuración de CSS y cargadores de estilos desde el DSL, agrega varias mejoras relacionadas con la gestión de dependencias npm y mejora el control de la integración en Dukat.
  • El backend del compilador Kotlin/JS da una idea del futuro de Kotlin/JS. Incluye optimizaciones y funcionalidades como la generación automática de definiciones TypeScript desde el código Kotlin, paquetes y binarios más pequeños, un modo modernizado de exponer la funcionalidad de Kotlin a JavaScript y más.

Kotlin/Native

Kotlin/Native obtuvo un número significativo de nuevas funcionalidades y mejoras, que incluyen:

La actual implementación de gestión de memoria automática en Kotlin/Native presenta limitaciones en cuanto a simultaneidad, y estamos trabajando en una alternativa.

Un objetivo importante para Kotlin/Native es que resulte perfectamente fluido con Kotlin Multiplatform Mobile, pero no se limita a ello.

Kotlin multiplataforma

Hacer de Kotlin una gran solución multiplataforma es una de nuestras prioridades. Prometimos algunas mejoras importantes en la KotlinConf, y nos complace informarle de que hemos cumplido nuestra promesa:

Estamos trabajando en un complemento de Android Studio para ejecutar, probar y depurar código Kotlin en dispositivos y simuladores iOS. La primera vista previa pública se lanzará muy pronto, así que ¡esté atento!

Pronto lanzaremos toda una serie de materiales creados con ayuda de los miembros de la comunidad Kotlin para explicarle cómo utilizar la tecnología Kotlin Multiplatform Mobile (KMM) específicamente para los casos de uso para móviles, en los que Android e iOS comparten código.

A pesar de que ahora estamos centrados principalmente en los móviles, Jetbrains ya utiliza activamente la web para Kotlin multiplataforma para crear y enviar JetBrains Space. La web continúa siendo una importante inversión estratégica para Kotlin.

Más detalles

Encontrará descripciones detalladas de las nuevas funcionalidades en la página y la documentación de novedades de Kotlin 1.4, y podrá leer más acerca de cómo migrar a Kotlin 1.4.

Como en todas las versiones principales, algunos ciclos de entrada en desuso de cambios anunciados previamente llegarán a su fin con Kotlin 1.4. El comité del lenguaje ha revisado detenidamente todos estos casos y los ha incluido en la

Guía de compatibilidad de Kotlin 1.4.

Ayúdenos a mejorar Kotlin

El completo para Kotlin de IntelliJ IDEA y Android Studio puede recopilar estadísticas anonimizadas sobre cómo utiliza esta funcionalidad. Le rogamos que contribuya a estas estadísticas.

Estos datos anónimos nos ayudan en gran medida a comprender mejor nuestra base de usuarios, a ver qué funciona, qué causa dificultades y en qué deberíamos centrarnos. Para habilitar las estadísticas, vaya a Preferences, abra Appearance & Behaviour | System Settings | Data Sharing y marque la casilla Send usage statistics.

Principales notificadores de incidencias desde Kotlin 1.3

¡Nos gustaría agradecer a todos los miembros de la comunidad que nos han ayudado a mejorar esta versión al informar incidencias a YouTrack! Hemos hecho una lista de los 20 principales notificadores a los que queremos agradecer especialmente:

Igor Wojda (145 incidencias); Louis CAD (87 incidencias); Marc Knaup (86 incidencias); AndroidDeveloperLB (83 incidencias); Robert Stoll (68 incidencias); Morgan Bartholomew (62 incidencias); Victor Turansky (54 incidencias); Guan Tianyi (51 incidencias); Scott Pierce (38 incidencias); Andreas Malik (37 incidencias); Steven Schäfer (37 incidencias); Björn Kautler (36 incidencias); Róbert Papp (34 incidencias); Toshiaki Kameyama (30 incidencias); Nicholas Bilyk (29 incidencias); Michael Bailey (26 incidencias); Jake Wharton (25 incidencias); Lamberto Basti (24 incidencias); Serge Pro (23 incidencias); Egor Andreevici (21 incidencias).

¡Comience a usar Kotlin 1.4 ahora mismo!

Como siempre, puede probar Kotlin online en play.kotl.in.

En Gradle y Maven, utilice 1.4.0 como versión del compilador. Vea los documentos de Gradle y Maven.

IntelliJ IDEA y Android Studio automáticamente le piden que actualice el complemento Kotlin a la versión 1.4.0. También puede abrir Preferences | Plugins y actualizar el complemento de Kotlin manualmente.

El compilador de línea de comandos se puede descargar desde la página de lanzamiento de GitHub.

Puede usar las siguientes versiones de las bibliotecas publicadas junto a esta versión:

Las versiones de las bibliotecas de kotlin-wrappers (kotlin-react etc.) se pueden encontrar en el repositorio correspondiente.

Las últimas mejoras de rendimiento de IDE, incluido el resaltado de código más rápido, requieren IntelliJ IDEA 2020.1+ y Android Studio 4.1+.

Si encuentra algún problema con la nueva versión, encontrará ayuda en Slack (obtenga una invitación aquí) e informe acerca de las incidencias en nuestro YouTrack.

¡Gracias!

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ño basándonos en su valiosa opinión. Es muy importante continuar con este bucle de feedback de la comunidad tan rápido y eficaz para ayudar a Kotlin a lograr su mejor versión.

Nos gustaría agradecer enormemente a todos los contribuidores externos cuyas solicitudes de incorporación de cambios se han incluido en esta versión. ¡Nos han ayudado a que esta versión sea posible!

Estamos verdaderamente agradecidos a todos los miembros de nuestra comunidad que están creando cosas tan geniales con Kotlin. Kotlin 1.4: ¡Uno para todos!