<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-25066620.post5726300406977243992..comments</id><updated>2009-07-18T08:29:49.184-05:00</updated><title type='text'>Comments on Ruby, Javascript, Erlang blog: Snakes, Gems &amp;amp; Coffee: The Scala vs Erlang Debate, Part 2: The Geek Off</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geek.susanpotter.net/feeds/5726300406977243992/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default?start-index=26&amp;max-results=25'/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25066620.post-4348679261573821053</id><published>2009-07-18T02:28:03.284-05:00</published><updated>2009-07-18T02:28:03.284-05:00</updated><title type='text'>Scala is a hybrid Object-Oriented/Functional Progr...</title><content type='html'>Scala is a hybrid Object-Oriented/Functional Programming language on the JVM. When I heard that Twitter was using Scala, I was curious and started collecting all the sites and articles to learn scala programming. If you are interested check the link below for the big list I have gathered (more than 200 sites) for learning scala programming.&lt;br /&gt;http://markthispage.blogspot.com/2009/06/more-than-100-sites-to-study-scala.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/4348679261573821053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/4348679261573821053'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1247902083284#c4348679261573821053' title=''/><author><name>ddadmin</name><uri>http://www.blogger.com/profile/07402164584500116625</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-87973771289663701</id><published>2009-06-20T17:10:40.388-05:00</published><updated>2009-06-20T17:10:40.388-05:00</updated><title type='text'>Matt: Actually I readily admitted my factual mista...</title><content type='html'>Matt: Actually I readily admitted my factual mistake with &amp;quot;you are absolutely correct - Erlang is impure!&amp;quot;.  I suggest you read the all the comments.  What did I say that was dismissive of that particular fact?&lt;br /&gt;&lt;br /&gt;Other &amp;quot;corrections&amp;quot; in the comments have argued that Scala is just as impure as Erlang.  My argument is that there is still a difference in the degree to which Scala promotes a certain style of programming that is not functional in nature.&lt;br /&gt;&lt;br /&gt;I am happy to discuss that, but let us separate what I did say to what you said I said because they are two different things.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/87973771289663701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/87973771289663701'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245535840388#c87973771289663701' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-1961147007070992583</id><published>2009-06-20T12:46:04.113-05:00</published><updated>2009-06-20T12:46:04.113-05:00</updated><title type='text'>An argument you made in your article was, "Scala i...</title><content type='html'>An argument you made in your article was, &amp;quot;&lt;i&gt;Scala is not a pure functional programming language and therefore many corollaries from lambda calculus cannot be applied for optimization purposes&lt;/i&gt;&amp;quot;, in particular, in Erlang, you argue &amp;quot;&lt;i&gt;there is a lambda calculus optimization that can be taken advantage of that will ease away our troubles called tail-recursion.&lt;/i&gt;&amp;quot; &lt;br /&gt;&lt;br /&gt;When this is pointed at as a flawed argument, you replied, rather than admitting a mistake, by &amp;quot;clarifying&amp;quot;, and dismissing factual criticism as irrelevant concerns from &amp;quot;academic&amp;quot; vs &amp;quot;real-world&amp;quot; programmers. The truth is, if you invoke academic concepts like &amp;quot;corollaries from lambda calculus&amp;quot; and try and draw real-world conclusions about it, it&amp;#39;s reasonable to criticise the validity or otherwise of your argument, and it is certainly not &amp;quot;&lt;i&gt;like an ostrich digging its head in the sand&lt;/i&gt;&amp;quot; to do so.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1961147007070992583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1961147007070992583'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245519964113#c1961147007070992583' title=''/><author><name>Matt</name><uri>http://www.blogger.com/profile/12089291649428164242</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-1190181922619877828</id><published>2009-06-20T11:14:40.031-05:00</published><updated>2009-06-20T11:14:40.031-05:00</updated><title type='text'>Jayden: best not misquote him either;)

