Das von Erlang verwendete Actor Model scheint eine ganz andere Art der gleichzeitigen Programmierung zu sein. Was denkst du über das Actor Model? Wird es eine beliebte Lösung für Parallelität sein?
Das von Erlang verwendete Actor Model scheint eine ganz andere Art der gleichzeitigen Programmierung zu sein. Was denkst du über das Actor Model? Wird es eine beliebte Lösung für Parallelität sein?
Antworten:
Ich nehme an, Sie kennen das Konzept. Nun, ich weiß es noch nicht genau.
Die kurze Antwort ist, dass ich kurz- und mittelfristig an die Beliebtheit dieses Modells glaube. Ich habe Lambda und Closures immer geliebt und sehe Schauspieler-ähnliche Closures, die speziell dafür entwickelt wurden, Parallelität zu betreiben. Multi-Core-Prozessoren eröffnen uns ein neues Paradigma in der Programmierung. Parallelität ist ein Muss, um eine hohe Leistung zu erzielen. Das Schauspielermodell scheint der einfache Weg zu sein, moderne Hardware auszunutzen.
Früher oder später (ich hoffe früher) wird fast jede Mainstream-Sprache ein besseres Modell zur Parallelität unterstützen. IMHO Actor-Modell so gut umgesetzt in Erlang sollte der beste Kandidat sein.
Ein Hindernis für die Popularität des Actor-Modells ist die geringe Impedanz bei OOP, dem derzeit vorherrschenden Paradigma. Aber der erste Schritt ist getan, die Hauptsprachen implementieren einige Funktionsmerkmale, die den Weg zum Actor-Modell bereinigen.
Ich lese viel über dieses Thema und finde es sehr wichtig, dass jeder Programmierer seine Fähigkeiten weiterentwickelt.
Späte Bearbeitung:
Jetzt verstehe ich das Paradigma besser. Ich kann also sagen, dass es besser ist, in einer Programmiersprache zuzulassen, dass das Problem von Bibliotheken behandelt wird, oder dass es schließlich eine Funktion gibt, die die Übernahme eines Modells erleichtert. Binden Sie eine Sprache mit nur einem Modell, das keine gute Idee sieht.
"Beliebt" ist keine schrecklich wichtige Metrik. "Nützlich" oder "mächtig" ist.
Das Actor-Modell gibt es seit ungefähr 35 Jahren, zumindest im akademischen Bereich, und es wurde im Laufe der Zeit von immer mehr realen Sprachen übernommen. (OK, Erlang nicht übernehmen die Schauspieler - Modell, es neu erfunden das Schauspieler - Modell. Foto .)
Angesichts der Tatsache, dass es im akademischen Bereich mehrere Jahrzehnte überlebt hat und in den Mainstream übergeht, würde ich sagen, dass es noch eine Weile dauern wird.
Ehrlich gesagt denke ich, dass es der beste Weg ist, Parallelität zu betreiben. Das Shared-Memory-Modell mit Schlössern macht mir Angst, ich kann einfach zu viele Wege erkennen, wo es schief gehen kann. Schauspieler mit Nachrichtenübermittlung scheinen eine viel sauberere Methode zu sein, um Dinge zu tun.
Schauen Sie sich auch STM an, das in Clojure und Haskell und wahrscheinlich auch in einigen anderen Sprachen verwendet werden kann.