<?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:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Apple&#8217;s Take on Application Programming Environments?</title>
	<atom:link href="http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/feed/" rel="self" type="application/rss+xml" />
	<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/</link>
	<description>Thoughts on Dynamic Languages, Web Apps, and more</description>
	<lastBuildDate>Wed, 04 Nov 2009 18:42:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: macFanDave</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-179</link>
		<dc:creator>macFanDave</dc:creator>
		<pubDate>Tue, 20 Feb 2007 17:48:24 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-179</guid>
		<description>Peter Cooper: I like your turn of a phrase even though I&#039;ll bet it was unintentional.  You characterize Cocoa bindings as &quot;reasonably unstable.&quot;

What would it take for you to consider them &quot;UNreasonably unstable?&quot;  It also sounds like a state of mind.

James:

I love Objective-C and the square brackets.  I&#039;m sure someone may be able to prove this definitively, but for every pair of square brackets you use in ObjC, you would have had a pair of parentheses in C, C++, C# and Java.

One thing I really like about ObjC is the labels on the methods. For example,


+ (NSColor *)colorWithCalibratedRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha


When using Xcode, you will be guided through each labeled argument, where you can confidently fill in each one correctly.  This is clearly superior to the standard argument list  of the C/C++/C#/Java function or method.  While you can argue that the author of a method/function MAY supply descriptive dummy parameters, you are at the mercy of the suppliers of frameworks whether you have to refer to documentation excessively.  The practice in the Cocoa world has been well-established as excellent.  It is not REQUIRED to label ObjC methods, but I have yet to see an example of one that is not.

