¿Se pueden utilizar las corrutinas de Kotlin en producción y qué significa su estado experimental?
¿Se pueden utilizar las corrutinas de Kotlin en producción y qué significa su estado experimental?
Respuestas:
ACTUALIZACIÓN : Las corrutinas de Kotlin ya no son experimentales a partir de Kotlin 1.3.
Las corrutinas de Kotlin pueden y deben usarse en producción. Esa fue la razón principal para lanzarlos oficialmente en Kotlin 1.1. Después de haberlos lanzado, el equipo de JetBrains se había comprometido a mantener la compatibilidad con versiones anteriores con respecto a cualquier cambio que se les presente en las versiones menores a medida que evolucionan, al tiempo que permite a las personas probarlos de manera segura en aplicaciones de producción complejas.
En resumen, la diferencia entre las características "experimentales" y "normales" es que para las características normales de Kotlin no se pueden agregar cosas nuevas en actualizaciones menores, porque hay una garantía de "compatibilidad total", mientras que para las características experimentales se pueden agregar cosas nuevas, pero no se puede eliminar nada (debido a la garantía de compatibilidad con versiones anteriores).
Las corrutinas experimentales usan un kotlin.coroutines.experimental
nombre de paquete separado , de modo que cuando se finaliza el diseño de las corrutinas y se mueven al kotlin.coroutines
paquete, el código compilado anterior no se romperá, pero continuará funcionando a través de una biblioteca de soporte separada.
En esta publicación del foro de Andrey Breslav se puede encontrar más discusión (lectura larga) sobre por qué son "experimentales" y qué significa esto .
La misma pregunta se aplica a las bibliotecas de soporte de corrutinas.
La versión actual de kotlinx.coroutines
está diseñada para uso en producción. Está bastante bien cubierto con pruebas, muchas cosas ya están optimizadas, todos los cambios se realizan considerando los problemas de compatibilidad con versiones anteriores del código compilado previamente. Ciertamente sirve como banco de pruebas para varias cosas basadas en corrutinas, por lo que hay algunas partes que están claramente marcadas como "trabajo en progreso" o "inestable" en la documentación de las funciones y clases correspondientes. Sin embargo, de forma predeterminada, todas las API públicas kotlinx.coroutines
se consideran estables y se están desarrollando, si es necesario, con las ayudas de migración adecuadas.
The feature "coroutines" is experimental (see more here)
y vincular a kotlinlang.org/docs/diagnostics/experimental-coroutines.html