<?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"
	>
<channel>
	<title>Comments on: Clojure: A Lisp Worth Talking About</title>
	<atom:link href="http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about/feed" rel="self" type="application/rss+xml" />
	<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about</link>
	<description>From programming to everything else</description>
	<pubDate>Tue, 07 Oct 2008 05:39:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Digital Digressions by Stuart Sierra &#187; Blog Archive &#187; More Clojure Love</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-30204</link>
		<dc:creator>Digital Digressions by Stuart Sierra &#187; Blog Archive &#187; More Clojure Love</dc:creator>
		<pubDate>Tue, 10 Jun 2008 20:45:22 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-30204</guid>
		<description>[...] I didn&#8217;t make it clear in my first post about Clojure, I like this language.  Here&#8217;s some more reasons [...]</description>
		<content:encoded><![CDATA[<p>[...] I didn&#8217;t make it clear in my first post about Clojure, I like this language.  Here&#8217;s some more reasons [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mercurial &#187; Blog Archive &#187; Clojure, a new Lisp is born</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21687</link>
		<dc:creator>Mercurial &#187; Blog Archive &#187; Clojure, a new Lisp is born</dc:creator>
		<pubDate>Tue, 11 Dec 2007 17:09:34 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21687</guid>
		<description>[...] A new Lisp WTA. A link to the talk presenting Clojure. The website for Clojure. [...]</description>
		<content:encoded><![CDATA[<p>[...] A new Lisp WTA. A link to the talk presenting Clojure. The website for Clojure. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rich Hickey</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21495</link>
		<dc:creator>Rich Hickey</dc:creator>
		<pubDate>Thu, 06 Dec 2007 14:59:04 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21495</guid>
		<description>md, it's a matter of right tool for the job. STM is great for some problems. Just because you have N cores doesn't mean you have N processes contending for the exact same data. Many multithreaded apps have occasional interaction with small, but potentially overlapping sets of shared data. STM makes doing the right thing easy and scalable. Doing a real transaction, i.e. read x from here, modify it, put it there without it being in both places, or no place, or changed by anything else, is very cumbersome (impossible?) in a pure asynchronous message passing system (cf Mnesia, which does plenty of locking: http://www.erlang.org/doc/apps/mnesia/Mnesia_chap4.html#4). Of course there are also merits to asynchronous concurrency systems and Clojure has that too, in its Agents (http://clojure.sourceforge.net/reference/agents.html), a slightly different take on actors (Erlang's model). 

Erlang is very cool and Clojure is not designed to compete with it, but saying there is only one way, or presuming that a specific method will not work for an unspecified class of problems, is unproductive. Sorry you don't like the JVM, but I find it pretty impressive, even if not suitable for all problems.</description>
		<content:encoded><![CDATA[<p>md, it&#8217;s a matter of right tool for the job. STM is great for some problems. Just because you have N cores doesn&#8217;t mean you have N processes contending for the exact same data. Many multithreaded apps have occasional interaction with small, but potentially overlapping sets of shared data. STM makes doing the right thing easy and scalable. Doing a real transaction, i.e. read x from here, modify it, put it there without it being in both places, or no place, or changed by anything else, is very cumbersome (impossible?) in a pure asynchronous message passing system (cf Mnesia, which does plenty of locking: <a href="http://www.erlang.org/doc/apps/mnesia/Mnesia_chap4.html#4" rel="nofollow">http://www.erlang.org/doc/apps/mnesia/Mnesia_chap4.html#4</a>). Of course there are also merits to asynchronous concurrency systems and Clojure has that too, in its Agents (http://clojure.sourceforge.net/reference/agents.html), a slightly different take on actors (Erlang&#8217;s model). </p>
<p>Erlang is very cool and Clojure is not designed to compete with it, but saying there is only one way, or presuming that a specific method will not work for an unspecified class of problems, is unproductive. Sorry you don&#8217;t like the JVM, but I find it pretty impressive, even if not suitable for all problems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sp3w</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21377</link>
		<dc:creator>Sp3w</dc:creator>
		<pubDate>Tue, 04 Dec 2007 16:34:55 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21377</guid>
		<description>[...] On Clojure I haven’t been this excited about Lisp since Peter Seibel came to talk about Practical Common Lisp. [...]</description>
		<content:encoded><![CDATA[<p>[...] On Clojure I haven’t been this excited about Lisp since Peter Seibel came to talk about Practical Common Lisp. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike McNally</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21346</link>
		<dc:creator>Mike McNally</dc:creator>
		<pubDate>Mon, 03 Dec 2007 23:35:13 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21346</guid>
		<description>Well md, the thing is that there are projects out there that are doomed to be Java projects. In such an environment, the availability of a sophisticated higher-level language like Clojure is a really nice thing. I suspect that the large Java OLTP application I'm most familiar with isn't much different than others like it, and I can imagine a good deal of the Java code at certain layers being replaced by Clojure.

I don't mean to suggest that Clojure should not be a potential choice as a primary implementation language. I really don't feel I can offer a respectable opinion on that. All I can say is that from what I've seen, Clojure has a lot going for it compared to Javascript (Rhino), Groovy, or JRuby.</description>
		<content:encoded><![CDATA[<p>Well md, the thing is that there are projects out there that are doomed to be Java projects. In such an environment, the availability of a sophisticated higher-level language like Clojure is a really nice thing. I suspect that the large Java OLTP application I&#8217;m most familiar with isn&#8217;t much different than others like it, and I can imagine a good deal of the Java code at certain layers being replaced by Clojure.</p>
<p>I don&#8217;t mean to suggest that Clojure should not be a potential choice as a primary implementation language. I really don&#8217;t feel I can offer a respectable opinion on that. All I can say is that from what I&#8217;ve seen, Clojure has a lot going for it compared to Javascript (Rhino), Groovy, or JRuby.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: md</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21345</link>
		<dc:creator>md</dc:creator>
		<pubDate>Mon, 03 Dec 2007 22:59:45 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21345</guid>
		<description>I always welcome new Lisps, and Clojure seems to have some nice properties, however there are couple showstoppers:
- while you may think java vm is a great think, it's not. when you do some java threaded server software, you will find out that java VM is quite unpredictable, sometimes giving delays for dozens of milliseconds in the executing context of the thread for no reason
- Clojure's concurrency model ala 'transactions' is broken. Might work fine on 2-4 cores CPU. When we will have CPUs having 8 and more cores, centralized approach to concurrency like locks, transactions, 'lockless' data structures (where your lock is 'lock' instruction) will break. The only right way to model concurrency is the way Erlang does it. And forget about that using crappy java vm</description>
		<content:encoded><![CDATA[<p>I always welcome new Lisps, and Clojure seems to have some nice properties, however there are couple showstoppers:<br />
- while you may think java vm is a great think, it&#8217;s not. when you do some java threaded server software, you will find out that java VM is quite unpredictable, sometimes giving delays for dozens of milliseconds in the executing context of the thread for no reason<br />
- Clojure&#8217;s concurrency model ala &#8216;transactions&#8217; is broken. Might work fine on 2-4 cores CPU. When we will have CPUs having 8 and more cores, centralized approach to concurrency like locks, transactions, &#8216;lockless&#8217; data structures (where your lock is &#8216;lock&#8217; instruction) will break. The only right way to model concurrency is the way Erlang does it. And forget about that using crappy java vm</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: unClog &#187; Clojure, Clojure, we want Clojure</title>
		<link>http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21289</link>
		<dc:creator>unClog &#187; Clojure, Clojure, we want Clojure</dc:creator>
		<pubDate>Sun, 02 Dec 2007 20:16:58 +0000</pubDate>
		<guid isPermaLink="false">http://stuartsierra.com/2007/11/15/clojure-a-lisp-worth-talking-about#comment-21289</guid>
		<description>[...] Sierra heard the talk in person and has a great overview on his [...]</description>
		<content:encoded><![CDATA[<p>[...] Sierra heard the talk in person and has a great overview on his [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