&lt;i&gt;[Andrew says] You raise some good points. I don&#039;t agree completely about the argument passing stuff - I didn&#039;t mention it in my original post, but the use of C casting operators to declare types is another one of those annoying cognitive shifts I dislike.&lt;/i&gt;
</description>
		<content:encoded><![CDATA[<p>Peter Cooper: I like your turn of a phrase even though I&#8217;ll bet it was unintentional.  You characterize Cocoa bindings as &#8220;reasonably unstable.&#8221;</p>
<p>What would it take for you to consider them &#8220;UNreasonably unstable?&#8221;  It also sounds like a state of mind.</p>
<p>James:</p>
<p>I love Objective-C and the square brackets.  I&#8217;m sure someone may be able to prove this definitively, but for every pair of square brackets you use in ObjC, you would have had a pair of parentheses in C, C++, C# and Java.</p>
<p>One thing I really like about ObjC is the labels on the methods. For example,</p>
<p>+ (NSColor *)colorWithCalibratedRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha</p>
<p>When using Xcode, you will be guided through each labeled argument, where you can confidently fill in each one correctly.  This is clearly superior to the standard argument list  of the C/C++/C#/Java function or method.  While you can argue that the author of a method/function MAY supply descriptive dummy parameters, you are at the mercy of the suppliers of frameworks whether you have to refer to documentation excessively.  The practice in the Cocoa world has been well-established as excellent.  It is not REQUIRED to label ObjC methods, but I have yet to see an example of one that is not.</p>
<p><i>[Andrew says] You raise some good points. I don&#8217;t agree completely about the argument passing stuff &#8211; I didn&#8217;t mention it in my original post, but the use of C casting operators to declare types is another one of those annoying cognitive shifts I dislike.</i></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sam</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-178</link>
		<dc:creator>Sam</dc:creator>
		<pubDate>Mon, 19 Feb 2007 04:03:21 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-178</guid>
		<description>I&#039;m with you.  I seriously hope Apple is putting substantial resources into a post-ObjC world, because otherwise they&#039;re going to fall further and further out of graces with developers outside the core NeXTies.  Anyway, I&#039;m in the same boat-- the last software I wrote for the Mac (besides Java stuff that just runs) was in Metrowerks&#039; PowerPlant.  I&#039;ll probably re-adopt the platform once they&#039;ve moved beyond ObjectiveC.

Apple embracing and extending C# and Mono would be pretty nifty and would go a LONG way towards bringing more developers to the platform, and probably dramatically increase the quality of the tools at the same time.</description>
		<content:encoded><![CDATA[<p>I&#8217;m with you.  I seriously hope Apple is putting substantial resources into a post-ObjC world, because otherwise they&#8217;re going to fall further and further out of graces with developers outside the core NeXTies.  Anyway, I&#8217;m in the same boat&#8211; the last software I wrote for the Mac (besides Java stuff that just runs) was in Metrowerks&#8217; PowerPlant.  I&#8217;ll probably re-adopt the platform once they&#8217;ve moved beyond ObjectiveC.</p>
<p>Apple embracing and extending C# and Mono would be pretty nifty and would go a LONG way towards bringing more developers to the platform, and probably dramatically increase the quality of the tools at the same time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rosyna</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-177</link>
		<dc:creator>Rosyna</dc:creator>
		<pubDate>Mon, 19 Feb 2007 02:52:59 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-177</guid>
		<description>&lt;i&gt;On fat binaries: simply that the idea of having to compile &amp; link 2 or 3 times (which is the story today) sucks as a developer. Dong it 4 times, or 5 times, or whatever is even worse. Then there is the problem of increased application size - Flash Player for Mac is now twice as big a download as it used to be.&lt;/i&gt;

This isn&#039;t an inherent problem in fat binaries. It&#039;s an issue with the suckiness of Apple&#039;s implementation of ld. If you&#039;re compiling things for windows x64, you&#039;re still going to have to compile and link more than once. 

The complaints you state are common with any 32-bit/64-bit hybrid system without mentioning the benefits. Such as smaller overall file sizes (localizations and resources like images don&#039;t have to be duplicated) and a much, much better user experience like not having to worry if a binary is for one architecture or another.

&lt;i&gt;As for Shipley&#039;s code, I chose it because it had the mixture of C and Smalltalk-isms I think are typical in Objective C, not because it was or wasn&#039;t a sterling example of best practices. &lt;/i&gt;

The example shown is also an evil hack. His example isn&#039;t typical because most people using both would never dereference pointers like that. If you remove the dereferences and add error checking, it&#039;d be far more typical.</description>
		<content:encoded><![CDATA[<p><i>On fat binaries: simply that the idea of having to compile &amp; link 2 or 3 times (which is the story today) sucks as a developer. Dong it 4 times, or 5 times, or whatever is even worse. Then there is the problem of increased application size &#8211; Flash Player for Mac is now twice as big a download as it used to be.</i></p>
<p>This isn&#8217;t an inherent problem in fat binaries. It&#8217;s an issue with the suckiness of Apple&#8217;s implementation of ld. If you&#8217;re compiling things for windows x64, you&#8217;re still going to have to compile and link more than once. </p>
<p>The complaints you state are common with any 32-bit/64-bit hybrid system without mentioning the benefits. Such as smaller overall file sizes (localizations and resources like images don&#8217;t have to be duplicated) and a much, much better user experience like not having to worry if a binary is for one architecture or another.</p>
<p><i>As for Shipley&#8217;s code, I chose it because it had the mixture of C and Smalltalk-isms I think are typical in Objective C, not because it was or wasn&#8217;t a sterling example of best practices. </i></p>
<p>The example shown is also an evil hack. His example isn&#8217;t typical because most people using both would never dereference pointers like that. If you remove the dereferences and add error checking, it&#8217;d be far more typical.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Cooper</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-176</link>
		<dc:creator>Peter Cooper</dc:creator>
		<pubDate>Sat, 17 Feb 2007 17:36:59 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-176</guid>
		<description>Right on! I last used to develop desktop applications about ten years ago, on Windows, when the technology was a lot different to today. Since then I have been a 100% server-side UNIX-based developer and have moved to OS X. 

I had a reason to try some client app development again last year and while I appreciated Objective C and Cocoa, it just felt like stepping back in time compared to the advances in server-side development.

Sadly, the Cocoa bindings for most scripting languages are incomplete and reasonably unstable (I&#039;d contribute, but it&#039;s not my field). I&#039;ve also looked at Microsoft&#039;s situation, and had a play with things like SharpDevelop, Delphi and a trial of MSVS 2005 and developing GUI apps on Windows still seems streets ahead of OS X in terms of choice.

I guess if you can get &#039;into&#039; Objective C then OS X gives you the best of every world.. but if you want language choice, it&#039;s poor. I&#039;d rather knock up a Web app to run locally!</description>
		<content:encoded><![CDATA[<p>Right on! I last used to develop desktop applications about ten years ago, on Windows, when the technology was a lot different to today. Since then I have been a 100% server-side UNIX-based developer and have moved to OS X. </p>
<p>I had a reason to try some client app development again last year and while I appreciated Objective C and Cocoa, it just felt like stepping back in time compared to the advances in server-side development.</p>
<p>Sadly, the Cocoa bindings for most scripting languages are incomplete and reasonably unstable (I&#8217;d contribute, but it&#8217;s not my field). I&#8217;ve also looked at Microsoft&#8217;s situation, and had a play with things like SharpDevelop, Delphi and a trial of MSVS 2005 and developing GUI apps on Windows still seems streets ahead of OS X in terms of choice.</p>
<p>I guess if you can get &#8216;into&#8217; Objective C then OS X gives you the best of every world.. but if you want language choice, it&#8217;s poor. I&#8217;d rather knock up a Web app to run locally!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: James</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-175</link>
		<dc:creator>James</dc:creator>
		<pubDate>Sat, 17 Feb 2007 10:08:34 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-175</guid>
		<description>Intersting piece. I particularly agree with your thoughts on Objective-C.

When I first came across it I loved the dynamism for constructing user interfaces. It was the first time I&#039;d come across a real seperation between UI definition and code (nib and objective-c file) in a desktop environment. It felt leaguees ahead than Microsofts code generation approach (which its nice to see them moving away from with xaml).

Two things I dislike about the current Objective-C:

1) Memory management. The reference counting method is little better than C style new and free. And it suffers from the same amiguity in terms of who actually is responsible for doing things like incrementing the ref count etc. Sure there&#039;s a convention but convention goes wrong.

2) The messaging syntax. Maybe I&#039;m being picky but I really find all the square brackets an eyesore.

Its intersting what you say about Microsofts approach being simpler. In some ways it is but it feels to me like C# is the first citizen of .net and all the others are just kinda along for the ride.

&lt;i&gt;[Andrew says] I completely agree that C# is the first citizen of .Net, but that doesn&#039;t really make Microsoft&#039;s strategy any more complicated imho.&lt;/i&gt;</description>
		<content:encoded><![CDATA[<p>Intersting piece. I particularly agree with your thoughts on Objective-C.</p>
<p>When I first came across it I loved the dynamism for constructing user interfaces. It was the first time I&#8217;d come across a real seperation between UI definition and code (nib and objective-c file) in a desktop environment. It felt leaguees ahead than Microsofts code generation approach (which its nice to see them moving away from with xaml).</p>
<p>Two things I dislike about the current Objective-C:</p>
<p>1) Memory management. The reference counting method is little better than C style new and free. And it suffers from the same amiguity in terms of who actually is responsible for doing things like incrementing the ref count etc. Sure there&#8217;s a convention but convention goes wrong.</p>
<p>2) The messaging syntax. Maybe I&#8217;m being picky but I really find all the square brackets an eyesore.</p>
<p>Its intersting what you say about Microsofts approach being simpler. In some ways it is but it feels to me like C# is the first citizen of .net and all the others are just kinda along for the ride.</p>
<p><i>[Andrew says] I completely agree that C# is the first citizen of .Net, but that doesn&#8217;t really make Microsoft&#8217;s strategy any more complicated imho.</i></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rosyna</title>
		<link>http://shebanator.com/2007/02/16/apples-take-on-application-programming-environments/comment-page-1/#comment-174</link>
		<dc:creator>Rosyna</dc:creator>
		<pubDate>Sat, 17 Feb 2007 04:45:02 +0000</pubDate>
		<guid isPermaLink="false">http://shebanation.wordpress.com/2007/02/16/apples-take-on-application-programming-environments/#comment-174</guid>
		<description>I don&#039;t think shipley&#039;s code should be quoted in any instance.  Especially when it has a severe lack of error checking and dereferences items for no reason.

Secondly, how are fat binaries not scalable? IIRC, on tiger 31 separate archs were supported (but that was a limitation of the devtools generating them, not the OS reading them).

&lt;i&gt;[Andrew says] On fat binaries: simply that the idea of having to compile &amp; link 2 or 3 times (which is the story today) sucks as a developer. Dong it 4 times, or 5 times, or whatever is even worse. Then there is the problem of increased application size - Flash Player for Mac is now twice as big a download as it used to be.&lt;/i&gt;

&lt;i&gt;As for Shipley&#039;s code, I chose it because it had the mixture of C and Smalltalk-isms I think are typical in Objective C, not because it was or wasn&#039;t a sterling example of best practices. Besides, it was too long for my purposes even without the error checking.&lt;/i&gt;</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think shipley&#8217;s code should be quoted in any instance.  Especially when it has a severe lack of error checking and dereferences items for no reason.</p>
<p>Secondly, how are fat binaries not scalable? IIRC, on tiger 31 separate archs were supported (but that was a limitation of the devtools generating them, not the OS reading them).</p>
<p><i>[Andrew says] On fat binaries: simply that the idea of having to compile &amp; link 2 or 3 times (which is the story today) sucks as a developer. Dong it 4 times, or 5 times, or whatever is even worse. Then there is the problem of increased application size &#8211; Flash Player for Mac is now twice as big a download as it used to be.</i></p>
<p><i>As for Shipley&#8217;s code, I chose it because it had the mixture of C and Smalltalk-isms I think are typical in Objective C, not because it was or wasn&#8217;t a sterling example of best practices. Besides, it was too long for my purposes even without the error checking.</i></p>
]]></content:encoded>
	</item>
</channel>
</rss>
