¿Se pueden usar las corutinas Kotlin "experimentales" en la producción?
coroutine kotlinx.coroutines (1)
ACTUALIZACIÓN : las corutinas de Kotlin ya no son experimentales a partir de Kotlin 1.3.
Las corutinas de Kotlin pueden y deben usarse en la producción. Esa fue la razón principal para liberarlos oficialmente en Kotlin 1.1. Después de lanzarlos, el equipo de JetBrains se comprometió 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 corutinas experimentales usan un nombre de paquete experimental kotlin.coroutines.experimentado diferente, de modo que cuando se finalice el diseño de las corutinas y se trasladen al paquete
kotlin.coroutines
, el código compilado anterior no se romperá, pero continuará funcionando a través de una biblioteca de soporte separada.
Una discusión adicional (larga lectura) sobre por qué son "experimentales" y qué significa esto se puede encontrar en esta publicación del foro de Andrey Breslav.
La misma pregunta se aplica a las bibliotecas de soporte de corutinas.
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 teniendo en cuenta los problemas de compatibilidad con el código compilado previamente.
Ciertamente sirve como un banco de pruebas para varias cosas basadas en la rutina, 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 en
kotlinx.coroutines
se consideran estables y se están desarrollando, si es necesario, con ayudas de migración apropiadas.
¿Se pueden usar las corutinas de Kotlin en la producción, y qué significa su estado experimental?