<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Having implemented full Erlang distributed transport natively in C++ and C#, I wouldn't say it's unbearable.  However, in some special cases, it would indeed be interesting to bridge nodes implemented in dynamic languages (e.g. Javascript) via some protocol that could be more simple than the built-in distributed transport.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Frankly I would be more interested in optimizing some parts of the existing transport, e.g. introducing special encoding 1-byte tags for boolean values (as opposed to encoding a boolean as an atom on the wire taking 6 to 7 bytes), and other similar optimizations.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Another thing - after coding in Erlang for some time, one feels Erlang's choice of representing strings as integer lists is natural.  However, when bringing different languages over distributed transport, you'd want a message {weights, [65, 66]} to be sent as a tuple with a second element being received on the other side as a list, but the distribution encodes it as {weights, "AB"}, and decoding it in a language that understands strings differently than lists becomes a bit more challenging than necessary...  Personally, I think if Erlang supported string types as a special flavor of binaries it would be easier for it to live in heterogeneous clustered environments...</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Serge</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
<br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 9, 2014 at 5:10 PM, Geoff Cant <span dir="ltr"><<a href="mailto:nem@erlang.geek.nz" target="_blank">nem@erlang.geek.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
I would like to add one general thought / principle to guide improvements to ERTS's distribution machinery:<br>
<br>
'It should be possible to implement distribution protocols in Erlang'<br>
<br>
(The current setup requires us to implement complicated network protocols in C, which I find just about unbearable when Erlang is close at hand)<br>
<br>
Cheers,<br>
--<br>
Geoff Cant<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div></div>