<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt">Thank you both for the hearty welcome!<br><br>As you suggested Michael, I will keep my expectations in check, as it's a pretty new language. On the other hand, it's open source so the community can help out too :) . I'm sure Paul and other contributors are open to suggestions and would participate on discussions about adding new collections/predicates to the standard library for example.<br><br>Thank you Paul for pointing me to the right direction regarding parallelization and IDE support. <br>I would also like to add that I found an eclipse plugin which offers syntax highlighting, errors / warning (during editing) and from the looks of it you can interface with existing java code more conveniently (since you are in eclipse already :) ). <a
 href="http://kai.mercury.mind-era.com/home">http://kai.mercury.mind-era.com/home</a><br><br>If I encounter any problems, I will gratefully accept your offer and use the mailing-list and/or the freenode channel for further assistence.<br><br><br>Cheers<br>mucaho<br><br><div><span><br></span></div><div style="display: block;" class="yahoo_quoted"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12pt;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> On Monday, March 31, 2014 3:10 AM, Paul Bone <paul@bone.id.au> wrote:<br> </font> </div>  <div class="y_msg_container">On Sun, Mar 30, 2014 at 04:01:25PM -0700, anonymous wrote:<br clear="none">> Greetings fellow Mercury users!<br clear="none">> <br clear="none">> First of all, kudos to the developers & community
 of Mercury!<br clear="none">> <br clear="none">> I just recently started to discover the world beyond C, Java & Co and I am absolutely amazed. <br clear="none">> <br clear="none">> First I took a look at Scala. It's a great language to transition from Java and raised my appetite for declarative programming.<br clear="none">> <br clear="none">> After extensive search & comparison I found my hobby language of choice - Mercury:<br clear="none">> * It has JVM interoperability (Write frontend gui code in Java/Scala, use Mercury for backend business logic)<br clear="none">> * Logic rules (Horn clauses) -> in & out modes for parameters<br clear="none">> * Higher-order functions with good standard library (e.g. list and fold)<br clear="none">> <br clear="none">> * Typeclasses (sweet!)<br clear="none">> * It surely has more features I will need to discover (e.g. what about parallelization? IDE-support? etc.)<br
 clear="none">> <br clear="none">> On paper it sounds astonishing, I hope my future practical endeavours confirm that :)<br clear="none"><br clear="none">Hello new Anonymous user!<br clear="none"><br clear="none">We're pleased that your interested and hope that you find what you're<br clear="none">looking for.  Personally I find that Mercury allows me to program in a very<br clear="none">high level way using many abstractions, some of which you've mentioned.<br clear="none">But I still feel as if I'm able to be /precise/ about my programs' semantics<br clear="none">and operations.<br clear="none"><br clear="none">Mercury has a steep learning curve, it's quite different from many<br clear="none">developer's previous experiences.  We're happy to answer specific questions<br clear="none">you might have while learning Mercury.  Unfortunately there aren't many<br clear="none">resources online at the moment but we're continuing to improve
 this<br clear="none">situation.<br clear="none"><br clear="none">To answer some questions you've raised already we do support parallelism and<br clear="none">concurrency.  This support isn't perfect and we're continuing to improve it.<br clear="none"><br clear="none">The low level backend supports the parallel conjunction operator (&) which<br clear="none">can be used to advise the runtime system (when compiled with support for<br clear="none">parallelism) that it may execute the conjuncts in parallel.  There are many<br clear="none">things that can affect how much performance you actually achieve, I'm not<br clear="none">going to list them here but suggest some reading:<br clear="none"><br clear="none">    Language Reference Manual section 2.9 Goals.<br clear="none"><br clear="none">    Peter Wang's thesis describes how dependencies between parallel<br clear="none">    conjuncts are handled:<br
 clear="none">    <a shape="rect" href="http://www.mercurylang.org/documentation/papers.html#wangp-hons" target="_blank">http://www.mercurylang.org/documentation/papers.html#wangp-hons</a><br clear="none"><br clear="none">    My thesis describes how the runtime system currently handles parallel<br clear="none">    conjunctions (information here supersedes Peter's thesis).  I also<br clear="none">    describe some pathological performance issues and their solution:<br clear="none">    <a shape="rect" href="http://www.mercurylang.org/documentation/papers.html#pbone_phd_thesis" target="_blank">http://www.mercurylang.org/documentation/papers.html#pbone_phd_thesis</a><br clear="none"><br clear="none">We also have very experimental support for automatic parallelism.  This is<br clear="none">documented in my thesis and (I think) in the user's guide.  You're welcome<br clear="none">to experiment
 with it and I encourage you to let me know what you find.<br clear="none"><br clear="none">In the parallel C grades, the Java and C# grades we also support<br clear="none">concurrency.  This is available via the thread module in the standard<br clear="none">library.  There is a caveat here that mixing concurrent and IO-heavy code in<br clear="none">the low-level C grade may not perform as well as expected: a thread that<br clear="none">blocks on IO can also block multiple other lightwight threads.<br clear="none"><br clear="none">You also asked about IDE support.  Depends what you consider an 'IDE' we<br clear="none">have a style file that is compatible with VIM and elsewhere people have<br clear="none">worked on similar support for emacs.  There is also some support for the gud<br clear="none">debugger in emacs, but I don't know the details.<br clear="none"><br clear="none">All the best.<br clear="none"><br clear="none"><br
 clear="none">-- <br clear="none">Paul Bone<div class="yqt5243989020" id="yqtfd94332"><br clear="none">_______________________________________________<br clear="none">users mailing list<br clear="none"><a shape="rect" ymailto="mailto:users@lists.mercurylang.org" href="mailto:users@lists.mercurylang.org">users@lists.mercurylang.org</a><br clear="none"><a shape="rect" href="https://www.mercurylang.org/lists/listinfo/users" target="_blank">https://www.mercurylang.org/lists/listinfo/users</a><br clear="none"></div><br><br></div>  </div> </div>  </div> </div></body></html>