<?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: Basic Blocks</title>
	<atom:link href="http://www.friday.com/bbum/2009/08/29/basic-blocks/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/</link>
	<description>...so google can index my head.</description>
	<lastBuildDate>Thu, 02 Sep 2010 06:25:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Grand Central Dispatch and Blocks Links. &#124; Tyler Weir</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191625</link>
		<dc:creator>Grand Central Dispatch and Blocks Links. &#124; Tyler Weir</dc:creator>
		<pubDate>Thu, 17 Sep 2009 14:47:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191625</guid>
		<description>[...] http://cocoasamurai.blogspot.com/2009/09/guide-to-blocks-grand-central-dispatch.html http://www.friday.com/bbum/2009/08/29/basic-blocks/ http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://cocoasamurai.blogspot.com/2009/09/guide-to-blocks-grand-central-dispatch.html" rel="nofollow">http://cocoasamurai.blogspot.com/2009/09/guide-to-blocks-grand-central-dispatch.html</a> <a href="http://www.friday.com/bbum/2009/08/29/basic-blocks/" rel="nofollow">http://www.friday.com/bbum/2009/08/29/basic-blocks/</a> <a href="http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/" >http://www.friday.com/bbum/2009/08/29/blocks-tips-tricks/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Mastenbrook</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191497</link>
		<dc:creator>Brian Mastenbrook</dc:creator>
		<pubDate>Wed, 09 Sep 2009 02:29:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191497</guid>
		<description>Hey, I actually said that it was probably the best choice in context too! :-) I was just annoyed by the concept that Python has so dirtied the name of `lambda&#039; that it couldn&#039;t be used.</description>
		<content:encoded><![CDATA[<p>Hey, I actually said that it was probably the best choice in context too! <img src='http://www.friday.com/bbum/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  I was just annoyed by the concept that Python has so dirtied the name of `lambda&#8217; that it couldn&#8217;t be used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191496</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Wed, 09 Sep 2009 02:16:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191496</guid>
		<description>(that was, btw, a large pile of &quot;don&#039;t take this seriously&quot;. :) )</description>
		<content:encoded><![CDATA[<p>(that was, btw, a large pile of &#8220;don&#8217;t take this seriously&#8221;. <img src='http://www.friday.com/bbum/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191495</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Wed, 09 Sep 2009 02:16:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191495</guid>
		<description>Heh.  No worries.   Certainly, whatever word was chosen, someone would get frothy about it.   That your post has &quot;I&#039;m not saying that &#039;block&#039; is an indefensible name&quot; is certainly a point in favor of Blocks.

The reality, unfortunately, is that in the modern, commercial, software development environment, Lisp and SmallTalk are pretty much irrelevant.

The buzz goes to Java&#039;s, Ruby&#039;s, and -- to a lesser extent these days -- Python&#039;s oft [sometimes poor] wheel reinvention, with C# rising and the various functional languages off in a corner making a lot of noise banging their immutable sticks together.

Of course, many of us Objective-C developers froth at the mouth when the Java kids claim that Obj-C is just a weirdass derivative of Java when the exact opposite is true!  Then the SmallTalkers crawl out of the wood work and ask us to pipe down, get off their damned lawn, and come back when Objective-C can redefine true to false.

Meanwhile, the Lisp and SmallTalkers all rage about Been There, Done That, Wake me when you have something new.  

Of course, if you want to go all hippie on it, &lt;i&gt;[Lisp and the] Art of the Metaobject Protocol&lt;/i&gt; must be mentioned.</description>
		<content:encoded><![CDATA[<p>Heh.  No worries.   Certainly, whatever word was chosen, someone would get frothy about it.   That your post has &#8220;I&#8217;m not saying that &#8216;block&#8217; is an indefensible name&#8221; is certainly a point in favor of Blocks.</p>
<p>The reality, unfortunately, is that in the modern, commercial, software development environment, Lisp and SmallTalk are pretty much irrelevant.</p>
<p>The buzz goes to Java&#8217;s, Ruby&#8217;s, and &#8212; to a lesser extent these days &#8212; Python&#8217;s oft [sometimes poor] wheel reinvention, with C# rising and the various functional languages off in a corner making a lot of noise banging their immutable sticks together.</p>
<p>Of course, many of us Objective-C developers froth at the mouth when the Java kids claim that Obj-C is just a weirdass derivative of Java when the exact opposite is true!  Then the SmallTalkers crawl out of the wood work and ask us to pipe down, get off their damned lawn, and come back when Objective-C can redefine true to false.</p>
<p>Meanwhile, the Lisp and SmallTalkers all rage about Been There, Done That, Wake me when you have something new.  </p>
<p>Of course, if you want to go all hippie on it, <i>[Lisp and the] Art of the Metaobject Protocol</i> must be mentioned.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Mastenbrook</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191494</link>
		<dc:creator>Brian Mastenbrook</dc:creator>
		<pubDate>Wed, 09 Sep 2009 01:32:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191494</guid>
		<description>My typo in the last comment (&quot;limit&#039;s&quot; instead of &quot;limits&quot;) also induces Hulk rage in me. Sorry.</description>
		<content:encoded><![CDATA[<p>My typo in the last comment (&#8220;limit&#8217;s&#8221; instead of &#8220;limits&#8221;) also induces Hulk rage in me. Sorry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Mastenbrook</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191493</link>
		<dc:creator>Brian Mastenbrook</dc:creator>
		<pubDate>Wed, 09 Sep 2009 01:30:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191493</guid>
		<description>&quot;Thus, the label lambda and closure were rejected because they seemed to limit people’s perception of what the feature was capable of or how it could be appropriately used.&quot;

Lambda &lt;i&gt;limit&#039;s&lt;/i&gt; people&#039;s perception? &quot;Lambda: The Ultimate &quot; - that lambda? If Python&#039;s totally broken closures are to blame for this, GvR ought to have actually removed them and spared us all the trouble.

&quot;Blocks didn’t seem to carry quite so much comp-sci preconceived baggage.&quot;

I guess being a Lisper is a bit like being a groundhog. Every year, you stick your head out, sniff around, check the blogs, and figure we&#039;re all in for another year of ignorance and stupidity. Wake me up again next year and I&#039;ll tell you whether or not we&#039;ve caught up with where programming language research was in 1980. Probably not, as long as comp-sci is &quot;preconceived baggage&quot;.

I&#039;m not saying that &quot;block&quot; is an indefensible choice of name - in fact it was probably the best choice in the specific context of Objective C given its Smalltalk heritage. But this line of argument induces Hulk rage in me. The same circular we-can&#039;t-do-anything-too-academicish reasoning is why we&#039;re all circling the drain of the &#039;70s over and over again.

(Actually that&#039;s not quite fair: Microsoft seems to be dragging everyone headlong into the 1990s with F#. It&#039;s really Apple who&#039;s behind the times here.)</description>
		<content:encoded><![CDATA[<p>&#8220;Thus, the label lambda and closure were rejected because they seemed to limit people’s perception of what the feature was capable of or how it could be appropriately used.&#8221;</p>
<p>Lambda <i>limit&#8217;s</i> people&#8217;s perception? &#8220;Lambda: The Ultimate &#8221; &#8211; that lambda? If Python&#8217;s totally broken closures are to blame for this, GvR ought to have actually removed them and spared us all the trouble.</p>
<p>&#8220;Blocks didn’t seem to carry quite so much comp-sci preconceived baggage.&#8221;</p>
<p>I guess being a Lisper is a bit like being a groundhog. Every year, you stick your head out, sniff around, check the blogs, and figure we&#8217;re all in for another year of ignorance and stupidity. Wake me up again next year and I&#8217;ll tell you whether or not we&#8217;ve caught up with where programming language research was in 1980. Probably not, as long as comp-sci is &#8220;preconceived baggage&#8221;.</p>
<p>I&#8217;m not saying that &#8220;block&#8221; is an indefensible choice of name &#8211; in fact it was probably the best choice in the specific context of Objective C given its Smalltalk heritage. But this line of argument induces Hulk rage in me. The same circular we-can&#8217;t-do-anything-too-academicish reasoning is why we&#8217;re all circling the drain of the &#8217;70s over and over again.</p>
<p>(Actually that&#8217;s not quite fair: Microsoft seems to be dragging everyone headlong into the 1990s with F#. It&#8217;s really Apple who&#8217;s behind the times here.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191455</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Thu, 03 Sep 2009 17:01:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191455</guid>
		<description>Lambdas, closures, and Blocks are all semi-synonymous.  They do all represent a chunk of code that can capture some state and can be passed as a form of data.

Lambdas are most often associated with capturing an expression, often to be used as a filter on a collection.   In Python, a lambda is truly one single simple expression.  The proposed lambdas in C++ are effectively a compile time only expression oriented feature.

Blocks are designed to capture both simple expressions for the purpose of collection filtration, callback bindings, etc... as many of the APIs in Snow Leopard demonstrate.  However, they are also designed to capture full units of work in the form of entire chunks of code.  That is, a Block is often a chunk of code that one might normally find as the implementation of a method or a function.

Thus, the label lambda and closure were rejected because they seemed to limit people&#039;s perception of what the feature was capable of or how it could be appropriately used.  Blocks didn&#039;t seem to carry quite so much comp-sci preconceived baggage. 

Blocks also implies &quot;building blocks&quot; and it is quickly becoming the case that many modern Cocoa applications are composed of a bunch of Blocks that do work concurrently via GCD.</description>
		<content:encoded><![CDATA[<p>Lambdas, closures, and Blocks are all semi-synonymous.  They do all represent a chunk of code that can capture some state and can be passed as a form of data.</p>
<p>Lambdas are most often associated with capturing an expression, often to be used as a filter on a collection.   In Python, a lambda is truly one single simple expression.  The proposed lambdas in C++ are effectively a compile time only expression oriented feature.</p>
<p>Blocks are designed to capture both simple expressions for the purpose of collection filtration, callback bindings, etc&#8230; as many of the APIs in Snow Leopard demonstrate.  However, they are also designed to capture full units of work in the form of entire chunks of code.  That is, a Block is often a chunk of code that one might normally find as the implementation of a method or a function.</p>
<p>Thus, the label lambda and closure were rejected because they seemed to limit people&#8217;s perception of what the feature was capable of or how it could be appropriately used.  Blocks didn&#8217;t seem to carry quite so much comp-sci preconceived baggage. </p>
<p>Blocks also implies &#8220;building blocks&#8221; and it is quickly becoming the case that many modern Cocoa applications are composed of a bunch of Blocks that do work concurrently via GCD.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob Peterson</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191451</link>
		<dc:creator>Bob Peterson</dc:creator>
		<pubDate>Thu, 03 Sep 2009 03:53:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191451</guid>
		<description>This looks a lot like C# lambda expressions (well, like any lambda expression). Are there any differences that might explain why they didn&#039;t just call it that instead of overloading the word &quot;block&quot;?</description>
		<content:encoded><![CDATA[<p>This looks a lot like C# lambda expressions (well, like any lambda expression). Are there any differences that might explain why they didn&#8217;t just call it that instead of overloading the word &#8220;block&#8221;?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bbum</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191446</link>
		<dc:creator>bbum</dc:creator>
		<pubDate>Wed, 02 Sep 2009 02:04:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191446</guid>
		<description>Blocks aren&#039;t officially supported anywhere but Snow Leopard.  Beyond a Blocks compatible compiler, you also need the Blocks runtime.  It is tiny and open source.

Folks have ported it to Leopard (Tiger shouldn&#039;t be hard) and the iPhone.

See: http://www.plausiblelabs.com/blog/?p=8</description>
		<content:encoded><![CDATA[<p>Blocks aren&#8217;t officially supported anywhere but Snow Leopard.  Beyond a Blocks compatible compiler, you also need the Blocks runtime.  It is tiny and open source.</p>
<p>Folks have ported it to Leopard (Tiger shouldn&#8217;t be hard) and the iPhone.</p>
<p>See: <a href="http://www.plausiblelabs.com/blog/?p=8" >http://www.plausiblelabs.com/blog/?p=8</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://www.friday.com/bbum/2009/08/29/basic-blocks/comment-page-1/#comment-191445</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Wed, 02 Sep 2009 01:45:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.friday.com/bbum/?p=1501#comment-191445</guid>
		<description>Sorry, but after looking through several docs and posts like this, I can&#039;t find the answer to the most important question about blocks for me: Will code I write using blocks, compiled and built with Xcode 3.2, execute on 10.5 (and 10.4)?  While discussions about blocks are centered around 10.6&#039;s release, nothing seems to say that some special part of 10.6 is required for blocks to execute when compiled (unlike GC in 10.5, where it was clearly stated that 10.4 lacked the runtime support). Nothing I could find in the canonical documentation nor original posts about blocks. Unfortunately, I don&#039;t get to choose what OS versions my work must support.</description>
		<content:encoded><![CDATA[<p>Sorry, but after looking through several docs and posts like this, I can&#8217;t find the answer to the most important question about blocks for me: Will code I write using blocks, compiled and built with Xcode 3.2, execute on 10.5 (and 10.4)?  While discussions about blocks are centered around 10.6&#8242;s release, nothing seems to say that some special part of 10.6 is required for blocks to execute when compiled (unlike GC in 10.5, where it was clearly stated that 10.4 lacked the runtime support). Nothing I could find in the canonical documentation nor original posts about blocks. Unfortunately, I don&#8217;t get to choose what OS versions my work must support.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
