Model aktora używany przez Erlanga wydaje się być zupełnie innym sposobem na równoczesne programowanie. Co sądzisz o modelu aktorskim? Czy będzie to popularne rozwiązanie dla współbieżności?
Model aktora używany przez Erlanga wydaje się być zupełnie innym sposobem na równoczesne programowanie. Co sądzisz o modelu aktorskim? Czy będzie to popularne rozwiązanie dla współbieżności?
Odpowiedzi:
Zakładam, że znasz tę koncepcję. Nie wiem jeszcze za dobrze.
Krótka odpowiedź brzmi: wierzę w popularność tego modelu do współbieżności w krótkim i średnim okresie. Zawsze uwielbiałem lambda i zamknięcia i widzę aktora jak zamknięcia specjalnie obsługiwane do zasilania współbieżności. W ten sposób procesory wielordzeniowe wprowadzają nowy paradygmat programowania, a współbieżność jest niezbędna do uzyskania wysokiej wydajności. Model aktora wydaje się łatwą ścieżką do wykorzystania nowoczesnego sprzętu.
Wcześniej czy później (mam nadzieję, że wcześniej) prawie każdy główny język będzie obsługiwał lepszy model współbieżności. Najlepszym kandydatem powinien być model aktora IMHO tak dobrze wdrożony w Erlangu.
Jedną z przeszkód dla popularności modelu aktorskiego jest niewielka impedancja z OOP, obecnie dominującym paradygmatem. Ale pierwszy krok jest podany, główne języki wdrażają pewne funkcje funkcjonalne, które oczyszczą ścieżkę do modelu aktora.
Dużo czytam na ten temat, myślę, że jest to bardzo ważne dla każdego programisty w jego umiejętnościach.
Późna edycja:
Teraz lepiej rozumiem paradygmat. Mogę więc powiedzieć, że lepiej jest, aby język programowania pozwolił, aby problem został rozwiązany przez biblioteki lub ewentualnie ma funkcję ułatwiającą przyjęcie jednego modelu. Wiąż język tylko jednym modelem, nie widząc dobrej idei.
„Popularność” nie jest niezwykle ważną miarą. „Przydatny” lub „potężny” jest.
Model aktora istnieje już od około 35 lat, przynajmniej w środowisku akademickim, a wraz z upływem czasu został przyjęty przez coraz więcej języków świata rzeczywistego. (OK, Erlang nie przyjął modelu aktora, wymyślił model aktora. Nadal.)
Biorąc pod uwagę, że przetrwał on kilkadziesiąt lat w środowisku akademickim i wkracza do głównego nurtu, powiedziałbym, że będzie już przez jakiś czas.
Szczerze mówiąc, myślę, że to najlepszy sposób na współbieżność. Model pamięci wspólnej z zamkami przeraża mnie, widzę po prostu zbyt wiele sposobów, w które może się nie udać. Aktorzy z przekazywaniem wiadomości wydają się znacznie czystszym sposobem na robienie rzeczy.
Zobacz także STM, który może być używany w Clojure i Haskell oraz prawdopodobnie w kilku innych językach.