Здравствуйте, so5team, Вы писали:
S>Но там же было сказано и более важное: нельзя предъявлять к C++/Scala/C#/Haskell/Ada и пр. такую претензию, что в этих языках нет фишек Erlang-а. Конечно их там нет. Более того, очевидно, что их там и не может быть (особенно если язык нативный). Но для решения таких же проблем concurrency computing и distributed computing в этих языках просто-напросто будут использоваться другие подходы и другие инструменты. И результат будет получаться не менее достойный.
в ghc (нативный компилятор хаскела) есть зелёные потоки, переключение происходит в момент аллокации, а она происходит постоянно
и я не согласен с твоей идеей что в C++ можно использовать только акторы. зелёные потоки — это по сути короутины, выполняемые из пула потоков, с автоматическим yield. ближайшим их аналогом в C++ являются те же самые короутины с ручным yield. при этом логика программы остаётся понятной, и очевидно кого срубать при возникновении исключения. task parallelism следует использовать только в случаях, когда очевидного разделения на процессы нет, а есть к примеру поток объектов, подвергаемых разнообразным преобразованиям
чем отличаются акторы от task parallelism, я пока не в курсе