Могут ли другие языки, кроме Erlang, отправлять код на запущенные экземпляры? - PullRequest
6 голосов
/ 02 февраля 2010

Я только что узнал, что Erlang может удаленно загружать код и модули во все экземпляры кластера с помощью команды "nl". Могут ли это сделать другие языки?

Ответы [ 4 ]

3 голосов
/ 02 февраля 2010

Вы можете написать ClassLoader в Java, похожий на загрузчик кода в erlang. Java ClassLoaders имеет большую изоляцию, поэтому он может быть немного сложнее (но вы могли бы сделать несколько приятных вещей с этим, если бы вы использовали его в своих интересах, а не считали его врагом).

ClassLoaders легко написать, но java не поставляется с тем, который делает то же самое, что делает erlang. У Java также нет инструментов кластеризации, которые есть у Erlang, так что это не особенно удивительно.

3 голосов
/ 02 февраля 2010

Технически любой из диалектов лиспов мог это сделать. Так как «код - это данные» в lisp, передача некоторого кода в другой блок и «eval» - это сделает работу. SLIME делает это до некоторой степени через удаленную реплику с использованием сокетов.

2 голосов
/ 02 февраля 2010

Теоретически, чисто функциональные языки должны иметь такую ​​возможность, но до этого момента я слышал только об Эрланге.

1 голос
/ 02 февраля 2010

Ничего из того, что я знаю, но должна быть возможность реализовать его на динамических языках, таких как Python, Perl или Lisp.

...