<?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: In Response to &#8220;What Sucks About Erlang&#8221;</title>
	<atom:link href="http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/feed/" rel="self" type="application/rss+xml" />
	<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/</link>
	<description>Adventures in Open Source Erlang</description>
	<lastBuildDate>Sun, 06 Dec 2009 10:29:08 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Some thoughts about Erlang &#124; walker&#8230;to the next step</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-431935</link>
		<dc:creator>Some thoughts about Erlang &#124; walker&#8230;to the next step</dc:creator>
		<pubDate>Sun, 30 Aug 2009 01:45:04 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-431935</guid>
		<description>[...] check out Yariv&#8217;s response and his Recless [...]</description>
		<content:encoded><![CDATA[<p>[...] check out Yariv&#8217;s response and his Recless [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Davis</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-141748</link>
		<dc:creator>Steve Davis</dc:creator>
		<pubDate>Tue, 29 Apr 2008 22:11:56 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-141748</guid>
		<description>I am an absolute noob to Erlang, currently working through the books/manuals, and having spent years of my professional time in C++/Java/J2EE/C#. Admittedly, when I was first exposed to the syntax of Erlang I had a &quot;yuck&quot; reaction. However, I&#039;m finding that as I discover how to &quot;think in Erlang&quot;, I&#039;m able to do what I want with the language and libraries with much less ceremony than the imperative/OO style. Erlang has proven incredibly, amazingly, even wonderfully concise and straightforward. What&#039;s more I am coding really efficient applications that never need to stop for maintenance (OMG!!!).

I&#039;m thinking now - well, suppose there were a &quot;strings&quot; library... under what circumstances would I ever need to code an application in anything else? What&#039;s more, apart from interfacing to existing legacy databases, I can&#039;t really think of any circumstance where I would want to use a traditional RDBMS over Mnesia; And what&#039;s more that that - as Erlyweb develops, I suspect I&#039;ll be asking &quot;why use any other web framework?&quot; too (I&#039;m definitely wondering why Yariv chose to use MySQL).

All in all - the syntax issues raised seem truly trivial in comparison with the ROI - so here&#039;s my &quot;challenge&quot;: Code a non-trivial application in Erlang *of your own design*, then come back and tell us all how much, or if, you care about syntactic sugar.</description>
		<content:encoded><![CDATA[<p>I am an absolute noob to Erlang, currently working through the books/manuals, and having spent years of my professional time in C++/Java/J2EE/C#. Admittedly, when I was first exposed to the syntax of Erlang I had a &#8220;yuck&#8221; reaction. However, I&#8217;m finding that as I discover how to &#8220;think in Erlang&#8221;, I&#8217;m able to do what I want with the language and libraries with much less ceremony than the imperative/OO style. Erlang has proven incredibly, amazingly, even wonderfully concise and straightforward. What&#8217;s more I am coding really efficient applications that never need to stop for maintenance (OMG!!!).</p>
<p>I&#8217;m thinking now &#8211; well, suppose there were a &#8220;strings&#8221; library&#8230; under what circumstances would I ever need to code an application in anything else? What&#8217;s more, apart from interfacing to existing legacy databases, I can&#8217;t really think of any circumstance where I would want to use a traditional RDBMS over Mnesia; And what&#8217;s more that that &#8211; as Erlyweb develops, I suspect I&#8217;ll be asking &#8220;why use any other web framework?&#8221; too (I&#8217;m definitely wondering why Yariv chose to use MySQL).</p>
<p>All in all &#8211; the syntax issues raised seem truly trivial in comparison with the ROI &#8211; so here&#8217;s my &#8220;challenge&#8221;: Code a non-trivial application in Erlang *of your own design*, then come back and tell us all how much, or if, you care about syntactic sugar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: samantha</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-137363</link>
		<dc:creator>samantha</dc:creator>
		<pubDate>Wed, 23 Apr 2008 06:30:46 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-137363</guid>
		<description>Strings as arrays of integers does in imho suck bigtime.  Strings are NOT integer arrays conceptually and typed functional languages should make it very easy to deal with the actual type concepts present.  And what of unicode strings where it may take more than one integer to express a character in some alphabet?  The language should have a distinct string type or much better yet enable you to easily create one and use it as if was built-in. 

And why the hell lists of integers (which bloat as mentioned on 64 bit archs) when array of bytes could very easily have been used (modulo unicode)?</description>
		<content:encoded><![CDATA[<p>Strings as arrays of integers does in imho suck bigtime.  Strings are NOT integer arrays conceptually and typed functional languages should make it very easy to deal with the actual type concepts present.  And what of unicode strings where it may take more than one integer to express a character in some alphabet?  The language should have a distinct string type or much better yet enable you to easily create one and use it as if was built-in. </p>
<p>And why the hell lists of integers (which bloat as mentioned on 64 bit archs) when array of bytes could very easily have been used (modulo unicode)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TruePath</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-120804</link>
		<dc:creator>TruePath</dc:creator>
		<pubDate>Thu, 03 Apr 2008 19:31:01 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-120804</guid>
		<description>@Yariv:

Yah, on second thought I was being a bit excessive in saying I don&#039;t want to ever learn it.  It really does seem interesting and no other language offers some of Erlang&#039;s nicities so maybe I&#039;ll look into learning it when I have some time.  I still don&#039;t think your defenses fly but that doesn&#039;t mean the good features aren&#039;t worth the annoyances...and hopefully someone will come along and take the good bits and jettison the bad.

@Sam O:

Ohh and where did I make an incorrect claim about functional languages?

The point about immutability is simply that having mutable variables gives you forms of programming that aren&#039;t available only having immutable data (this isn&#039;t a point about theoretical computability).  Thus to compare apples to apples you must compare the readability of the code to do something as would be implemented in a language with mutable data and in a language without mutable data.  You can&#039;t just assume that it&#039;s going to be the same code in both sorts of languages and then say viola the immutable language is easier to read.

What languages are easier to read or understand is ultimately a psychological matter that has to be decided by empirical examination.  Theory can&#039;t really tell you this.</description>
		<content:encoded><![CDATA[<p>@Yariv:</p>
<p>Yah, on second thought I was being a bit excessive in saying I don&#8217;t want to ever learn it.  It really does seem interesting and no other language offers some of Erlang&#8217;s nicities so maybe I&#8217;ll look into learning it when I have some time.  I still don&#8217;t think your defenses fly but that doesn&#8217;t mean the good features aren&#8217;t worth the annoyances&#8230;and hopefully someone will come along and take the good bits and jettison the bad.</p>
<p>@Sam O:</p>
<p>Ohh and where did I make an incorrect claim about functional languages?</p>
<p>The point about immutability is simply that having mutable variables gives you forms of programming that aren&#8217;t available only having immutable data (this isn&#8217;t a point about theoretical computability).  Thus to compare apples to apples you must compare the readability of the code to do something as would be implemented in a language with mutable data and in a language without mutable data.  You can&#8217;t just assume that it&#8217;s going to be the same code in both sorts of languages and then say viola the immutable language is easier to read.</p>
<p>What languages are easier to read or understand is ultimately a psychological matter that has to be decided by empirical examination.  Theory can&#8217;t really tell you this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ulf Wiger</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-118505</link>
		<dc:creator>Ulf Wiger</dc:creator>
		<pubDate>Tue, 01 Apr 2008 21:53:38 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-118505</guid>
		<description>Yariv, nice article.

Regarding code organization, I&#039;d like to paraphrase Yariv and pose a challenge: write a large application in Erlang and and show me how code organization was a problem for you. 

This is half-kidding, of course, but only half. Personally, I&#039;ve experienced large-scale Erlang development through all life cycles of a huge software system (&gt; 2 million lines of code, &gt; 100 OTP applications, hundreds of mnesia tables) for more than a decade, and I can honestly say that not only did Erlang not cause us any great problems in this area - we&#039;ve found it very helpful. The issue that needed to be addressed from the start was deciding on a namespace convention, but that is trivial in a closed system. In an open collaboration environment, namespace can become an issue, but so far, the Erlang community seems to be coping with that as well.

Dismissing Erlang until you need robust concurrency misses the point of using share-nothing concurrency as a very attractive structuring concept in its own right. You will miss Erlang&#039;s wonderful support for encapsulation and modularity as long as you don&#039;t embrace the notion of modeling with concurrency. This support pays of big-time in large software systems.

Having said this, I respect that people have different requirements on a programming language. While working with large software systems, things like whether or not the &#039;if&#039; syntax is pretty is truly insignificant, if the language helps you with modularity, code reuse, debugging, etc. But of course, Erlang was designed to solve exactly the sort of problems that are among the most common killers of telecoms software development projects. For other tasks, e.g. ones where it&#039;s all about fast and convenient string processing, Erlang may not be your first choice. 

This doesn&#039;t mean that it isn&#039;t a general-purpose language. General purpose doesn&#039;t mean &quot;ideal for everything&quot;. From my point of view, both Java and C suck at concurrency, but I will concede that both are general-purpose languages - even reasonably good ones, as long as one learns how to use them properly.</description>
		<content:encoded><![CDATA[<p>Yariv, nice article.</p>
<p>Regarding code organization, I&#8217;d like to paraphrase Yariv and pose a challenge: write a large application in Erlang and and show me how code organization was a problem for you. </p>
<p>This is half-kidding, of course, but only half. Personally, I&#8217;ve experienced large-scale Erlang development through all life cycles of a huge software system (&gt; 2 million lines of code, &gt; 100 OTP applications, hundreds of mnesia tables) for more than a decade, and I can honestly say that not only did Erlang not cause us any great problems in this area &#8211; we&#8217;ve found it very helpful. The issue that needed to be addressed from the start was deciding on a namespace convention, but that is trivial in a closed system. In an open collaboration environment, namespace can become an issue, but so far, the Erlang community seems to be coping with that as well.</p>
<p>Dismissing Erlang until you need robust concurrency misses the point of using share-nothing concurrency as a very attractive structuring concept in its own right. You will miss Erlang&#8217;s wonderful support for encapsulation and modularity as long as you don&#8217;t embrace the notion of modeling with concurrency. This support pays of big-time in large software systems.</p>
<p>Having said this, I respect that people have different requirements on a programming language. While working with large software systems, things like whether or not the &#8216;if&#8217; syntax is pretty is truly insignificant, if the language helps you with modularity, code reuse, debugging, etc. But of course, Erlang was designed to solve exactly the sort of problems that are among the most common killers of telecoms software development projects. For other tasks, e.g. ones where it&#8217;s all about fast and convenient string processing, Erlang may not be your first choice. </p>
<p>This doesn&#8217;t mean that it isn&#8217;t a general-purpose language. General purpose doesn&#8217;t mean &#8220;ideal for everything&#8221;. From my point of view, both Java and C suck at concurrency, but I will concede that both are general-purpose languages &#8211; even reasonably good ones, as long as one learns how to use them properly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Axio</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-111878</link>
		<dc:creator>Axio</dc:creator>
		<pubDate>Wed, 19 Mar 2008 01:24:21 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-111878</guid>
		<description>David: Strings can be represented as a tree of integers, rather than a list. In that case, they are known as &quot;ropes&quot; in fact. Might be useless if you don&#039;t manipulate them, but very useful when you need fast concatenation or rapid access to their nth element.</description>
		<content:encoded><![CDATA[<p>David: Strings can be represented as a tree of integers, rather than a list. In that case, they are known as &#8220;ropes&#8221; in fact. Might be useless if you don&#8217;t manipulate them, but very useful when you need fast concatenation or rapid access to their nth element.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yariv</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-111087</link>
		<dc:creator>Yariv</dc:creator>
		<pubDate>Mon, 17 Mar 2008 00:54:17 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-111087</guid>
		<description>Erlang syntax is quirky sometimes but horrible is a big overstatement. It&#039;s quite easy once you get used to it. Also, check out distel and debugger:start().</description>
		<content:encoded><![CDATA[<p>Erlang syntax is quirky sometimes but horrible is a big overstatement. It&#8217;s quite easy once you get used to it. Also, check out distel and debugger:start().</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: no name</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-110998</link>
		<dc:creator>no name</dc:creator>
		<pubDate>Sun, 16 Mar 2008 17:18:40 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-110998</guid>
		<description>erlang syntax is horrible compared to haskell
(like having to do &quot;fun lists:map/1&quot; in stead of just &quot;map&quot;)


strings being lists of integers is unnatural.
no other language that i know of does this


no debugger
:(</description>
		<content:encoded><![CDATA[<p>erlang syntax is horrible compared to haskell<br />
(like having to do &#8220;fun lists:map/1&#8243; in stead of just &#8220;map&#8221;)</p>
<p>strings being lists of integers is unnatural.<br />
no other language that i know of does this</p>
<p>no debugger<br />
:(</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yariv</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-109425</link>
		<dc:creator>Yariv</dc:creator>
		<pubDate>Wed, 12 Mar 2008 03:35:15 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-109425</guid>
		<description>@TruePath If you base your decision to not use Erlang based on my article I think you&#039;re missing out. Most of the points I discussed are responses to pretty minor complaints. The existence of workarounds that may occasionally save you a small amount of typing is hardly an indicator of major flaws in the language. I suggest you try building something in Erlang and then see how you feel about it.

@calvin look at the regexp module.

@Franz I&#039;ve actually done a good amount of C programming :) Immutability allows you to pass values by reference while also guaranteeing that data never changes. It&#039;s like declaring all your variables &#039;final&#039; in Java.</description>
		<content:encoded><![CDATA[<p>@TruePath If you base your decision to not use Erlang based on my article I think you&#8217;re missing out. Most of the points I discussed are responses to pretty minor complaints. The existence of workarounds that may occasionally save you a small amount of typing is hardly an indicator of major flaws in the language. I suggest you try building something in Erlang and then see how you feel about it.</p>
<p>@calvin look at the regexp module.</p>
<p>@Franz I&#8217;ve actually done a good amount of C programming :) Immutability allows you to pass values by reference while also guaranteeing that data never changes. It&#8217;s like declaring all your variables &#8216;final&#8217; in Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Franz</title>
		<link>http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/comment-page-1/#comment-109408</link>
		<dc:creator>Franz</dc:creator>
		<pubDate>Wed, 12 Mar 2008 02:18:12 +0000</pubDate>
		<guid isPermaLink="false">http://yarivsblog.com/articles/2008/03/09/in-response-to-what-sucks-about-erlang/#comment-109408</guid>
		<description>Aren&#039;t all your examples on the superiority of immutable variables actually just examples of pass-by-value providing more safety than pass-by-reference? I don&#039;t see anything demonstrating the variable itself as immutable, just examples of it not being changed by a function it has been passed to. And it&#039;s the same with your complaint against imperative languages on this point; the multiple points of variable changes is a result of doing pass-by-reference, not because the variable can be changed. Not to say that there isn&#039;t value to immutable variables, just that I don&#039;t see anything actually referring to it in your defense. You may want to try a language that has explicit pass-by-reference semantics, such as C.</description>
		<content:encoded><![CDATA[<p>Aren&#8217;t all your examples on the superiority of immutable variables actually just examples of pass-by-value providing more safety than pass-by-reference? I don&#8217;t see anything demonstrating the variable itself as immutable, just examples of it not being changed by a function it has been passed to. And it&#8217;s the same with your complaint against imperative languages on this point; the multiple points of variable changes is a result of doing pass-by-reference, not because the variable can be changed. Not to say that there isn&#8217;t value to immutable variables, just that I don&#8217;t see anything actually referring to it in your defense. You may want to try a language that has explicit pass-by-reference semantics, such as C.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
