Czy w produkcji można wykorzystać „eksperymentalne” programy Kotlin?


Odpowiedzi:


112

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.experimentalnazwy pakietu, więc po zakończeniu projektowania programów i przeniesieniu ich do kotlin.coroutinespakietu 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.coroutinesjest 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.coroutinessą uważane za stabilne i w razie potrzeby są rozwijane za pomocą odpowiednich narzędzi do migracji.


5
Nadal martwię się, kiedy widzę podświetlone ostrzeżenie dotyczące funkcji, której używamy, np. Uruchomienie, stwierdzenie The feature "coroutines" is experimental (see more here)i link do kotlinlang.org/docs/diagnostics/experimental-coroutines.html
Elye

4
To trochę jak Catch-22, prawda? Jak zostaną przetestowane w boju, jeśli nikt ich nie wypróbuje :) Z drugiej strony, moje doświadczenie z "eksperymentalnymi" funkcjami JetBrains jest o wiele większe niż doświadczenie z wydaniami "jakości produkcji" od wielu innych dostawców. W szczególności nie miałem absolutnie żadnych problemów z wdrażaniem programów; jedyne "usterki", jakie widziałem, dotyczyły niektórych szczegółów ich traktowania przez statyczny system typów, które nie mają wpływu na środowisko wykonawcze. Zdały dość poważne testy warunków skrajnych i testy porównawcze w Hazelcast Jet, śpiewająco.
Marko Topolnik

Części tej odpowiedzi są ewidentnie błędne. Cały pakiet jest doświadczalne nie kilka części.
Jean de Klerk
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.