Emil Ivano...</title><content type='html'>Jayden: best not misquote him either;)&lt;br /&gt;&lt;br /&gt;Emil Ivanov: Actually I did mention the two types of actors in Scala, please see:&lt;br /&gt;&amp;quot;So Scala created this concept of a very peared down event-based actor, which does not have all the functionality of thread-based actors but does not incur the penalty of needing to be backed by a native thread.&amp;quot;&lt;br /&gt;&lt;br /&gt;Where is the error?  If you have a lot of thread-based actors you are in trouble in Scala.  If your app needs a lot of thread-based actors then you aren&amp;#39;t going to be able to scale as easily as with event-based actors which are much more limiting.  This *might* be a benefit in your applications, but if you don&amp;#39;t change the way you write your software to be more event-based then you still have a scaling issue.&lt;br /&gt;&lt;br /&gt;Paul Prescod: Let me respond to this comment since I have already responded to James&amp;#39; comment you mentioned: &amp;quot;2. there is no relationship between being purely functional and implementing TCO.&amp;quot;&lt;br /&gt;This is definitely something I want to clarify in a future post, but I do see a correlation between the fact that Scala actively encourages mutability with thread-based actors that need to consider thread-safety as an extra thought exercise in development, thread-based actors are less scalable, heavier weight (thus you need to throw more hardware are the problem) and debugging, troubleshooting costs go way up due to this complexity.  There are some advantages to this also, namely legacy support.  This is a very practical reason to do this in Scala.  If you aren&amp;#39;t concerned with legacy, I see the Scala practical impurity (not just theoretical impurity) as problematic and adding cycles to development as well as hardware to your production environments.&lt;br /&gt;&lt;br /&gt;I commented earlier on the &amp;quot;purity&amp;quot; comment.  Yes, Erlang is not a pure functional programming language in an academic sense.  It is practically pure.  It does have a process map that you can modifying interally and some I/O actions do have consequences, but these were added for practicality, not to encourage mutability in your software writing.  The programming style encouraged by Erlang is pure functional in nature, NOT a messy hybrid that Scala actively encourages.  &lt;br /&gt;&lt;br /&gt;This is a fundamental difference and pretending it doesn&amp;#39;t exist because of an academic definition is like an ostrich digging its head in the sand.&lt;br /&gt;&lt;br /&gt;I have already mentioned that there are some positives as well as negatives to this.  &lt;br /&gt;&lt;br /&gt;There are practical limitations that Erlang has.  Perhaps I didn&amp;#39;t do enough of a job of highlighting these although I did mention them, so that might have been a very valid point.  Highlight those practical limitations.  This blog post is for people that build real world production systems NOT academics discussing technicalities.&lt;br /&gt;&lt;br /&gt;And lastly I only used &amp;quot;debate&amp;quot; in the sense that it is a debate as to which language is right for your needs.&lt;br /&gt;&lt;br /&gt;We can all have different opinions on the cost of a hybrid approach in relation to TCO, but I will not be changing mine just to sweep Scala&amp;#39;s limitations (as I see them) under the carpet.&lt;br /&gt;&lt;br /&gt;Hope that helps clarify a little.&lt;br /&gt;Susan</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1190181922619877828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1190181922619877828'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245514480031#c1190181922619877828' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-632551346248236587</id><published>2009-06-20T10:29:55.983-05:00</published><updated>2009-06-20T10:29:55.983-05:00</updated><title type='text'>Paul Prescod: I don't think Susan ever said facts ...</title><content type='html'>Paul Prescod: I don&amp;#39;t think Susan ever said facts were debatable.&lt;br /&gt;&lt;br /&gt;It is interesting that you (Paul) are implying there cannot be any debate in terms of which programming language you want to use.  Apparently you think Scala is the only language anyone should use?  &lt;br /&gt;&lt;br /&gt;Good to know, Paul.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/632551346248236587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/632551346248236587'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245511795983#c632551346248236587' title=''/><author><name>Jayden Cope</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-3175110827205550416</id><published>2009-06-20T10:20:49.859-05:00</published><updated>2009-06-20T10:20:49.859-05:00</updated><title type='text'>s/I have no accepted/I have NOW accepted/</title><content type='html'>s/I have no accepted/I have NOW accepted/</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3175110827205550416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3175110827205550416'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245511249859#c3175110827205550416' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-5909373693792714354</id><published>2009-06-20T10:20:13.765-05:00</published><updated>2009-06-20T10:20:13.765-05:00</updated><title type='text'>@puzza007 you were right, I had to dig around in b...</title><content type='html'>@puzza007 you were right, I had to dig around in blogger to find it.  I didn&amp;#39;t receive the email notification for this and a few other comments.  I have no accepted them all now.&lt;br /&gt;&lt;br /&gt;Sorry for any confusion.  I will be responding next week regarding some comments.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/5909373693792714354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/5909373693792714354'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245511213765#c5909373693792714354' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-8955665713156487739</id><published>2009-06-20T08:52:24.349-05:00</published><updated>2009-06-20T08:52:24.349-05:00</updated><title type='text'>In addition I wish to point out that Erlang has be...</title><content type='html'>In addition I wish to point out that Erlang has been used in large scale production systems for over 15 years already.  I think it&amp;#39;s real world usage and maturity far exceeds Scala&amp;#39;s currently.&lt;br /&gt;&lt;br /&gt;I hardly think that was a good argument for Scala in comparison to Erlang!&lt;br /&gt;&lt;br /&gt;I do wish to clarify my opinions though.  I personally much prefer using Erlang over Scala for multiple reasons!  However, despite Scala&amp;#39;s current relative immaturity (which will not be so much of an issue after a few years if it continues with it&amp;#39;s current momentum) it has &lt;em&gt;potential&lt;/em&gt;.  I don&amp;#39;t really know if I would be swayed by Scala at that point, because I can&amp;#39;t predict the future, but I do leave my mind open to that possibility.&lt;br /&gt;&lt;br /&gt;I do enjoy seeing Scala&amp;#39;s fan boys getting frazzled by these benchmarks though:)&lt;br /&gt;&lt;br /&gt;Peace!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8955665713156487739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8955665713156487739'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245505944349#c8955665713156487739' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-3565991880471047015</id><published>2009-06-20T08:42:29.369-05:00</published><updated>2009-06-20T08:42:29.369-05:00</updated><title type='text'>I find it interesting that it is a "single" benchm...</title><content type='html'>I find it interesting that it is a &amp;quot;single&amp;quot; benchmark when Erlang wins, but not when Scala wins.&lt;br /&gt;&lt;br /&gt;Also my blog posts about Erlang vs Scala are specifically talking about multi-core applications (on servers primarily).  I have not suggested that Erlang is a multi-purpose programming language for desktop applications.  However, at the same time I do not believe Scala fits the multi-purpose programming language that would be particularly suitable for desktop applications either.  I am a little confused by your argument?&lt;br /&gt;&lt;br /&gt;I have made no such claims about multi-purposeness, nor do I believe Scala fits that profile either.  So the comment seems a little out of context.&lt;br /&gt;&lt;br /&gt;Perhaps you could expand if I am missing your point?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3565991880471047015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3565991880471047015'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245505349369#c3565991880471047015' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-2675259866964605815</id><published>2009-06-20T08:04:28.403-05:00</published><updated>2009-06-20T08:04:28.403-05:00</updated><title type='text'>Losing a single benchmark is hardly what I would c...</title><content type='html'>Losing a single benchmark is hardly what I would call embarrassing for Scala, a more general purpose language.  It would be interesting to see how Erlang pays off in the real world right now, aside from benchmarks.  How many and what types of programs are written for multiple cpus and are just waiting to be rewritten in Erlang so that they execute more quickly?  Would programs written in Erlang be faster on current desktops?  How many CPUs do you need to see Erlang do things more quickly?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/2675259866964605815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/2675259866964605815'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245503068403#c2675259866964605815' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-5455492862903867071</id><published>2009-06-19T16:48:05.284-05:00</published><updated>2009-06-19T16:48:05.284-05:00</updated><title type='text'>@puzza007 I haven't withheld any comments on this ...</title><content type='html'>@puzza007 I haven&amp;#39;t withheld any comments on this post yet.  When did you make the comment?  I don&amp;#39;t see it in blogger.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/5455492862903867071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/5455492862903867071'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245448085284#c5455492862903867071' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-2130178773923478648</id><published>2009-06-19T16:27:47.350-05:00</published><updated>2009-06-19T16:27:47.350-05:00</updated><title type='text'>Why didn't you allow my comment earlier?</title><content type='html'>Why didn&amp;#39;t you allow my comment earlier?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/2130178773923478648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/2130178773923478648'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245446867350#c2130178773923478648' title=''/><author><name>puzza007</name><uri>http://www.blogger.com/profile/09168730061666265354</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-1222430319856783145</id><published>2009-06-19T10:17:23.582-05:00</published><updated>2009-06-19T10:17:23.582-05:00</updated><title type='text'>Actually I see a very different story in the resul...</title><content type='html'>Actually I see a very different story in the results.&lt;br /&gt;&lt;br /&gt;The bigger issue with the results seems to show that Scala really isn&amp;#39;t scalable in resource usage and for longer running computations is outperformed by Erlang. Also I noticed how the benchmark tests are running an older Erlang before the new SMP scheduler was introduced.&lt;br /&gt;&lt;br /&gt;Based on the benchmarks I would be very worried about memory availability for Scala systems that were more than trivial.  It looks very worrying to me actually.&lt;br /&gt;&lt;br /&gt;The big question is why anyone is still only interested in sequential (linear) performance when parallel performance is clearly what matters in a multi-core age.&lt;br /&gt;&lt;br /&gt;Take a look at this concurrent benchmark to look at real world concurrent results:&lt;br /&gt;http://shootout.alioth.debian.org/u32q/benchmark.php?test=threadring&amp;amp;lang=all&amp;amp;box=1&lt;br /&gt;&lt;br /&gt;Scala / Erlang running time ratio = 2.921866217&lt;br /&gt;&lt;br /&gt;Note: the above benchmark used an older Erlang VM without the new SMP scheduler which is likely to vastly improve on this performance.  Thus the ratio is likely to be even more embarrassing for Scala.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1222430319856783145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/1222430319856783145'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245424643582#c1222430319856783145' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-3532130808821838777</id><published>2009-06-19T09:40:53.135-05:00</published><updated>2009-06-19T09:40:53.135-05:00</updated><title type='text'>erlang is quite a bit slower than scala for sequen...</title><content type='html'>erlang is quite a bit slower than scala for sequential stuff.  http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&amp;amp;lang=scala&amp;amp;lang2=hipe&amp;amp;box=1</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3532130808821838777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3532130808821838777'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245422453135#c3532130808821838777' title=''/><author><name>AndrewMcV</name><uri>http://www.blogger.com/profile/13469158397493435501</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-7907727629380338189</id><published>2009-06-19T04:29:48.859-05:00</published><updated>2009-06-19T04:29:48.859-05:00</updated><title type='text'>"One major side effect of being a pure functional ...</title><content type='html'>&lt;i&gt;&amp;quot;One major side effect of being a pure functional programming language is that there is NO STATE. There is no way to pass &amp;quot;state&amp;quot; around, but there is a lambda calculus optimization that can be taken advantage of that will ease away our troubles called tail-recursion.&amp;quot;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I think what you&amp;#39;re trying to say here is that there&amp;#39;s no &lt;b&gt;mutable&lt;/b&gt; state/variables in Erlang.  To achieve a state update you&amp;#39;d typically call your recursive loop function with a &lt;b&gt;new&lt;/b&gt; variable representing the updated state.  Tail-call optimisation makes sure that this can be done with a constant stack size.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7907727629380338189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7907727629380338189'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245403788859#c7907727629380338189' title=''/><author><name>puzza007</name><uri>http://www.blogger.com/profile/09168730061666265354</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-6747240604568041682</id><published>2009-06-19T03:24:37.721-05:00</published><updated>2009-06-19T03:24:37.721-05:00</updated><title type='text'>Jason: James was simply correcting facts in the ar...</title><content type='html'>Jason: James was simply correcting facts in the article. It isn&amp;#39;t a &amp;quot;debate&amp;quot;. It&amp;#39;s just getting mistakes fixed. I noticed the exact same things in my reading. 1. Erlang is not purely functional and 2. there is no relationship between being purely functional and implementing TCO.&lt;br /&gt;&lt;br /&gt;Momingle: Ruby does not have a simple syntax. It is much more complicated than (for example) Python or Javascript, to say nothing of Lisp or Smalltalk (which are even simpler). For example, Ruby has begin/end and curly braces. If statements can go at the beginning or end of lines. It overloads the &amp;quot;&amp;lt;&amp;lt;&amp;quot; operator to mean a bunch of different things. There are a ton of different kinds of attributes (instance attributes, class attributes, class instance attributes, maybe more). It has different syntaxes for blocks versus methods versus (lambda) functions, each with unique syntax, when Javascript, Lisp and Python get along with just functions.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/6747240604568041682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/6747240604568041682'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245399877721#c6747240604568041682' title=''/><author><name>Paul Prescod</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-7796630057798651679</id><published>2009-06-19T02:25:08.511-05:00</published><updated>2009-06-19T02:25:08.511-05:00</updated><title type='text'>"... [Scala] makes a rather large assumption [...]...</title><content type='html'>&amp;quot;... [Scala] makes a rather large assumption [...] that the Java libraries being used are thread-safe.&amp;quot;&lt;br /&gt;&lt;br /&gt;This is not correct.&lt;br /&gt;It just doesn&amp;#39;t. Actually - it&amp;#39;s the other way around - Scala actors allow you to run non thread-safe code in parallel. The code inside of the actor doesn&amp;#39;t need to be thread-safe. That is one of the advantages of using actors over threads with locks.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7796630057798651679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7796630057798651679'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245396308511#c7796630057798651679' title=''/><author><name>Emil Ivanov</name><uri>http://www.blogger.com/profile/17970241476759446937</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-219436199482259514</id><published>2009-06-19T02:19:23.282-05:00</published><updated>2009-06-19T02:19:23.282-05:00</updated><title type='text'>"However, within the same process/actor there are ...</title><content type='html'>&amp;quot;However, within the same process/actor there are no side effects in Erlang.&amp;quot;&lt;br /&gt;&lt;br /&gt;The process dictionary?&lt;br /&gt;&lt;br /&gt;Also, I&amp;#39;d argue that trying to make a distinction about purity &amp;quot;within the same process&amp;quot; is largely moot: if I call io:format(), it produces a side effect. It makes no practical difference if it&amp;#39;s implemented by sending a message to another process that performs the side effect, or whether the current process performs the side effect. You get no more purity than if you&amp;#39;d called println in Scala.&lt;br /&gt;&lt;br /&gt;&amp;quot;I thought I had mentioned that the lack of full tail-recursion support in Scala was due to the JVM not being stackless like the Erlang VM&amp;quot; -- the Erlang VM uses a stack, doesn&amp;#39;t it?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/219436199482259514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/219436199482259514'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245395963282#c219436199482259514' title=''/><author><name>Matt</name><uri>http://www.blogger.com/profile/12089291649428164242</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-3075276042086568803</id><published>2009-06-19T02:17:40.851-05:00</published><updated>2009-06-19T02:17:40.851-05:00</updated><title type='text'>Would someone please mention execution speed? My i...</title><content type='html'>Would someone please mention execution speed? My impression from reading around is that Scala is not much worse than Java whereas Erlang is a whole lot worse. Execution speed may have more to do with tooling than language design, but it&amp;#39;s certainly a factor in deciding on a language.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3075276042086568803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3075276042086568803'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1245395860851#c3075276042086568803' title=''/><author><name>Anonymous</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-9099797440854348184</id><published>2009-06-11T16:59:11.576-05:00</published><updated>2009-06-11T16:59:11.576-05:00</updated><title type='text'>I started learning both Scala and Erlang the same ...</title><content type='html'>I started learning both Scala and Erlang the same time.  I started with Scala first, went through all the tutorial and guides.  Then I went to erlang.  From language perspective, I found erlang&amp;#39;s syntax much cleaner. That is probably due to Scala is a static type language and erlang is a dynamic type language and Scala has to be both OO and FP the same time.  But even the FP syntax in Scala seems a bit overkill to me.  Pattern matching is a lot easier in erlang than using case class in Scala.  That is just my beginner&amp;#39;s opinion.  I am no language expert.  I just voice my opinion as a developer who wants to get things done and quick.  That means I want to be able to learn a language fast.  Syntax does matter.  One of the reasons so many developers were able to switch to Ruby quickly is due to its simplicity of its syntax.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/9099797440854348184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/9099797440854348184'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1244757551576#c9099797440854348184' title=''/><author><name>momingle</name><uri>http://momingle.com</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-3556361175756853038</id><published>2009-04-22T23:19:00.000-05:00</published><updated>2009-04-22T23:19:00.000-05:00</updated><title type='text'>Apparently I misread your name...sorry James.</title><content type='html'>Apparently I misread your name...sorry James.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3556361175756853038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/3556361175756853038'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1240460340000#c3556361175756853038' title=''/><author><name>Jason R</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-6261938564228343938</id><published>2009-04-22T23:18:00.000-05:00</published><updated>2009-04-22T23:18:00.000-05:00</updated><title type='text'>Jason: I think actually the more important point s...</title><content type='html'>Jason: I think actually the more important point she might be making is between hybrid vs non-hybrid functional languages.  Scala tries to marry up a quadrillion things up in one language, whereas Erlang is simply functional.&lt;br /&gt;&lt;br /&gt;Whether it is pure or not, I don't think that was the point...it is more a matter of hybrid-ness NOT purity.&lt;br /&gt;&lt;br /&gt;Having a (one-sided) academic debate about definitions of functional language purity seems rather pointless.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/6261938564228343938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/6261938564228343938'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1240460280000#c6261938564228343938' title=''/><author><name>Jason R</name><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-7583568404976009081</id><published>2009-04-21T22:47:00.000-05:00</published><updated>2009-04-21T22:47:00.000-05:00</updated><title type='text'>@James I thought I had mentioned that the lack of ...</title><content type='html'>@James I thought I had mentioned that the lack of full tail-recursion support in Scala was due to the JVM not being stackless like the Erlang VM?  I will reread tomorrow morning to find the offending part of the posting.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7583568404976009081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/7583568404976009081'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1240372020000#c7583568404976009081' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-8234096451961387034</id><published>2009-04-21T22:44:00.000-05:00</published><updated>2009-04-21T22:44:00.000-05:00</updated><title type='text'>@James I will clarify what I meant:
In an inter-pr...</title><content type='html'>@James I will clarify what I meant:&lt;br /&gt;In an inter-process (or inter-actor) frame of reference, you are absolutely correct - Erlang is impure!  I should have caught this in my proof-reading, but since I am terrible at both writing and proof-reading it was inevitable that I missed this (and probably quite a few others).&lt;br /&gt;&lt;br /&gt;However, within the same process/actor there are no side effects in Erlang.  Scala allows side effects within a thread/actor.  Erlang and Scala are fundamentally different in this regard.  And it is this distinction I was referring to throughout the posting.&lt;br /&gt;&lt;br /&gt;Thanks for keeping me honest!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8234096451961387034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8234096451961387034'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1240371840000#c8234096451961387034' title=''/><author><name>S. Potter</name><uri>http://www.blogger.com/profile/17341145424164713662</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10967243213996769910'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-25066620.post-8001025643874724178</id><published>2009-04-21T19:09:00.000-05:00</published><updated>2009-04-21T19:09:00.000-05:00</updated><title type='text'>Another comment.  The reason Scala doesn't have fu...</title><content type='html'>Another comment.  The reason Scala doesn't have full tail call optimization has nothing to do with its impurity.  Scheme, SML, OCaml, and Erlang are all impure but have tail recursion.&lt;br /&gt;&lt;br /&gt;Scala's lack of tail recursion is entirely due to a trade-off.  The JVM doesn't do tail recursion itself.  It is possible to add tail recursion on top of the JVM using various tricks, but they are expensive.  SISC does its own stack based heap and Kawa uses trampolining.&lt;br /&gt;&lt;br /&gt;An interesting compromise, available in Clojure now and Scala soon, is to let programmers manually specify where they want to do tail calls via trampolining.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8001025643874724178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25066620/5726300406977243992/comments/default/8001025643874724178'/><link rel='alternate' type='text/html' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html?showComment=1240358940000#c8001025643874724178' title=''/><author><name>James Iry</name><uri>http://www.blogger.com/profile/02835376424060382389</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://geek.susanpotter.net/2009/04/scala-vs-erlang-debate-part-2-geek-off.html' ref='tag:blogger.com,1999:blog-25066620.post-5726300406977243992' source='http://www.blogger.com/feeds/25066620/posts/default/5726300406977243992' type='text/html'/></entry></feed>