• [^] # Re: Programmation asynchrone

    Posté par . 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:

    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.