Le coroutine di Kotlin possono essere utilizzate nella produzione e cosa significa il loro stato sperimentale?
Le coroutine di Kotlin possono essere utilizzate nella produzione e cosa significa il loro stato sperimentale?
Risposte:
AGGIORNAMENTO : le coroutine di Kotlin non sono più sperimentali a partire da Kotlin 1.3.
Le coroutine di Kotlin possono e devono essere utilizzate nella produzione. Questa è stata la ragione principale per rilasciarli ufficialmente in Kotlin 1.1. Dopo averli rilasciati, il team di JetBrains si era impegnato a mantenere la compatibilità con le versioni precedenti rispetto a qualsiasi modifica introdotta nelle versioni minori man mano che si evolvono, consentendo alle persone di provarli in sicurezza in applicazioni di produzione complesse.
In breve, la differenza tra le funzionalità "sperimentali" e "normali" è che per le normali funzionalità di Kotlin non è possibile aggiungere nuove cose negli aggiornamenti minori, perché c'è una garanzia di "piena compatibilità", mentre per le funzionalità sperimentali possono essere aggiunte nuove cose, ma nulla può essere rimosso (a causa della garanzia di compatibilità con le versioni precedenti).
Le coroutine sperimentali utilizzano un kotlin.coroutines.experimental
nome di pacchetto separato , in modo che quando il design delle coroutine è finalizzato e si spostano inkotlin.coroutines
pacchetto, il vecchio codice compilato non si interromperà, ma continuerà a funzionare tramite una libreria di supporto separata.
Ulteriori discussioni (di lunga lettura) sul motivo per cui sono "sperimentali" e cosa significa questo possono essere trovate in questo post del forum di Andrey Breslav.
La stessa domanda si applica alle librerie di supporto delle coroutine.
L'attuale versione di kotlinx.coroutines
è progettata per l'uso in produzione. È abbastanza ben coperto di test, molte cose sono già ottimizzate, tutte le modifiche vengono apportate considerando i problemi di retrocompatibilità con il codice precedentemente compilato. Certamente serve come banco di prova per varie cose basate sulla coroutine, quindi ci sono alcune parti che sono chiaramente contrassegnate come "work in progress" o "unstable" nella documentazione delle funzioni e classi corrispondenti. Tuttavia, per impostazione predefinita, tutte le API pubbliche in kotlinx.coroutines
sono considerate stabili e vengono evolute, se necessario, con gli opportuni aiuti alla migrazione.
The feature "coroutines" is experimental (see more here)
e collegamento a kotlinlang.org/docs/diagnostics/experimental-coroutines.html