<?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-1257969457375562525.post5029213742866714436..comments</id><updated>2009-04-17T23:26:33.338-07:00</updated><title type='text'>Comments on Unlimited Novelty: Why I don't like Scala</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.unlimitednovelty.com/feeds/5029213742866714436/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html'/><author><name>Tony</name><uri>http://www.blogger.com/profile/05698660503129206682</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-693537633589352231</id><published>2009-04-17T23:26:33.338-07:00</published><updated>2009-04-17T23:26:33.338-07:00</updated><title type='text'>&gt; The WTF Operator
&gt; response = receiver !? reques...</title><content type='html'>&amp;gt; The WTF Operator&lt;br /&gt;&amp;gt; response = receiver !? request&lt;br /&gt;&lt;br /&gt;Don&amp;#39;t forget that !? is a method call, not an operator because Scala has no operators (only methods). It&amp;#39;s just that the dot and parens are optional. If the implementers of the actors library would have chosen a name other than !? for the method, it would look something like so:&lt;br /&gt;&lt;br /&gt;response = receiver.sendSynchronous(request)&lt;br /&gt;or equivalently&lt;br /&gt;response = receiver sendSynchronous request &lt;br /&gt;&lt;br /&gt;I guess they just opted for brevity.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/693537633589352231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/693537633589352231'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1240035993338#c693537633589352231' title=''/><author><name>Chris W. Hansen</name><uri>http://www.blogger.com/profile/09718897309693652777</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-1969482104898591155</id><published>2009-04-16T19:37:53.879-07:00</published><updated>2009-04-16T19:37:53.879-07:00</updated><title type='text'>To your point 

