Czy programy Kotlin można wykorzystać w produkcji i co oznacza ich status eksperymentalny?
Czy programy Kotlin można wykorzystać w produkcji i co oznacza ich status eksperymentalny?
Odpowiedzi:
AKTUALIZACJA : Coroutines Kotlin nie są już eksperymentalne od wersji Kotlin 1.3.
Korutyny Kotlin mogą i powinny być używane w produkcji. To był główny powód, dla którego oficjalnie wydano je w Kotlin 1.1. Po ich wydaniu zespół JetBrains zobowiązał się do zachowania wstecznej kompatybilności w odniesieniu do wszelkich zmian wprowadzanych do nich w wydaniach pomniejszych w miarę ich ewolucji, umożliwiając jednocześnie bezpieczne wypróbowywanie ich w złożonych aplikacjach produkcyjnych.
Krótko mówiąc, różnica między funkcjami „eksperymentalnymi” i „normalnymi” polega na tym, że do normalnych funkcji Kotlina nie można dodawać nowych rzeczy w drobnych aktualizacjach, ponieważ istnieje gwarancja „pełnej zgodności”, podczas gdy w przypadku funkcji eksperymentalnych można dodawać nowe rzeczy, ale nic nie może zostać usunięte (ze względu na gwarancję kompatybilności wstecznej).
Programy eksperymentalne używają osobnej kotlin.coroutines.experimental
nazwy pakietu, więc po zakończeniu projektowania programów i przeniesieniu ich do kotlin.coroutines
pakietu stary skompilowany kod nie ulegnie awarii , ale będzie nadal działać za pośrednictwem oddzielnej biblioteki obsługi.
Dalszą dyskusję (długo czytaną) o tym, dlaczego są „eksperymentalne” i co to oznacza, można znaleźć w tym poście na forum autorstwa Andreya Breslava.
To samo dotyczy bibliotek obsługujących programy komputerowe.
Obecna wersja kotlinx.coroutines
jest przeznaczona do użytku produkcyjnego. Jest całkiem dobrze pokryty testami, wiele rzeczy jest już zoptymalizowanych, wszystkie zmiany są wprowadzane z uwzględnieniem kwestii wstecznej kompatybilności z wcześniej skompilowanym kodem. Z pewnością służy jako platforma testowa dla różnych rzeczy opartych na procedurach, więc niektóre części są wyraźnie oznaczone jako „praca w toku” lub „niestabilne” w dokumentacji odpowiednich funkcji i klas. Jednak domyślnie wszystkie publiczne interfejsy API w programie kotlinx.coroutines
są uważane za stabilne i w razie potrzeby są rozwijane za pomocą odpowiednich narzędzi do migracji.
The feature "coroutines" is experimental (see more here)
i link do kotlinlang.org/docs/diagnostics/experimental-coroutines.html