Je mentionne Erlang aussi, où le passage de message entre les processus est quelque chose d'extrêmement facile (et naturel, puisqu'il n'y a pas vraiment d'état global partagé). Et, en bonus, c'est un langage fonctionnel (JS aussi certes, mais dans une moindre mesure).
L'exemple de code de la dépêche deviendrait, en Erlang:
loop() ->
receive
{Pid, M} -> io:format("CHILD got message: ~p", [M]),
Pid ! {self(), foo, bar}, % On envoie une réponse au parent
loop()
end.
run() ->
Pid = spawn(fun loop/0), % Lance un nouveau processus
Pid ! {self(), {hello, world}}, % On envoie un message au nouveau processus
receive % On attend pour une réponse
{Pid, M} -> io:format("PARENT got message: ~p", [M])
end.
[^] # Re: Programmation asynchrone
Posté par Artefact2 . En réponse à la dépêche Node.js passe en version 0.6.0 et arrive sous Windows. Évalué à 3.
Je mentionne Erlang aussi, où le passage de message entre les processus est quelque chose d'extrêmement facile (et naturel, puisqu'il n'y a pas vraiment d'état global partagé). Et, en bonus, c'est un langage fonctionnel (JS aussi certes, mais dans une moindre mesure).
L'exemple de code de la dépêche deviendrait, en Erlang: