<?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: Unlearning Cocoa</title>
	<atom:link href="http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/feed" rel="self" type="application/rss+xml" />
	<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa</link>
	<description>The official blog of DayTime Software</description>
	<lastBuildDate>Sun, 07 Mar 2010 08:52:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Cocoa Nut &#187; Unlearning Cocoa</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-182</link>
		<dc:creator>Cocoa Nut &#187; Unlearning Cocoa</dc:creator>
		<pubDate>Mon, 11 Aug 2008 17:32:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-182</guid>
		<description>[...] the whole post here.   Share and [...]</description>
		<content:encoded><![CDATA[<p>[...] the whole post here.   Share and [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: warren</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-167</link>
		<dc:creator>warren</dc:creator>
		<pubDate>Thu, 10 Jul 2008 20:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-167</guid>
		<description>I agree with every positive point made about Cocoa.

The only point I am whole-heartedly disagreeing is this one:

&quot;.... It does not. &quot;

Every time I&#039;ve forced myself to unlearn a bunch of habits that served me well in one place, and relearn a different set of habits, I have been richly rewarded.

But &quot;no learning curve&quot;? Puh-leeze.


Warren</description>
		<content:encoded><![CDATA[<p>I agree with every positive point made about Cocoa.</p>
<p>The only point I am whole-heartedly disagreeing is this one:</p>
<p>&#8220;&#8230;. It does not. &#8221;</p>
<p>Every time I&#8217;ve forced myself to unlearn a bunch of habits that served me well in one place, and relearn a different set of habits, I have been richly rewarded.</p>
<p>But &#8220;no learning curve&#8221;? Puh-leeze.</p>
<p>Warren</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sanjay Samani</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-166</link>
		<dc:creator>Sanjay Samani</dc:creator>
		<pubDate>Thu, 10 Jul 2008 14:23:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-166</guid>
		<description>@warren, I didn&#039;t describe &quot;every other set of standards, rules and ideas for every other platform [as] inherently ‘worse’&quot;.  On the contrary, I have often argued that Apple could do much more to learn from other development tool chains.  

My point was that to learn Cocoa, you have to put aside your past experience and approach it fresh.  If you expect Cocoa to work in a particular way, you often find yourself struggling and frustrated.  When you do understand how something works, it is often easy, sensible, clean and self consistent, just different from what you might have expected.  Therefore, putting aside your past experience makes the Cocoa learning process easier.

I am not trying to argue whether one method is better than the other.

As to your specific points, I would suggest you read Kevin Hoffman&#039;s post linked at the top of the article, as he has experience with &quot;Windows, and multiple frameworks and multiple types of development&quot; and tackles many of the points you raise from a perspective that you may appreciate.</description>
		<content:encoded><![CDATA[<p>@warren, I didn&#8217;t describe &#8220;every other set of standards, rules and ideas for every other platform [as] inherently ‘worse’&#8221;.  On the contrary, I have often argued that Apple could do much more to learn from other development tool chains.  </p>
<p>My point was that to learn Cocoa, you have to put aside your past experience and approach it fresh.  If you expect Cocoa to work in a particular way, you often find yourself struggling and frustrated.  When you do understand how something works, it is often easy, sensible, clean and self consistent, just different from what you might have expected.  Therefore, putting aside your past experience makes the Cocoa learning process easier.</p>
<p>I am not trying to argue whether one method is better than the other.</p>
<p>As to your specific points, I would suggest you read Kevin Hoffman&#8217;s post linked at the top of the article, as he has experience with &#8220;Windows, and multiple frameworks and multiple types of development&#8221; and tackles many of the points you raise from a perspective that you may appreciate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rsfinn</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-165</link>
		<dc:creator>rsfinn</dc:creator>
		<pubDate>Thu, 10 Jul 2008 14:07:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-165</guid>
		<description>Describing Interface Builder as &quot;a separate dialog box editing tool that has extremely crappy code generation capabilities&quot; shows that you&#039;ve missed the point of Interface Builder.

&quot;You may love and understand and accept XCode+Cocoa+ObjectiveC, and thus you are completely biased&quot; -- but if you hate and fear it, you&#039;re completely unbiased and objective?  Nonsense.

&quot;Take someone who has ... zero Cocoa/NextStep experience, and there is indeed a very steep learning curve.&quot;  Compared to someone who &quot;understands&quot; Cocoa? Well, yes; that&#039;s very insightful of you.

&quot;Only a completely mac-centric snob would pretend that every other set of standards, rules and ideas for every other platform are inherently &#039;worse&#039;&quot; -- Paging Artie McStrawman...

Seriously, you make some good points, once the reader gets past the attitude.  For many people whose background is in other programming environments, Cocoa is indeed a challenge to learn.  For some, who have waited years to find an environment that more closely matches their own mental model of how programming should be, Cocoa is like a breath of fresh air -- and *those* people are going to thrive in the new environment, while the others struggle.</description>
		<content:encoded><![CDATA[<p>Describing Interface Builder as &#8220;a separate dialog box editing tool that has extremely crappy code generation capabilities&#8221; shows that you&#8217;ve missed the point of Interface Builder.</p>
<p>&#8220;You may love and understand and accept XCode+Cocoa+ObjectiveC, and thus you are completely biased&#8221; &#8212; but if you hate and fear it, you&#8217;re completely unbiased and objective?  Nonsense.</p>
<p>&#8220;Take someone who has &#8230; zero Cocoa/NextStep experience, and there is indeed a very steep learning curve.&#8221;  Compared to someone who &#8220;understands&#8221; Cocoa? Well, yes; that&#8217;s very insightful of you.</p>
<p>&#8220;Only a completely mac-centric snob would pretend that every other set of standards, rules and ideas for every other platform are inherently &#8216;worse&#8217;&#8221; &#8212; Paging Artie McStrawman&#8230;</p>
<p>Seriously, you make some good points, once the reader gets past the attitude.  For many people whose background is in other programming environments, Cocoa is indeed a challenge to learn.  For some, who have waited years to find an environment that more closely matches their own mental model of how programming should be, Cocoa is like a breath of fresh air &#8212; and *those* people are going to thrive in the new environment, while the others struggle.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: warren</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-164</link>
		<dc:creator>warren</dc:creator>
		<pubDate>Thu, 10 Jul 2008 13:45:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-164</guid>
		<description>I disagree completely.  I have more than Windows and Mac experience.  The Cocoa framework is well designed, but is a second generation framework, and the complete tool set that Apple provides, is not well integrated. You get a totally &quot;NON-RAD&quot; IDE, a separate dialog box editing tool that has extremely crappy code generation capabilities, and a really great set of documentation to a framework that you don&#039;t have the full source code to.    It&#039;s darn good that the framework comes with good documentation, because Apple has decided not to give Apple developers access to the source code to the framework that they rely on.

There are many tradeoffs, weaknesses, and downright bizarre subtleties in learning Cocoa, and it does indeed have a very steep learning curve. Add in reference counting (if you use it) and garbage collection (if you use it), and the absolutely maddening &quot;silent failures&quot; that come as part at parcel of the Objective C messaging system  -- you can send a message to a nil object, it does nothing, and does it quietly -- these are all part of what those of us with more than 2 platforms under our belt knowingly include in our estimation of the total learning curve of the platform.

You may love and understand and accept XCode+Cocoa+ObjectiveC, and thus you are completely biased.  Take someone who has Linux/Unix, Windows, and multiple frameworks and multiple types of development (from non visual up to rich client, and web experience) but zero Objective C, and zero Cocoa/NextStep experience, and there is indeed a very steep learning curve.

Learning and unlearning are two words for the exact same thing.   We could drop both words and say, and use an aquarium term here;  Moving a fish from a tank with one extreme water chemistry, to another tank with extreme water chemistry causes stress on the fish.  Moving from procedural to object oriented, from something rather more ad-hoc to something rather more like MVC, these all involve both learning and unlearning various habits. Only a completely mac-centric snob would pretend that every other set of standards, rules and ideas for every other platform are inherently &quot;worse&quot;, and that thus, learning Mac was easy, except for unlearning all the &quot;damage&quot; done to you by every other tool on the planet.   

W</description>
		<content:encoded><![CDATA[<p>I disagree completely.  I have more than Windows and Mac experience.  The Cocoa framework is well designed, but is a second generation framework, and the complete tool set that Apple provides, is not well integrated. You get a totally &#8220;NON-RAD&#8221; IDE, a separate dialog box editing tool that has extremely crappy code generation capabilities, and a really great set of documentation to a framework that you don&#8217;t have the full source code to.    It&#8217;s darn good that the framework comes with good documentation, because Apple has decided not to give Apple developers access to the source code to the framework that they rely on.</p>
<p>There are many tradeoffs, weaknesses, and downright bizarre subtleties in learning Cocoa, and it does indeed have a very steep learning curve. Add in reference counting (if you use it) and garbage collection (if you use it), and the absolutely maddening &#8220;silent failures&#8221; that come as part at parcel of the Objective C messaging system  &#8212; you can send a message to a nil object, it does nothing, and does it quietly &#8212; these are all part of what those of us with more than 2 platforms under our belt knowingly include in our estimation of the total learning curve of the platform.</p>
<p>You may love and understand and accept XCode+Cocoa+ObjectiveC, and thus you are completely biased.  Take someone who has Linux/Unix, Windows, and multiple frameworks and multiple types of development (from non visual up to rich client, and web experience) but zero Objective C, and zero Cocoa/NextStep experience, and there is indeed a very steep learning curve.</p>
<p>Learning and unlearning are two words for the exact same thing.   We could drop both words and say, and use an aquarium term here;  Moving a fish from a tank with one extreme water chemistry, to another tank with extreme water chemistry causes stress on the fish.  Moving from procedural to object oriented, from something rather more ad-hoc to something rather more like MVC, these all involve both learning and unlearning various habits. Only a completely mac-centric snob would pretend that every other set of standards, rules and ideas for every other platform are inherently &#8220;worse&#8221;, and that thus, learning Mac was easy, except for unlearning all the &#8220;damage&#8221; done to you by every other tool on the planet.   </p>
<p>W</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-163</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Thu, 10 Jul 2008 10:08:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-163</guid>
		<description>&quot;It has a steep un-learning curve&quot; - I&#039;d definitely agree that this is true.  Unfortunately, a lot of people seem unwilling to unlearn what they know, and end up fighting against the frameworks (and, indeed, the language) instead of embracing them.  Of course, they end up hating the system as a result (and thinking those of us who like it to be crazy).

For some, I think the reason that they don&#039;t want to unlearn what they know is that they actually do realise that, if they do this, they&#039;ll have to spend even more time learning the &#039;new way&#039;.  It&#039;s much easier just to dismiss the &#039;new way&#039; as crazy and go back to what you know.</description>
		<content:encoded><![CDATA[<p>&#8220;It has a steep un-learning curve&#8221; &#8211; I&#8217;d definitely agree that this is true.  Unfortunately, a lot of people seem unwilling to unlearn what they know, and end up fighting against the frameworks (and, indeed, the language) instead of embracing them.  Of course, they end up hating the system as a result (and thinking those of us who like it to be crazy).</p>
<p>For some, I think the reason that they don&#8217;t want to unlearn what they know is that they actually do realise that, if they do this, they&#8217;ll have to spend even more time learning the &#8216;new way&#8217;.  It&#8217;s much easier just to dismiss the &#8216;new way&#8217; as crazy and go back to what you know.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://www.daytimesoftware.com/blog/2008/07/unlearning-cocoa/comment-page-1#comment-162</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Thu, 10 Jul 2008 02:45:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.daytimesoftware.com/blog/?p=87#comment-162</guid>
		<description>&quot;The frameworks are heavily designed for sub-classing to create your own behaviour, rather than having lots of settings to tweak behaviour.&quot;

I would disagree and say that almost all tweaking is done using delegates, not subclassing.  The exception being custom drawing buy subclassing NSView</description>
		<content:encoded><![CDATA[<p>&#8220;The frameworks are heavily designed for sub-classing to create your own behaviour, rather than having lots of settings to tweak behaviour.&#8221;</p>
<p>I would disagree and say that almost all tweaking is done using delegates, not subclassing.  The exception being custom drawing buy subclassing NSView</p>
]]></content:encoded>
	</item>
</channel>
</rss>
