<div dir="ltr"><div>Hey all,<br></div><div><br></div><div>  Sorry for resurrecting a one month old thread. I've been following this conversation and wanted to throw in an interesting project, but there was still work going into it so I held my tongue. However, today it went official so I can take the lid off it.</div><div><br></div><div>  The <a href="http://iris.karalabe.com">Iris proj<span id="goog_1398363482"></span><span id="goog_1398363483"></span>ect</a> just gained <a href="http://iris.karalabe.com/archive/2014/javatars_javatars_everywhere">official support</a> for Java and Scala, meaning that beside Erlang (and Go btw), you can do fully decentralized cloud messaging through the JVM too (and of course, they can freely and natively interact with each other) :D If you'd like to take a glimpse at Iris, head over to the teaser presentation (all code executable online):</div><div><ul><li>Erlang: <a href="http://play.iris.karalabe.com/talks/binds/erlang.v1.slide">http://play.iris.karalabe.com/talks/binds/erlang.v1.slide</a></li><li>Java: <a href="http://play.iris.karalabe.com/talks/binds/java.v1.slide">http://play.iris.karalabe.com/talks/binds/java.v1.slide</a></li><li>Scala: <a href="http://play.iris.karalabe.com/talks/binds/scala.v1.slide">http://play.iris.karalabe.com/talks/binds/scala.v1.slide</a></li></ul><div>  So to answer a question raised in this thread. If you're trying to figure out whether to go with Akka/Scala or Erlang, maybe Iris will get you both worlds and you can switch between the languages to your hearth content :)</div><div><br></div><div>Cheers,</div><div>  Peter</div><div><br></div><div>PS: Java and especially Scala takes a toll on the playground VM during compilation (3+ sec), so patience. Erlang compiles in a blink :)</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 2, 2014 at 9:52 PM, Vlad Dumitrescu <span dir="ltr"><<a href="mailto:vladdu55@gmail.com" target="_blank">vladdu55@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 2, 2014 at 5:41 PM, Norton Joseph Wayne <span dir="ltr"><<a href="mailto:norton@lovely.email.ne.jp" target="_blank">norton@lovely.email.ne.jp</a>></span> wrote:<span class=""><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"><div>As an example, the implementation of UBF on GitHub (<a href="http://ubf.github.io/ubf/ubf-user-guide.en.html" target="_blank">http://ubf.github.io/ubf/ubf-user-guide.en.html</a>) supports several network formats including UBF(A), Erlang binary format (a.k.a. EBF), and a local procedure call (a.k.a. LPC).  The network formats share the same contract checker implementation.</div>

<div></div></blockquote></span></div><br>I saw later your note about the project. Great stuff! It would need a bit more of marketing, though :-)</div><div class="gmail_extra"><br></div><div class="gmail_extra">best regards,</div>

<div class="gmail_extra">Vlad</div></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Sep 2, 2014 at 5:41 PM, Norton Joseph Wayne <span dir="ltr"><<a href="mailto:norton@lovely.email.ne.jp" target="_blank">norton@lovely.email.ne.jp</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>A few comments.</div><br><div><div><div>On 2014/09/02, at 21:13, Vlad Dumitrescu <<a href="mailto:vladdu55@gmail.com" target="_blank">vladdu55@gmail.com</a>> wrote:</div>

</div><blockquote type="cite"><div dir="ltr"><div><div><p style="margin:1.2em 0px!important">On Mon, Sep 1, 2014 at 11:06 PM, Wojtek Narczyński <<a href="mailto:wojtek@power.com.pl" target="_blank">wojtek@power.com.pl</a>> wrote:</p>

</div><div><ul style="margin:1.2em 0px;padding-left:2em"><li style="margin:0.5em 0px">should the contract checker be hard-linked to UBF(A), the wire format? If used only internally, it seems reasonable to let it understand the Erlang binary format</li>

</ul></div></div></div></blockquote><div>As an example, the implementation of UBF on GitHub (<a href="http://ubf.github.io/ubf/ubf-user-guide.en.html" target="_blank">http://ubf.github.io/ubf/ubf-user-guide.en.html</a>) supports several network formats including UBF(A), Erlang binary format (a.k.a. EBF), and a local procedure call (a.k.a. LPC).  The network formats share the same contract checker implementation.</div>

<div><br></div><div>This contract checker implementation operates directly on Erlang terms.  There is a lot of surrounding code but the core of the checker is a function that checks Erlang terms against a contract (<a href="https://github.com/ubf/ubf/blob/master/src/contracts.erl#L108" target="_blank">https://github.com/ubf/ubf/blob/master/src/contracts.erl#L108</a>).</div>

<div><div><br></div><blockquote type="cite"><div dir="ltr"><div><ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">since 2002, Erlang got type descriptions and specifications; should these be used for describing the protocols? Again, it seems reasonable to be able to refer to existing types from the source code. </li>

</ul></div></div></blockquote><div><br></div></div><div>Yes, agreed.</div><div><br><blockquote type="cite"><div dir="ltr"><div><ul style="margin:1.2em 0px;padding-left:2em">


<li style="margin:0.5em 0px">should it be possible to turn the contract checker on and off, preferably without performance impact when off? </li>
</ul></div></div></blockquote></div>Yes, agreed.</div><br></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>