<?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: Erlang &#8211; the best or worst of two worlds?</title>
	<atom:link href="http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/</link>
	<description>Functional functional programming - Haskell, Ruby, Erlang, Scala...</description>
	<lastBuildDate>Mon, 04 Jan 2010 21:38:57 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: igouy</title>
		<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/comment-page-1/#comment-18</link>
		<dc:creator>igouy</dc:creator>
		<pubDate>Fri, 08 Sep 2006 21:45:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/#comment-18</guid>
		<description>Let&#039;s skip #1 &quot;Erlang is not statically typed&quot;

I&#039;m a bit puzzled about #2
If we take the simple Dictionary example from the Erlang book (program 4.1 on page 57 http://www.erlang.org/download/erlang-book-part1.pdf ) then the module dictionary seems to provide a data type - what it fails to do is enforce consistent use of that data type, we could use the functions on a data structure that wasn&#039;t created use the dictionary new/0 function.

Long ago I used Modula-2 which has a much stricter notion ADT :-)

(I&#039;m not in a position to claim knowledge of &quot;the modus operandi among Erlang developers&quot;.)</description>
		<content:encoded><![CDATA[<p>Let&#8217;s skip #1 &#8220;Erlang is not statically typed&#8221;</p>
<p>I&#8217;m a bit puzzled about #2<br />
If we take the simple Dictionary example from the Erlang book (program 4.1 on page 57 <a href="http://www.erlang.org/download/erlang-book-part1.pdf" rel="nofollow">http://www.erlang.org/download/erlang-book-part1.pdf</a> ) then the module dictionary seems to provide a data type &#8211; what it fails to do is enforce consistent use of that data type, we could use the functions on a data structure that wasn&#8217;t created use the dictionary new/0 function.</p>
<p>Long ago I used Modula-2 which has a much stricter notion ADT <img src='http://blog.davber.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>(I&#8217;m not in a position to claim knowledge of &#8220;the modus operandi among Erlang developers&#8221;.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: davber</title>
		<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/comment-page-1/#comment-17</link>
		<dc:creator>davber</dc:creator>
		<pubDate>Thu, 07 Sep 2006 21:11:05 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/#comment-17</guid>
		<description>Well, there were two objections embedded in my whining: (1) the &quot;simple&quot; fact that Erlang is not statically typed and (2) the lack of user-defined structures. Because it is feasible to have the latter while being dynamically typed. See Lisp for an example.

Regardig the abstract data types, yes, one can - obviously - aways have developers use functions to access data, but (1) there are no such built-in constructs in the language (compare with the &quot;signature&quot; of ML) and (2) that is not the modus operandi among Erlang developers. Ok, I shoud not blame the language for what developers do or not do ;-)</description>
		<content:encoded><![CDATA[<p>Well, there were two objections embedded in my whining: (1) the &#8220;simple&#8221; fact that Erlang is not statically typed and (2) the lack of user-defined structures. Because it is feasible to have the latter while being dynamically typed. See Lisp for an example.</p>
<p>Regardig the abstract data types, yes, one can &#8211; obviously &#8211; aways have developers use functions to access data, but (1) there are no such built-in constructs in the language (compare with the &#8220;signature&#8221; of ML) and (2) that is not the modus operandi among Erlang developers. Ok, I shoud not blame the language for what developers do or not do <img src='http://blog.davber.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: igouy</title>
		<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/comment-page-1/#comment-16</link>
		<dc:creator>igouy</dc:creator>
		<pubDate>Thu, 07 Sep 2006 20:37:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/#comment-16</guid>
		<description>My impression is that what bothers you is simply that Erlang is not statically type checked. 

The comments about abstract data types seem mostly to be a concern that although we could provide a module with functions that create and manipulate some particular data type, the data type isn&#039;t opaque -  we cannot force the programmer to use those functions, the programmer might figure out some other way to access the data structure. iow Erlang does not enforce abstract data types but does allow abstract data types.

afaict Wadler and Marlow&#039;s proposal never gained acceptance among Erlang programmers. In contrast, static analysis (including type analysis) did gain acceptance, see &quot;The DIALYZER: a DIscrepancy AnaLYZer for ERlang programs&quot;
http://www.it.uu.se/research/group/hipe/dialyzer/</description>
		<content:encoded><![CDATA[<p>My impression is that what bothers you is simply that Erlang is not statically type checked. </p>
<p>The comments about abstract data types seem mostly to be a concern that although we could provide a module with functions that create and manipulate some particular data type, the data type isn&#8217;t opaque &#8211;  we cannot force the programmer to use those functions, the programmer might figure out some other way to access the data structure. iow Erlang does not enforce abstract data types but does allow abstract data types.</p>
<p>afaict Wadler and Marlow&#8217;s proposal never gained acceptance among Erlang programmers. In contrast, static analysis (including type analysis) did gain acceptance, see &#8220;The DIALYZER: a DIscrepancy AnaLYZer for ERlang programs&#8221;<br />
<a href="http://www.it.uu.se/research/group/hipe/dialyzer/" rel="nofollow">http://www.it.uu.se/research/group/hipe/dialyzer/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Another Interesting Erlang Day on Reddit</title>
		<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/comment-page-1/#comment-14</link>
		<dc:creator>Another Interesting Erlang Day on Reddit</dc:creator>
		<pubDate>Tue, 05 Sep 2006 19:37:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/#comment-14</guid>
		<description>[...] Today, I saw 4 Erlang-related articles on programmin.reddit.com: earlier this morning, my article OO, FP, Erlang, and Me was somewhere in the bottom half of the links. It may have been higher at some point -- I don&#039;t know. At number 2 (and it used to be at number 1) is Joe Armstrong&#039;s Why I Don&#039;t Like Shared Memory. At number 9) is Ask Reddit: is Erlang hype the next Ruby hype? I seriously don&#039;t think that Erlang&#039;s &quot;hype&quot; is anywhere close to Ruby&#039;s hype. Erlang&#039;s &quot;hype&quot; is basically my blog, wagerlabs.com and now Joe Armstrong&#039;s blog. I don&#039;t think we are trying to &quot;hype&quot; Erlang as much as raise awareness to the unique capabilities of this relatively under-hyped language, but other people may see it differently. At number 19) is David Bergman&#039;s Erlang: The Best or Worst of Two Worlds?. It may have something to do with my mentioning this article on my blog, but maybe it was discovered by the poster independently. [...]</description>
		<content:encoded><![CDATA[<p>[...] Today, I saw 4 Erlang-related articles on programmin.reddit.com: earlier this morning, my article OO, FP, Erlang, and Me was somewhere in the bottom half of the links. It may have been higher at some point &#8212; I don&#8217;t know. At number 2 (and it used to be at number 1) is Joe Armstrong&#8217;s Why I Don&#8217;t Like Shared Memory. At number 9) is Ask Reddit: is Erlang hype the next Ruby hype? I seriously don&#8217;t think that Erlang&#8217;s &#8220;hype&#8221; is anywhere close to Ruby&#8217;s hype. Erlang&#8217;s &#8220;hype&#8221; is basically my blog, wagerlabs.com and now Joe Armstrong&#8217;s blog. I don&#8217;t think we are trying to &#8220;hype&#8221; Erlang as much as raise awareness to the unique capabilities of this relatively under-hyped language, but other people may see it differently. At number 19) is David Bergman&#8217;s Erlang: The Best or Worst of Two Worlds?. It may have something to do with my mentioning this article on my blog, but maybe it was discovered by the poster independently. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Interesting Take on Erlang by David Bergman</title>
		<link>http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/comment-page-1/#comment-13</link>
		<dc:creator>Interesting Take on Erlang by David Bergman</dc:creator>
		<pubDate>Tue, 05 Sep 2006 16:33:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.davber.com/2006/09/02/erlang-the-best-or-worst-of-two-worlds/#comment-13</guid>
		<description>[...] My friend and former collegue, David Bergman, has an interesting take on Erlang in his blog: Erlang: the Best or Worst of Two Worlds? [...]</description>
		<content:encoded><![CDATA[<p>[...] My friend and former collegue, David Bergman, has an interesting take on Erlang in his blog: Erlang: the Best or Worst of Two Worlds? [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
