<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:rawvoice="http://www.rawvoice.com/rawvoiceRssModule/"
	>
<channel>
	<title>Comments on: How Ocaml Can Be Improved</title>
	<atom:link href="http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/feed/" rel="self" type="application/rss+xml" />
	<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/</link>
	<description>programming, politics, &#38; other religious issues</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:16:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: John Hughes</title>
		<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/#comment-37523</link>
		<dc:creator>John Hughes</dc:creator>
		<pubDate>Wed, 21 Apr 2010 15:06:29 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=395#comment-37523</guid>
		<description>&quot;Printf wouldn’t have the same problems if the order of substitution wasn’t hardcoded to be the order of declaration.&quot;

Except that it isn&#039;t.

printf (&quot;%2$s, %1$s\n&quot;, &quot;John&quot;, &quot;Hughes&quot;);

prints &quot;Hughes, John&quot;</description>
		<content:encoded><![CDATA[<p>&#8220;Printf wouldn’t have the same problems if the order of substitution wasn’t hardcoded to be the order of declaration.&#8221;</p>
<p>Except that it isn&#8217;t.</p>
<p>printf (&#8220;%2$s, %1$s\n&#8221;, &#8220;John&#8221;, &#8220;Hughes&#8221;);</p>
<p>prints &#8220;Hughes, John&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leaflord</title>
		<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/#comment-37501</link>
		<dc:creator>Leaflord</dc:creator>
		<pubDate>Tue, 13 Apr 2010 05:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=395#comment-37501</guid>
		<description>Mostly off-topic: I have coded only a little in C++; but I don&#039;t understand why people hate iostreams that badly. Because of an overloaded operator?? Really?? A lot of operators are abused. Hell, adding strings itself is flawed - it should imply that subtracting strings is also possible. A few languages fixed this by using an extra operator like &quot;..&quot; or &quot;~&quot;. Personally I find it a bit cleaner in several cases -- failure to return a value doesn&#039;t result in throwing an exception, for instance.</description>
		<content:encoded><![CDATA[<p>Mostly off-topic: I have coded only a little in C++; but I don&#8217;t understand why people hate iostreams that badly. Because of an overloaded operator?? Really?? A lot of operators are abused. Hell, adding strings itself is flawed &#8211; it should imply that subtracting strings is also possible. A few languages fixed this by using an extra operator like &#8220;..&#8221; or &#8220;~&#8221;. Personally I find it a bit cleaner in several cases &#8212; failure to return a value doesn&#8217;t result in throwing an exception, for instance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orbitz</title>
		<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/#comment-37059</link>
		<dc:creator>orbitz</dc:creator>
		<pubDate>Thu, 03 Dec 2009 14:45:30 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=395#comment-37059</guid>
		<description>Have you looked at Jocaml at all?  I&#039;m not sure it&#039;s maintained much but Join Calculus is pretty neat for concurrency.</description>
		<content:encoded><![CDATA[<p>Have you looked at Jocaml at all?  I&#8217;m not sure it&#8217;s maintained much but Join Calculus is pretty neat for concurrency.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/#comment-37058</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Thu, 03 Dec 2009 14:05:33 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=395#comment-37058</guid>
		<description>Sorry it wasn&#039;t a general bash at OCaml but at my frustrations with aspects of Scheme and finding that OCaml wasn&#039;t any better and probably worse because it lacked the benefit that Scheme had in s-expressions but with no compensatory features other than a few more libraries. 

I&#039;ll have a look at Haskell - Thanks.

I agree that parallelism in Java is dangerous as it is with all imperative languages and yet no Scheme implementation nor OCaml exploits the natural advantage of a functional language to provide native thread parallelism.</description>
		<content:encoded><![CDATA[<p>Sorry it wasn&#8217;t a general bash at OCaml but at my frustrations with aspects of Scheme and finding that OCaml wasn&#8217;t any better and probably worse because it lacked the benefit that Scheme had in s-expressions but with no compensatory features other than a few more libraries. </p>
<p>I&#8217;ll have a look at Haskell &#8211; Thanks.</p>
<p>I agree that parallelism in Java is dangerous as it is with all imperative languages and yet no Scheme implementation nor OCaml exploits the natural advantage of a functional language to provide native thread parallelism.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: orbitz</title>
		<link>http://enfranchisedmind.com/blog/posts/why-ocaml-sucks/#comment-37056</link>
		<dc:creator>orbitz</dc:creator>
		<pubDate>Thu, 03 Dec 2009 00:33:11 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=395#comment-37056</guid>
		<description>I have to disagree with some of your criticisms Andrew.

1) Some people find Scheme syntax ugly.  Beauty is in the eye of the beholder.  I quite like ML syntax.

2) Are you just referring to the lack of call/cc?  You don&#039;t need any special language features to do CPS.

3) I&#039;m unsure of what benefits function overloading based on type gives you.  If you watch Minksy&#039;s caml trading video you can see that is the exact kind of feature they do not want.  IMO, one of OCaml&#039;s major benefits is how explicit you need to be.  This is handy especially with type inferencing.  One of Minsky&#039;s major points is they don&#039;t want to have to root around the code to try to understand what the page of code they are looking at does.  This is important if you want to write very dependable code.  But are you criticizing OCaml here or functional languages in general?  Haskell has the ability to overload an operator based on type assuming it is part of a typeclass.

4) OCaml does suck at concurrency/parallelism.  But, again, are you arguing that functional languages in general have failed at this or just OCaml?  Erlang and Haskell have two very excellent concurrency models and both are functional.  Both languages make full use of some of the benefits the power of functional languages.  And let&#039;s not forget Clojure.  And IMO, Java may have had concurrency/parallelism for a decade but it is pretty atrocious, not much better than OCaml&#039;s.

I do agree that OCaml has its faults but I would argue there is a decent functional language out there, and her name is Haskell.</description>
		<content:encoded><![CDATA[<p>I have to disagree with some of your criticisms Andrew.</p>
<p>1) Some people find Scheme syntax ugly.  Beauty is in the eye of the beholder.  I quite like ML syntax.</p>
<p>2) Are you just referring to the lack of call/cc?  You don&#8217;t need any special language features to do CPS.</p>
<p>3) I&#8217;m unsure of what benefits function overloading based on type gives you.  If you watch Minksy&#8217;s caml trading video you can see that is the exact kind of feature they do not want.  IMO, one of OCaml&#8217;s major benefits is how explicit you need to be.  This is handy especially with type inferencing.  One of Minsky&#8217;s major points is they don&#8217;t want to have to root around the code to try to understand what the page of code they are looking at does.  This is important if you want to write very dependable code.  But are you criticizing OCaml here or functional languages in general?  Haskell has the ability to overload an operator based on type assuming it is part of a typeclass.</p>
<p>4) OCaml does suck at concurrency/parallelism.  But, again, are you arguing that functional languages in general have failed at this or just OCaml?  Erlang and Haskell have two very excellent concurrency models and both are functional.  Both languages make full use of some of the benefits the power of functional languages.  And let&#8217;s not forget Clojure.  And IMO, Java may have had concurrency/parallelism for a decade but it is pretty atrocious, not much better than OCaml&#8217;s.</p>
<p>I do agree that OCaml has its faults but I would argue there is a decent functional language out there, and her name is Haskell.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

