Они оба являются методом erlang для связи с внешним миром с точки зрения ЭрлангаВ чем разница между портами и RPC для Erlang?
Так в чем же разница и какое качество лучше?
Они оба являются методом erlang для связи с внешним миром с точки зрения ЭрлангаВ чем разница между портами и RPC для Erlang?
Так в чем же разница и какое качество лучше?
Как следует из названия, rpc (вызовы удаленной процедуры) представляет собой конструкцию для вызова функции на удаленном узле (и получения результата).
Порт (в Эрланге) - это просто точка связи, даже (обязательно) к удаленному узлу. Вы используете порты, например, для связи с другой (не Эрланг) программой.
Обе конструкции предназначены для разных целей. Никто не лучше, они просто разные. Если вы хотите, rpc находится на более высоком уровне абстракции, чем порты, но это не делает его лучше или хуже.
@why Не очень высокий уровень абстракции. Rpc, хотя и NIF, ведет себя как * вызов функции *, в то время как порт ведет себя как * процесс *. Rpc является последовательным и блокируется, а порт является параллельным и неблокирующим. Что говорит вам, когда вы будете использовать один над другим. – rvirding
Вы в целом правы. Тем не менее, некоторые люди видят синхронный вызов функции как более высокую абстракцию, поскольку параллелизм - это неприятная деталь для абстрагирования. – Matthias
Немного странная точка зрения, рассматривающая параллелизм, - это то, о чем говорит Эрланг, и, конечно же, отказоустойчивость. – rvirding