<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: Object-oriented processes</title>
	<atom:link href="http://blog.amber.org/2007/08/16/object-oriented-processes/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.amber.org/2007/08/16/object-oriented-processes/</link>
	<description>Thoughts of a minor lunatic</description>
	<pubDate>Wed, 07 Jan 2009 18:14:20 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: petrilli</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49758</link>
		<dc:creator>petrilli</dc:creator>
		<pubDate>Sun, 19 Aug 2007 22:44:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49758</guid>
		<description>No idea, I'd recommend making your own decisions, I generally am not an advocate.</description>
		<content:encoded><![CDATA[<p>No idea, I&#8217;d recommend making your own decisions, I generally am not an advocate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49757</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sun, 19 Aug 2007 17:43:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49757</guid>
		<description>Why should I use Erlang, and not Scala for example?</description>
		<content:encoded><![CDATA[<p>Why should I use Erlang, and not Scala for example?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49732</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Fri, 17 Aug 2007 17:40:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49732</guid>
		<description>The Bryce quote is from "An Approach to Safe Object Sharing"

http://asg.unige.ch/index.php?cat=bibliography&#38;type=details&#38;id=245&#38;typepublication=Unpublished


What's the markup for these comments? HTML was stripped.</description>
		<content:encoded><![CDATA[<p>The Bryce quote is from &#8220;An Approach to Safe Object Sharing&#8221;</p>
<p><a href="http://asg.unige.ch/index.php?cat=bibliography&#038;type=details&#038;id=245&#038;typepublication=Unpublished" rel="nofollow">http://asg.unige.ch/index.php?cat=bibliography&#038;type=details&#038;id=245&#038;typepublication=Unpublished</a></p>
<p>What&#8217;s the markup for these comments? HTML was stripped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49731</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Fri, 17 Aug 2007 17:37:44 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49731</guid>
		<description>petrilli wrote "only my interpretation"

Maybe your interpretation misses out the bits that Joe Armstrong regarded as essential - he listed the characteristics for his notion of "true concurrency" and it seems you are talking about some other idea of "concurrency".


petrilli wrote "Bryceâ€™s argument, while true, does not argue the same thing that Armstrong states, which is that aliasing is difficult to detect in practice."

Bryce wrote "Aliasing is difficult to detect ..." p107


petrilli wrote "This might be true with Java, but it is certainly not true with Smalltalk."

I'm interested in how you think continual need to detect references to method arguments would play out in practice - wouldn't we be spending an awful lot of time trying to detect references at run time?</description>
		<content:encoded><![CDATA[<p>petrilli wrote &#8220;only my interpretation&#8221;</p>
<p>Maybe your interpretation misses out the bits that Joe Armstrong regarded as essential &#8211; he listed the characteristics for his notion of &#8220;true concurrency&#8221; and it seems you are talking about some other idea of &#8220;concurrency&#8221;.</p>
<p>petrilli wrote &#8220;Bryceâ€™s argument, while true, does not argue the same thing that Armstrong states, which is that aliasing is difficult to detect in practice.&#8221;</p>
<p>Bryce wrote &#8220;Aliasing is difficult to detect &#8230;&#8221; p107</p>
<p>petrilli wrote &#8220;This might be true with Java, but it is certainly not true with Smalltalk.&#8221;</p>
<p>I&#8217;m interested in how you think continual need to detect references to method arguments would play out in practice &#8211; wouldn&#8217;t we be spending an awful lot of time trying to detect references at run time?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Aufflick</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49722</link>
		<dc:creator>Mark Aufflick</dc:creator>
		<pubDate>Fri, 17 Aug 2007 06:04:23 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49722</guid>
		<description>In fact you can see the similarity/overlap by looking at simple "OO" classes implemented in Erlang in http://www.angelfire.com/tx4/cus/shapes/erlang.html  

Those examples kindof miss the point since there's no need to make erlang look like common OO implementations (with a new() function and so forth), but it's a useful example for the discussion here.</description>
		<content:encoded><![CDATA[<p>In fact you can see the similarity/overlap by looking at simple &#8220;OO&#8221; classes implemented in Erlang in <a href="http://www.angelfire.com/tx4/cus/shapes/erlang.html" rel="nofollow">http://www.angelfire.com/tx4/cus/shapes/erlang.html</a>  </p>
<p>Those examples kindof miss the point since there&#8217;s no need to make erlang look like common OO implementations (with a new() function and so forth), but it&#8217;s a useful example for the discussion here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: petrilli</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49718</link>
		<dc:creator>petrilli</dc:creator>
		<pubDate>Fri, 17 Aug 2007 01:42:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49718</guid>
		<description>I don't want to speak to intent, only my interpretation, but here's a few excerpts from the dissertation:

bq. Note that COPLs must provide true concurrency, thus objects represented as processes are truly concurrent, and messages between processes are true asynchronous messages, unlike the disguised remote procedure calls found in many object-oriented languages. (p. 22)

I think here Armstrong over-reaches a bit, as RPC is more like a disguised function call in most languages. Messages in Smalltalk are synchronous, and that does potentially make creation of the type of fault tolerant systems that Erlang is designed for more difficult, but I do not think it necessarily makes _concurrency_ itself harder.

Bryce's argument, while true, does not argue the same thing that Armstrong states, which is that aliasing is difficult to detect in practice. This might be true with Java, but it is certainly not true with Smalltalk. Simply examine the nature of @Object&gt;&gt;become:@ which swaps out objects from under everyone, and is commonly used in Smalltalk systems. Other than Objective-C, which is strongly influenced by Smalltalk, I'm not aware of any other system that has a similar capability. Some languages have some hacks to try and do this, but they often fail in practice as he mentions.

As such, I think that the difference is between message-oriented languages (such as Smalltalk and Erlang) and other more traditional approaches to solving the problem. This is not to say Erlang might not make some of these things easier than in most any other system, but I believe he paints with a slightly soiled brush when he makes the generalization about object-oriented systems.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t want to speak to intent, only my interpretation, but here&#8217;s a few excerpts from the dissertation:</p>
<blockquote>
<p>Note that COPLs must provide true concurrency, thus objects represented as processes are truly concurrent, and messages between processes are true asynchronous messages, unlike the disguised remote procedure calls found in many object-oriented languages. (p. 22)</p>
</blockquote>
<p>I think here Armstrong over-reaches a bit, as RPC is more like a disguised function call in most languages. Messages in Smalltalk are synchronous, and that does potentially make creation of the type of fault tolerant systems that Erlang is designed for more difficult, but I do not think it necessarily makes <em>concurrency</em> itself harder.</p>
<p>Bryce&#8217;s argument, while true, does not argue the same thing that Armstrong states, which is that aliasing is difficult to detect in practice. This might be true with Java, but it is certainly not true with Smalltalk. Simply examine the nature of <code>Object&gt;&gt;become:</code> which swaps out objects from under everyone, and is commonly used in Smalltalk systems. Other than Objective-C, which is strongly influenced by Smalltalk, I&#8217;m not aware of any other system that has a similar capability. Some languages have some hacks to try and do this, but they often fail in practice as he mentions.</p>
<p>As such, I think that the difference is between message-oriented languages (such as Smalltalk and Erlang) and other more traditional approaches to solving the problem. This is not to say Erlang might not make some of these things easier than in most any other system, but I believe he paints with a slightly soiled brush when he makes the generalization about object-oriented systems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Isaac Gouy</title>
		<link>http://blog.amber.org/2007/08/16/object-oriented-processes/comment-page-1/#comment-49717</link>
		<dc:creator>Isaac Gouy</dc:creator>
		<pubDate>Fri, 17 Aug 2007 01:18:45 +0000</pubDate>
		<guid isPermaLink="false">http://blog.amber.org/2007/08/16/object-oriented-processes/#comment-49717</guid>
		<description>"... Joe Armstrong argues that object-oriented approaches to concurrent programming are difficult to make work."

I see where he writes 

"Bryce goes on to say that object aliasing is difficult if not impossible to detect in practice, and recommends the use of protection domains (akin to OS processes) to solve this problem." 

and 

"Bryce and Razafimahefa argue that is is essential to isolate programs from one another, and from the programs which run in the host operating system. This, they consider, is the essential characteristic that any object system must have. As they point out in their paper, this is a difficult problem in an object-oriented context." 

is that what you're referring to?


afaik Smalltalk messages happily share object references - how is that like "the level of isolation that Erlang exhibits"?</description>
		<content:encoded><![CDATA[<p>&#8221;... Joe Armstrong argues that object-oriented approaches to concurrent programming are difficult to make work.&#8221;</p>
<p>I see where he writes </p>
<p>&#8220;Bryce goes on to say that object aliasing is difficult if not impossible to detect in practice, and recommends the use of protection domains (akin to OS processes) to solve this problem.&#8221; </p>
<p>and </p>
<p>&#8220;Bryce and Razafimahefa argue that is is essential to isolate programs from one another, and from the programs which run in the host operating system. This, they consider, is the essential characteristic that any object system must have. As they point out in their paper, this is a difficult problem in an object-oriented context.&#8221; </p>
<p>is that what you&#8217;re referring to?</p>
<p>afaik Smalltalk messages happily share object references &#8211; how is that like &#8220;the level of isolation that Erlang exhibits&#8221;?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