"One type of actor is based on nat...</title><content type='html'>To your point &lt;br /&gt;&lt;br /&gt;"One type of actor is based on native threads. However, native threads are substantially heavier than a lightweight Erlang process, limiting the number of thread-based actors you can create in Scala as compared to Erlang."&lt;br /&gt;&lt;br /&gt;Why do you conclude every Java/Scala thread maps to Native thread? To my knowledge native threads are heavy weights in case of Linux and not for Windows (read Fibers) or other Flavours of Unix (Solaris maps Green user-space threads to native threads). Whenever I hear argument which results in "Let's Implement our own", I start to suspect suboptimality in approach, operating systems are best at what they do. Technically speaking, Your Erlang runtime  will never execute in Kernel mode and it can't beat process scheduler performance. In such cases synchronous invocation is your best bet. However, I have to agree that a nonsense parameter to imply synchronous invocation doesn't sound like a rocket science feature in supporting distributed computing, it should be transparent to developer. Distributed programming semantics existed forever that did not introduce silly operators to indicate type of invocation(COM, RMI and whatnot). This is 21st century we want to free developers from thinking about distribution much less the programming language constructs to specify synchronous execution.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/1969482104898591155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/1969482104898591155'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239935873879#c1969482104898591155' title=''/><author><name>Nirav Thaker</name><uri>http://www.blogger.com/profile/07204297663478577248</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-8670759206231639115</id><published>2009-04-16T06:52:50.259-07:00</published><updated>2009-04-16T06:52:50.259-07:00</updated><title type='text'>You seem to be complaining about Scala actors, and...</title><content type='html'>You seem to be complaining about Scala actors, and the JVM's object model.  Scala actors are just a library, and probably most Scala programmers don't use them.  For Scala not to use the JVM's object model, it would have to sacrifice performance and reasonable Java compatibility.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/8670759206231639115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/8670759206231639115'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239889970259#c8670759206231639115' title=''/><author><name>Ricky Clarkson</name><uri>http://www.blogger.com/profile/13845104548520132930</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-187853700353423100</id><published>2009-04-15T17:43:23.387-07:00</published><updated>2009-04-15T17:43:23.387-07:00</updated><title type='text'>Hmm my link didn't seem to work properly. It's htt...</title><content type='html'>Hmm my link didn't seem to work properly. It's http://www.ne-fat-s.org/objactor/index.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/187853700353423100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/187853700353423100'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239842603387#c187853700353423100' title=''/><author><name>morphine</name><uri>http://www.blogger.com/profile/01484194987363955787</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-936403424703887006</id><published>2009-04-15T17:38:10.098-07:00</published><updated>2009-04-15T17:38:10.098-07:00</updated><title type='text'>Some time ago I adapted the actor system in Scala ...</title><content type='html'>Some time ago I adapted the actor system in Scala to be OO, it seems relevant to your post.&lt;br /&gt;&lt;br /&gt;&lt;A SRC="http://www.ne-fat-s.org/objactor/index.html"&gt;objactors&lt;/A&gt;Not that I think that this (or actors in general) are a particularly good approach.&lt;br /&gt;&lt;br /&gt;In my solution returning method calls are synchronous - if you want to respond asynchronously you have to call the caller.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/936403424703887006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/936403424703887006'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239842290098#c936403424703887006' title=''/><author><name>morphine</name><uri>http://www.blogger.com/profile/01484194987363955787</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-7746177011473815604</id><published>2009-04-15T06:25:50.298-07:00</published><updated>2009-04-15T06:25:50.298-07:00</updated><title type='text'>20 years ago I used to work on ActTalk, an Actor e...</title><content type='html'>20 years ago I used to work on ActTalk, an Actor extension to Smalltalk. It had a nice and simple design. That was due to the highly dynamic capabilities of the Smalltalk language. &lt;br /&gt;&lt;br /&gt;I wonder if we could do the same with Groovy today...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7746177011473815604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7746177011473815604'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239801950298#c7746177011473815604' title=''/><author><name>Erix</name><uri>http://www.blogger.com/profile/10805491530595337423</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-3470558866419794710</id><published>2009-04-10T06:21:23.922-07:00</published><updated>2009-04-10T06:21:23.922-07:00</updated><title type='text'>&gt; Scala hybrid functional/imperative object/actor ...</title><content type='html'>&amp;gt; Scala hybrid functional/imperative object/actor language&lt;BR/&gt;&lt;BR/&gt;This is Scala&amp;#39;s amazing strength - it fooled you!  Scala is not an actor language any more than Java is.  But it has a library that looks like a part of the language.&lt;BR/&gt;&lt;BR/&gt;Otherwise, your comments are pretty much spot on.  If you need to do hardcore concurrency and the Erlang ecosystem fits your needs, it&amp;#39;s hard to do better than using the Erlang platform.&lt;BR/&gt;&lt;BR/&gt;However, one quibble.  Scala is hybrid &amp;quot;functional/imperative&amp;quot; exactly the same way Erlang, Scheme, Common Lisp, Clojure, SML, OCaml, and many others are.  All of these are imperative in the way they deal with IO and other side effects like mutation.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/3470558866419794710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/3470558866419794710'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239369683922#c3470558866419794710' 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://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-6108737254676906543</id><published>2009-04-08T20:03:37.950-07:00</published><updated>2009-04-08T20:03:37.950-07:00</updated><title type='text'>Pichi,I just submitted a writeup of what I believe...</title><content type='html'>Pichi,&lt;BR/&gt;&lt;BR/&gt;I just submitted a writeup of what I believe your proposal to be to the Reia Google Group:&lt;BR/&gt;&lt;BR/&gt;http://groups.google.com/group/reia/browse_thread/thread/808524369028e6b3&lt;BR/&gt;&lt;BR/&gt;That might be a better place to continue this rather than my blog.&lt;BR/&gt;&lt;BR/&gt;It is the most interesting proposal so far, and one I'm considering.  I'm worried about how it muddies hidden state and allows for outside processes to cause side effects in the middle of method dispatch.&lt;BR/&gt;&lt;BR/&gt;That said deadlocks are much worse.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/6108737254676906543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/6108737254676906543'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239246217950#c6108737254676906543' title=''/><author><name>Tony</name><uri>http://www.blogger.com/profile/05698660503129206682</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07687040209133351964'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-5630657880297983561</id><published>2009-04-08T08:11:36.209-07:00</published><updated>2009-04-08T08:11:36.209-07:00</updated><title type='text'>For what I can infer about your comments, the acto...</title><content type='html'>For what I can infer about your comments, the actor model is embedded in the core of your language. Actors in Scala, on the other hand, are just a library implemented in Scala. The fact that they can be integrated seamlessly shows the power of Scala language. On the other hand, I think Scala is a general purpose language, I'll never try to do in Scala the things Erlang is desinged for.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5630657880297983561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5630657880297983561'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239203496209#c5630657880297983561' title=''/><author><name>Gabriel C.</name><uri>http://www.blogger.com/profile/17525961934302794120</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-7905782433615237891</id><published>2009-04-08T06:47:10.494-07:00</published><updated>2009-04-08T06:47:10.494-07:00</updated><title type='text'>I found above approach little bit confusing. In pr...</title><content type='html'>I found above approach little bit confusing. In programmers point of view this can happen (Excuse I&amp;#39;m not familiar with Reia syntax)&lt;BR/&gt;&lt;BR/&gt;class A:&lt;BR/&gt;...&lt;BR/&gt;  def MA1 (B):&lt;BR/&gt;    a=self.p1;&lt;BR/&gt;    b=B.MB1();&lt;BR/&gt;    c=self.p1;&lt;BR/&gt;    if a!=c then&lt;BR/&gt;      print &amp;quot;This can happen because any other method of A can be performed during B.MB1()!&amp;quot;&lt;BR/&gt;&lt;BR/&gt;Funny, isn&amp;#39;t it?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7905782433615237891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7905782433615237891'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239198430494#c7905782433615237891' title=''/><author><name>Pichi</name><uri>http://www.blogger.com/profile/12662180723203160349</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-8449332140063298678</id><published>2009-04-08T01:27:00.980-07:00</published><updated>2009-04-08T01:27:00.980-07:00</updated><title type='text'>I don't like "two process" solution too.About stat...</title><content type='html'>I don't like "two process" solution too.&lt;BR/&gt;&lt;BR/&gt;About state:&lt;BR/&gt;&lt;BR/&gt;All starts from main process. Object A is made in some state SA1. Object B is made in some state SB1. Main process calls method MA1 of object A and waits (receive) for response. In method handler of object A is state changed to SA2 and called method MB1 of object B (PID passed as argument of method) and waits (receive) for response. This receive is also able to handle another calls. In method MB1 of object B is changed state SB1 to SB2 and called method MA2 or MA1 but with another parameters which will not cause call to B again. Receive clause in object A will accept this call but fun goes here. Process of object A must store "continuation" (push on stack) where information about method MA1. Object A handles MA2 and changes to state SA3 and responses to object B and returns to "continuation" state but with state SA3. (I think it is way how object behaves in OOP. There is variant with state SA2 but I think it is wrong.) Object B changes state to SB3 and responses to object A. Object A receives response, continues in method MA1, changes state to SA4 and returns response to main process.&lt;BR/&gt;&lt;BR/&gt;There is possible infinite loop but in same case as in classical OOP.&lt;BR/&gt;&lt;BR/&gt;P.S.: I'm embarrassed when helping implement concept which I think is wrong ;-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/8449332140063298678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/8449332140063298678'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239179220980#c8449332140063298678' title=''/><author><name>Pichi</name><uri>http://www.blogger.com/profile/12662180723203160349</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-5312743632711093325</id><published>2009-04-07T15:36:05.920-07:00</published><updated>2009-04-07T15:36:05.920-07:00</updated><title type='text'>Also, I don't like "two process" solutions to hand...</title><content type='html'>Also, I don't like "two process" solutions to handling "reentrant" calls to an object which is calling out elsewhere.&lt;BR/&gt;&lt;BR/&gt;What do you do with the state?  The caller has one copy... if you try to call it again the call will be handled by another process...&lt;BR/&gt;&lt;BR/&gt;What if that process changes the state while the caller is still calling out?  The caller is then working off a different copy of the state.  You have two states, one from when it answered the first request, and one from the second.  Which one should be the "new" state?&lt;BR/&gt;&lt;BR/&gt;It just doesn't work that way, unfortunately.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5312743632711093325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5312743632711093325'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239143765920#c5312743632711093325' title=''/><author><name>Tony</name><uri>http://www.blogger.com/profile/05698660503129206682</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07687040209133351964'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-5905458545008548400</id><published>2009-04-07T10:02:20.837-07:00</published><updated>2009-04-07T10:02:20.837-07:00</updated><title type='text'>Reia has the equivalent of gen_server cast as well...</title><content type='html'>Reia has the equivalent of gen_server cast as well.  The syntax is:&lt;BR/&gt;&lt;BR/&gt;receiver&amp;lt;-method(arg1, arg2, ...)&lt;BR/&gt;&lt;BR/&gt;It&amp;#39;s still left as an exercise to the programmer to decide when to use calls and when to use casts.  If you decide wrong, you risk deadlocking.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5905458545008548400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/5905458545008548400'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239123740837#c5905458545008548400' title=''/><author><name>Tony</name><uri>http://www.blogger.com/profile/05698660503129206682</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='07687040209133351964'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry><entry><id>tag:blogger.com,1999:blog-1257969457375562525.post-7431465509313849875</id><published>2009-04-07T08:55:18.997-07:00</published><updated>2009-04-07T08:55:18.997-07:00</updated><title type='text'>When I think about call graph problem I have thoug...</title><content type='html'>When I think about call graph problem I have though about one way of solution. When object process (actor) waits for result of call (request) it can accept another's object calls. When call comes it stores current state as some kind of "continuation", serve call and returns to "continuation" which hangs in receive clause again. It introduce some kind of process "stack" of "continuations". Hard thing comes how handle object "state" trough multiple "continuations" on "stack". It's big challenge&lt;BR/&gt;&lt;BR/&gt;Same problem you can found with normal Erlang programing using gen_server or gen_fsm when your handler involves call to another gen_* process but Erlang system are usually designed to avoid this problem (for example using cast instead call).&lt;BR/&gt;&lt;BR/&gt;Anyway I think OOP is broken by design ;-)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7431465509313849875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1257969457375562525/5029213742866714436/comments/default/7431465509313849875'/><link rel='alternate' type='text/html' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html?showComment=1239119718997#c7431465509313849875' title=''/><author><name>Pichi</name><uri>http://www.blogger.com/profile/12662180723203160349</uri><email>noreply@blogger.com</email></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://www.unlimitednovelty.com/2009/04/why-i-dont-like-scala.html' ref='tag:blogger.com,1999:blog-1257969457375562525.post-5029213742866714436' source='http://www.blogger.com/feeds/1257969457375562525/posts/default/5029213742866714436' type='text/html'/></entry></feed>