<?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: An interview with 280 North on Objective-J and Cappuccino</title>
	<atom:link href="http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Wed, 17 Mar 2010 03:28:44 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: quame</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-267235</link>
		<dc:creator>quame</dc:creator>
		<pubDate>Fri, 05 Sep 2008 19:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-267235</guid>
		<description>I&#039;m I missing something from  &lt;a href=&quot;http://www.codeplex.com/visualwebgui/Wiki/View.aspx?title=Home&amp;version=139&quot; title=&quot;visualwebgui&quot; rel=&quot;nofollow&quot;&gt;  and cappi. Care to help differentiate.&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>I&#8217;m I missing something from  <a href="http://www.codeplex.com/visualwebgui/Wiki/View.aspx?title=Home&amp;version=139" title="visualwebgui" rel="nofollow">  and cappi. Care to help differentiate.</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: oomu</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-265104</link>
		<dc:creator>oomu</dc:creator>
		<pubDate>Mon, 16 Jun 2008 09:00:02 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-265104</guid>
		<description>For my part,  Cocoa+objective C are truly a great framework/language to do modern application.  

It&#039;s very powerful, dynamic and it emphasizes MVC development at the core.

-

I&#039;m not convinced by JS. not the syntax,  the js syntax is nice. No, the main problem is it needs a standard framework to develop real applications.

-
I&#039;m looking forward to see what objective-J/cappucino can bring.  The real important part is cappucino.</description>
		<content:encoded><![CDATA[<p>For my part,  Cocoa+objective C are truly a great framework/language to do modern application.  </p>
<p>It&#8217;s very powerful, dynamic and it emphasizes MVC development at the core.</p>
<p>-</p>
<p>I&#8217;m not convinced by JS. not the syntax,  the js syntax is nice. No, the main problem is it needs a standard framework to develop real applications.</p>
<p>-<br />
I&#8217;m looking forward to see what objective-J/cappucino can bring.  The real important part is cappucino.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: philmaker</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-265095</link>
		<dc:creator>philmaker</dc:creator>
		<pubDate>Sun, 15 Jun 2008 06:16:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-265095</guid>
		<description>Kudos 280North - your work is extremely impressive. For an analogy, I do not write desktop applications in assembly language. I consider HTML and CSS to be the assembly language of web applications. And so I absolutely welcome Cappuccino. I have also been impressed with some newer toolkits such as Echo3 and Ext - specifically Echo3. I hope that one day soon Objective-J and Cappuccino will be licensed for use by all.</description>
		<content:encoded><![CDATA[<p>Kudos 280North &#8211; your work is extremely impressive. For an analogy, I do not write desktop applications in assembly language. I consider HTML and CSS to be the assembly language of web applications. And so I absolutely welcome Cappuccino. I have also been impressed with some newer toolkits such as Echo3 and Ext &#8211; specifically Echo3. I hope that one day soon Objective-J and Cappuccino will be licensed for use by all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: terrywilcox</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264957</link>
		<dc:creator>terrywilcox</dc:creator>
		<pubDate>Tue, 10 Jun 2008 16:04:47 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264957</guid>
		<description>&gt;&gt; - ObjC selector syntax: ObjC forces every parameter to be named.
&gt;&gt; [object argument1:foo argument2:bar argument3:baz]

This is incorrect. The parameters are not named, those bits are part of the method name. ie. &quot;argument1: argument2: argument3:&quot; is the method name. You can&#039;t reorder them as you could with named parameters.

You could just as easily name the method argument1:::

As for method name length, I use code completion. I read the code a whole lot more than I write it, so descriptive names are worth far more than saving keystrokes on a method name that I&#039;ll only ever type once.</description>
		<content:encoded><![CDATA[<p>&gt;&gt; &#8211; ObjC selector syntax: ObjC forces every parameter to be named.<br />
&gt;&gt; [object argument1:foo argument2:bar argument3:baz]</p>
<p>This is incorrect. The parameters are not named, those bits are part of the method name. ie. &#8220;argument1: argument2: argument3:&#8221; is the method name. You can&#8217;t reorder them as you could with named parameters.</p>
<p>You could just as easily name the method argument1:::</p>
<p>As for method name length, I use code completion. I read the code a whole lot more than I write it, so descriptive names are worth far more than saving keystrokes on a method name that I&#8217;ll only ever type once.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264887</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Mon, 09 Jun 2008 02:45:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264887</guid>
		<description>Wow. It sure helps to be the last story before the weekend if you want a lot of comments.</description>
		<content:encoded><![CDATA[<p>Wow. It sure helps to be the last story before the weekend if you want a lot of comments.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: broofa</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264886</link>
		<dc:creator>broofa</dc:creator>
		<pubDate>Sun, 08 Jun 2008 23:01:17 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264886</guid>
		<description>good idea to have as the shortcut for â€œhelpâ€
-&gt; good idea to have [shift+meta+alt+?] as the shortcut for â€œhelpâ€</description>
		<content:encoded><![CDATA[<p>good idea to have as the shortcut for â€œhelpâ€<br />
-&gt; good idea to have [shift+meta+alt+?] as the shortcut for â€œhelpâ€</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: broofa</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264885</link>
		<dc:creator>broofa</dc:creator>
		<pubDate>Sun, 08 Jun 2008 22:58:41 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264885</guid>
		<description>re: Cocoa inducing RSI - Personally, Apple&#039;s ObjC/Cocoa environment is far and away my least favorite environment when it comes to the ergonomics of writing code.  I wrote NeXT/OpenStep apps for 5 years and my fingers/forearms *killed* me most of the time.  It got so bad I had to use a Kinesis (ergonomic) keyboard and wear a wrist brace just to be able to code.

When I switched to doing JS/DHTML/AJAX coding, those symptoms disappeared almost immediately, and stayed away for 9 years of coding webapps.  Now, having switched back to Cocoa Touch development 2 months ago, my wrists and forearms once again throb from the contortions required by Xcode and the Apple in general.

I believe there are three factors that cause this:
- ObjC selector syntax: ObjC forces every parameter to be named.  E.g.  [object argument1:foo argument2:bar argument3:baz].  While this does make code self-documenting (sort of), it essentially doubles the amount of typing required to invoke a method.  Moreover, method names end up being more obscure than necessary, so you have to refer to documentation far more often (see gripe about &quot;help&quot; hotkey below).
- Cocoa method naming style: Compounding the overly verbose method invocation required by ObjC, is the insanely long method signatures given to the Cocoa APIs.  It&#039;s absolutely ridiculous how long some of the method names that Apple uses.
- XCode keyboard shortcuts: You pretty much have to excel at using keyboard shortcuts to be an effective Cocoa developer.  Unfortunately XCode uses some of the most bizarre vulcan-nerve-pinch shortcuts of any environment out there.  I mean, come on, who in the h*ll thought it was a good idea to have  as the shortcut for &quot;help&quot; (where other platforms use simply &quot;F1&quot;).

These three problems combine to have Cocoa developers contorting their hands into uncomfortable positions dozens of times a minute, for hours on end.

Is Cocoa/ObjC development physically uncomfortable? Abso-frickin-lutely!</description>
		<content:encoded><![CDATA[<p>re: Cocoa inducing RSI &#8211; Personally, Apple&#8217;s ObjC/Cocoa environment is far and away my least favorite environment when it comes to the ergonomics of writing code.  I wrote NeXT/OpenStep apps for 5 years and my fingers/forearms *killed* me most of the time.  It got so bad I had to use a Kinesis (ergonomic) keyboard and wear a wrist brace just to be able to code.</p>
<p>When I switched to doing JS/DHTML/AJAX coding, those symptoms disappeared almost immediately, and stayed away for 9 years of coding webapps.  Now, having switched back to Cocoa Touch development 2 months ago, my wrists and forearms once again throb from the contortions required by Xcode and the Apple in general.</p>
<p>I believe there are three factors that cause this:<br />
- ObjC selector syntax: ObjC forces every parameter to be named.  E.g.  [object argument1:foo argument2:bar argument3:baz].  While this does make code self-documenting (sort of), it essentially doubles the amount of typing required to invoke a method.  Moreover, method names end up being more obscure than necessary, so you have to refer to documentation far more often (see gripe about &#8220;help&#8221; hotkey below).<br />
- Cocoa method naming style: Compounding the overly verbose method invocation required by ObjC, is the insanely long method signatures given to the Cocoa APIs.  It&#8217;s absolutely ridiculous how long some of the method names that Apple uses.<br />
- XCode keyboard shortcuts: You pretty much have to excel at using keyboard shortcuts to be an effective Cocoa developer.  Unfortunately XCode uses some of the most bizarre vulcan-nerve-pinch shortcuts of any environment out there.  I mean, come on, who in the h*ll thought it was a good idea to have  as the shortcut for &#8220;help&#8221; (where other platforms use simply &#8220;F1&#8243;).</p>
<p>These three problems combine to have Cocoa developers contorting their hands into uncomfortable positions dozens of times a minute, for hours on end.</p>
<p>Is Cocoa/ObjC development physically uncomfortable? Abso-frickin-lutely!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264884</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Sun, 08 Jun 2008 22:17:37 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264884</guid>
		<description>&gt;&gt;Nosredna: Weâ€™ve got several debugging tools, including a custom version of Firebug that understands Objective-J method names.

Wow. You guys went all-out.</description>
		<content:encoded><![CDATA[<p>&gt;&gt;Nosredna: Weâ€™ve got several debugging tools, including a custom version of Firebug that understands Objective-J method names.</p>
<p>Wow. You guys went all-out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tlrobinson</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264882</link>
		<dc:creator>tlrobinson</dc:creator>
		<pubDate>Sun, 08 Jun 2008 21:48:16 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264882</guid>
		<description>Nosredna: We&#039;ve got several debugging tools, including a custom version of Firebug that understands Objective-J method names. A lot more could be done as well.</description>
		<content:encoded><![CDATA[<p>Nosredna: We&#8217;ve got several debugging tools, including a custom version of Firebug that understands Objective-J method names. A lot more could be done as well.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: khiltd</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264880</link>
		<dc:creator>khiltd</dc:creator>
		<pubDate>Sun, 08 Jun 2008 19:17:33 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264880</guid>
		<description>If I&#039;m using Cocoa incorrectly then someone should tell the people who wrote it that, because there doesn&#039;t seem to be much of an alternative. AppKit sources are not kept private because they contain any trade secrets or patentable algorithms; it&#039;s just butt-ugly code nobody wants their name associated with.</description>
		<content:encoded><![CDATA[<p>If I&#8217;m using Cocoa incorrectly then someone should tell the people who wrote it that, because there doesn&#8217;t seem to be much of an alternative. AppKit sources are not kept private because they contain any trade secrets or patentable algorithms; it&#8217;s just butt-ugly code nobody wants their name associated with.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nosredna</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264879</link>
		<dc:creator>Nosredna</dc:creator>
		<pubDate>Sun, 08 Jun 2008 18:42:24 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264879</guid>
		<description>I got about 5 slides in to building a presentation and then the user interface went all crazy. I couldn&#039;t select text anymore. Undo stopped working right. This makes me kinda scared to do any production work in it. I assume it&#039;s still beta (everything is beta on the web, it seems).

So now, again, I&#039;m interested in how well debugging workis in Firebug if you&#039;re seeing JavaScript being executed but you&#039;ve programmed in Objective-J with a different waay of thinking about the code.</description>
		<content:encoded><![CDATA[<p>I got about 5 slides in to building a presentation and then the user interface went all crazy. I couldn&#8217;t select text anymore. Undo stopped working right. This makes me kinda scared to do any production work in it. I assume it&#8217;s still beta (everything is beta on the web, it seems).</p>
<p>So now, again, I&#8217;m interested in how well debugging workis in Firebug if you&#8217;re seeing JavaScript being executed but you&#8217;ve programmed in Objective-J with a different waay of thinking about the code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dylan Schiemann</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264878</link>
		<dc:creator>Dylan Schiemann</dc:creator>
		<pubDate>Sun, 08 Jun 2008 15:46:48 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264878</guid>
		<description>So, how to objective-j compare with Coherent and SproutCore? See discussion at http://ajaxian.com/archives/coherent-cocoa-databinding-for-ajax</description>
		<content:encoded><![CDATA[<p>So, how to objective-j compare with Coherent and SproutCore? See discussion at <a href="http://ajaxian.com/archives/coherent-cocoa-databinding-for-ajax" rel="nofollow">http://ajaxian.com/archives/coherent-cocoa-databinding-for-ajax</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Breton</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264877</link>
		<dc:creator>Breton</dc:creator>
		<pubDate>Sun, 08 Jun 2008 14:11:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264877</guid>
		<description>&quot;Exception catching doesnâ€™t allow the callee object to handle the case when a method is called on it, which doesnâ€™t exist. It only allows the caller to deal with it. To be able to do the former is a powerful feature as Ruby programmers and Objective C programmers alike already know.&quot;

Ah I see. I&#039;m not sure I see the value of it myself, but I&#039;m sure if I had a hammer, I would begin to see the value of nails. 

&quot;On a more general level, you seem to be implying in several of your posts that the guys behind Objective J somehow must not have understood JavaScript. &quot;

On the contrary, I have been extremely careful not to imply such things. Also, I&#039;ve only posted twice to this thread, I don&#039;t know where you get &quot;several&quot;. I am merely curious. To be clear, as someone who has a current favorite language, I&#039;m quite interested in what people outside of it have run into so far as limitations go, and I am especially interested in learning new things. I can&#039;t learn new things by standing in silent awe of someone else&#039;s obviously superior intelligence! I ask tough questions damn it! and I&#039;m not ashamed of that! I suppose if you had an inclination towards conflict, you could read that as hubris. In this case though, I did not intend to give that impression at all.

 &quot;You are ignoring the obvious fact that to be able to implement something like Obj J to begin with, youâ€™d have to have a very thorough understanding of the language you are implementing it in&quot;

I&#039;m not ignoring that, I have complimented them on their achievement in nearly every one of my posts. 

&quot;It seems to me much more likely that it is you who have only a superficial knowledge of Obj C and Cocoa.&quot;

Of course I do! I&#039;ve made no secret of that, and I said as such in an earlier post. My questions have also been an attempt to learn something about Objective-C. If there&#039;s something valuable in it, I want to know about it, and such insights are not so easy to find rifling through apple&#039;s reference documents unguided. 

&quot; Of course none of us have looked at the code yet&quot;

what are you waiting for? it&#039;s right there under the &quot;view source&quot; button in your browser.


&quot;Iâ€™d be very surprised and impressed if any of the nay-sayers in this thread have ever created anything resembling this kind of app in pure javascript. &quot;

I haven&#039;t, but I&#039;d like to. It&#039;s interesting and a little exciting. Otherwise I wouldn&#039;t have bothered posting in this thread at all.</description>
		<content:encoded><![CDATA[<p>&#8220;Exception catching doesnâ€™t allow the callee object to handle the case when a method is called on it, which doesnâ€™t exist. It only allows the caller to deal with it. To be able to do the former is a powerful feature as Ruby programmers and Objective C programmers alike already know.&#8221;</p>
<p>Ah I see. I&#8217;m not sure I see the value of it myself, but I&#8217;m sure if I had a hammer, I would begin to see the value of nails. </p>
<p>&#8220;On a more general level, you seem to be implying in several of your posts that the guys behind Objective J somehow must not have understood JavaScript. &#8221;</p>
<p>On the contrary, I have been extremely careful not to imply such things. Also, I&#8217;ve only posted twice to this thread, I don&#8217;t know where you get &#8220;several&#8221;. I am merely curious. To be clear, as someone who has a current favorite language, I&#8217;m quite interested in what people outside of it have run into so far as limitations go, and I am especially interested in learning new things. I can&#8217;t learn new things by standing in silent awe of someone else&#8217;s obviously superior intelligence! I ask tough questions damn it! and I&#8217;m not ashamed of that! I suppose if you had an inclination towards conflict, you could read that as hubris. In this case though, I did not intend to give that impression at all.</p>
<p> &#8220;You are ignoring the obvious fact that to be able to implement something like Obj J to begin with, youâ€™d have to have a very thorough understanding of the language you are implementing it in&#8221;</p>
<p>I&#8217;m not ignoring that, I have complimented them on their achievement in nearly every one of my posts. </p>
<p>&#8220;It seems to me much more likely that it is you who have only a superficial knowledge of Obj C and Cocoa.&#8221;</p>
<p>Of course I do! I&#8217;ve made no secret of that, and I said as such in an earlier post. My questions have also been an attempt to learn something about Objective-C. If there&#8217;s something valuable in it, I want to know about it, and such insights are not so easy to find rifling through apple&#8217;s reference documents unguided. </p>
<p>&#8221; Of course none of us have looked at the code yet&#8221;</p>
<p>what are you waiting for? it&#8217;s right there under the &#8220;view source&#8221; button in your browser.</p>
<p>&#8220;Iâ€™d be very surprised and impressed if any of the nay-sayers in this thread have ever created anything resembling this kind of app in pure javascript. &#8221;</p>
<p>I haven&#8217;t, but I&#8217;d like to. It&#8217;s interesting and a little exciting. Otherwise I wouldn&#8217;t have bothered posting in this thread at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: KaptajnKold</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264875</link>
		<dc:creator>KaptajnKold</dc:creator>
		<pubDate>Sun, 08 Jun 2008 10:27:52 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264875</guid>
		<description>&quot;I did a bit of research to make sure I kinda knew what I was talking about&quot;

Very commendable, but you still don&#039;t quite:

&quot;The case of handling unimplemented methods is easily done by exception catching&quot;

Exception catching doesn&#039;t allow the callee object to handle the case when a method is called on it, which doesn&#039;t exist. It only allows the caller to deal with it. To be able to do the former is a powerful feature as Ruby programmers and Objective C programmers alike already know.

On a more general level, you seem to be implying in several of your posts that the guys behind Objective J somehow must not have understood JavaScript. You are ignoring the obvious fact that to be able to implement something like Obj J to begin with, you&#039;d have to have a very thorough understanding of the language you are implementing it in. It seems to me much more likely that it is you who have only a superficial knowledge of Obj C and Cocoa. Of course none of us have looked at the code yet, but we have seen the kind of application it&#039;s apperently possible to build with this new language/framework. That in itself should at least give the developers at 280 the benefit the doubt. I&#039;d be very surprised and impressed if any of the nay-sayers in this thread have ever created anything resembling this kind of app in pure javascript. If they haven&#039;t, they should be careful with claims to suggest that their javascript knowledge and skills could even compare with the guys at 280.</description>
		<content:encoded><![CDATA[<p>&#8220;I did a bit of research to make sure I kinda knew what I was talking about&#8221;</p>
<p>Very commendable, but you still don&#8217;t quite:</p>
<p>&#8220;The case of handling unimplemented methods is easily done by exception catching&#8221;</p>
<p>Exception catching doesn&#8217;t allow the callee object to handle the case when a method is called on it, which doesn&#8217;t exist. It only allows the caller to deal with it. To be able to do the former is a powerful feature as Ruby programmers and Objective C programmers alike already know.</p>
<p>On a more general level, you seem to be implying in several of your posts that the guys behind Objective J somehow must not have understood JavaScript. You are ignoring the obvious fact that to be able to implement something like Obj J to begin with, you&#8217;d have to have a very thorough understanding of the language you are implementing it in. It seems to me much more likely that it is you who have only a superficial knowledge of Obj C and Cocoa. Of course none of us have looked at the code yet, but we have seen the kind of application it&#8217;s apperently possible to build with this new language/framework. That in itself should at least give the developers at 280 the benefit the doubt. I&#8217;d be very surprised and impressed if any of the nay-sayers in this thread have ever created anything resembling this kind of app in pure javascript. If they haven&#8217;t, they should be careful with claims to suggest that their javascript knowledge and skills could even compare with the guys at 280.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: theKarlAdam</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264874</link>
		<dc:creator>theKarlAdam</dc:creator>
		<pubDate>Sun, 08 Jun 2008 09:12:44 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264874</guid>
		<description>@khilted

In regards to:
some crazy typing. Also do try to realize that
foo(1)-&gt;bar-&gt;(2)-&gt;foobar()
requires fewer back arrows/mouse clicks than
[foo: 1] barâ€¦ oops need another bracket
[[foo: 1] bar: 2] foobarâ€¦ oops need another bracket
[[[foo: 1] bar: 2] foobar]

If you&#039;re doing anything like that in Cocoa, you&#039;re doing it wrong. The entire point of Cocoa and why it&#039;s so easy to work with, build things, and change things quickly is the adherence to OO and MVC design paradigms of which object encapsulation is a huge one. If you find yourself needing to go three calls deep in order to achieve something you&#039;re likely doing it wrong since the goal is less lines of code with clearer selectors that tell you exactly what the intent was rather than exactly how it&#039;s being achieved.

As to the API you sighted, clearly the author is at fault, since that&#039;s not part of Cocoa.

@Breton
You&#039;re not hearing yourself clearly. You&#039;re saying that in order to get what message passing natively does, you need to merely handle exceptions. In order to get KVC and KVO you need to implement your own callbacks? Sure, if you do all that, it&#039;s the same thing. There currently exists no JS library outside of Objective J that natively does this and the many other things Cocoa does, for you, and while you *could* do it this way yourself in js, you&#039;d have to write more code to do it in the first place.

Cocoa, and I expect Cappuccino to follow the same principle, is all about reducing the code burden on the application author. There&#039;s no reason why you should have to do such tedious things, there should be one library that encompasses all these &quot;basics&quot; such that you don&#039;t have to write a new one for each project, that you don&#039;t need to extend a little bit more to do exactly what you wanted then end up having to rewrite since the code was too dependent on weird behaviors.

Objective-J is an amazing technical achievement but the programming paradigms it brings along from Cocoa are where the real value lies.</description>
		<content:encoded><![CDATA[<p>@khilted</p>
<p>In regards to:<br />
some crazy typing. Also do try to realize that<br />
foo(1)-&gt;bar-&gt;(2)-&gt;foobar()<br />
requires fewer back arrows/mouse clicks than<br />
[foo: 1] barâ€¦ oops need another bracket<br />
[[foo: 1] bar: 2] foobarâ€¦ oops need another bracket<br />
[[[foo: 1] bar: 2] foobar]</p>
<p>If you&#8217;re doing anything like that in Cocoa, you&#8217;re doing it wrong. The entire point of Cocoa and why it&#8217;s so easy to work with, build things, and change things quickly is the adherence to OO and MVC design paradigms of which object encapsulation is a huge one. If you find yourself needing to go three calls deep in order to achieve something you&#8217;re likely doing it wrong since the goal is less lines of code with clearer selectors that tell you exactly what the intent was rather than exactly how it&#8217;s being achieved.</p>
<p>As to the API you sighted, clearly the author is at fault, since that&#8217;s not part of Cocoa.</p>
<p>@Breton<br />
You&#8217;re not hearing yourself clearly. You&#8217;re saying that in order to get what message passing natively does, you need to merely handle exceptions. In order to get KVC and KVO you need to implement your own callbacks? Sure, if you do all that, it&#8217;s the same thing. There currently exists no JS library outside of Objective J that natively does this and the many other things Cocoa does, for you, and while you *could* do it this way yourself in js, you&#8217;d have to write more code to do it in the first place.</p>
<p>Cocoa, and I expect Cappuccino to follow the same principle, is all about reducing the code burden on the application author. There&#8217;s no reason why you should have to do such tedious things, there should be one library that encompasses all these &#8220;basics&#8221; such that you don&#8217;t have to write a new one for each project, that you don&#8217;t need to extend a little bit more to do exactly what you wanted then end up having to rewrite since the code was too dependent on weird behaviors.</p>
<p>Objective-J is an amazing technical achievement but the programming paradigms it brings along from Cocoa are where the real value lies.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264873</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Sun, 08 Jun 2008 08:41:20 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264873</guid>
		<description>I was also taken aback by the negativity. Some of it reminds me of Java programmers and how they attacked other languages being used in the stack along with Java. These guys have built themselves a tool, a DSL on top of Javascript, and yet, some JS programmers seem deeply offended that they dared to venture outside DSLs that are achievable via pure JS and JS syntax. They are skilled at Objective-C and Cocoa, so they opted to create tools that allowed them to leverage that. I&#039;m not a fan of this DSL, but why should endusers care what was used to build the app?

Seems like they did what was best for them.</description>
		<content:encoded><![CDATA[<p>I was also taken aback by the negativity. Some of it reminds me of Java programmers and how they attacked other languages being used in the stack along with Java. These guys have built themselves a tool, a DSL on top of Javascript, and yet, some JS programmers seem deeply offended that they dared to venture outside DSLs that are achievable via pure JS and JS syntax. They are skilled at Objective-C and Cocoa, so they opted to create tools that allowed them to leverage that. I&#8217;m not a fan of this DSL, but why should endusers care what was used to build the app?</p>
<p>Seems like they did what was best for them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jtothekay</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264872</link>
		<dc:creator>jtothekay</dc:creator>
		<pubDate>Sun, 08 Jun 2008 08:20:03 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264872</guid>
		<description>From reading all these comments it&#039;s amazing the negativity that exists regarding this.  I suppose I just wonder the practicality of Obj-j and cappucino.  

When developing for the web especially, there are a million ways to skin a cat with a large variety of languages and sublanguages, and many with a questionable purpose, and it all comes down to practicality.  What&#039;s the best way to do what you want and what makes the most sense.  I&#039;m sure Obj-j and capuccino have its purposes in some applications just as using straight up javascript with jquery has its purposes as well, and they vary in their abilities, so I think its unwarranted to crap all over Obj-J and Cappucino like some are doing in these comments as if it&#039;s a convoluted way to do something you can already do with straight javascript or whatever.  Perhaps in a relatively simple javascript application maybe using jquery is the way to go, but for something more powerful maybe obj-j will serve better.</description>
		<content:encoded><![CDATA[<p>From reading all these comments it&#8217;s amazing the negativity that exists regarding this.  I suppose I just wonder the practicality of Obj-j and cappucino.  </p>
<p>When developing for the web especially, there are a million ways to skin a cat with a large variety of languages and sublanguages, and many with a questionable purpose, and it all comes down to practicality.  What&#8217;s the best way to do what you want and what makes the most sense.  I&#8217;m sure Obj-j and capuccino have its purposes in some applications just as using straight up javascript with jquery has its purposes as well, and they vary in their abilities, so I think its unwarranted to crap all over Obj-J and Cappucino like some are doing in these comments as if it&#8217;s a convoluted way to do something you can already do with straight javascript or whatever.  Perhaps in a relatively simple javascript application maybe using jquery is the way to go, but for something more powerful maybe obj-j will serve better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ArmenianGenocide</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264865</link>
		<dc:creator>ArmenianGenocide</dc:creator>
		<pubDate>Sun, 08 Jun 2008 08:07:57 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264865</guid>
		<description>Interesting Article, thanks &lt;b&gt;&lt;a href=&quot;http://www.armeniangenocidedebate.com&quot; title=&quot;Armenian Genocide&quot; rel=&quot;nofollow&quot;&gt;Armenian Genocide&lt;/a&gt;&lt;/b&gt; , great information and research.</description>
		<content:encoded><![CDATA[<p>Interesting Article, thanks <b><a href="http://www.armeniangenocidedebate.com" title="Armenian Genocide" rel="nofollow">Armenian Genocide</a></b> , great information and research.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Breton</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264794</link>
		<dc:creator>Breton</dc:creator>
		<pubDate>Sun, 08 Jun 2008 07:10:25 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264794</guid>
		<description>I actually think the whole thing is an impressive accomplishment. The main thing I&#039;m curious about- As someone who has worked with javascript for quite a while- Is that someone claims to have found some things that &quot;wouldn&#039;t work&quot; or &quot;would look really ugly&quot; to implement in javascript. 

The list of things from the developer  was: &quot;.. we added Objective-C style message passing to JavaScript [because] it is more dynamic, and many features in Cocoa rely on it. You can do things like handle methods that arenâ€™t implemented (like in Ruby), you can change and swap out classes at runtime, KVC and KVO (allowing for bindings), and much more. Just the fact that you can call [super myMethod] is a plus.&quot;

I did a bit of research to make sure I kinda knew what I was talking about-- But maybe I&#039;m just dense. I couldn&#039;t find a single difference between Objective-C style message passing and the way javascript function calls already work. The case of handling unimplemented methods is easily done by exception catching. I can see why swapping out classes would be impressive in a C based language, but swapping out objects, and methods and changing them around has never been the slightest bit difficult in javascript. KVC and KVO can be done with callbacks, and in fact, ajaxian has reported on a library that replicates cocoa&#039;s binding system, somehow without the use of objective-j. I honestly can&#039;t fathom why being able to call [super myMethod] is a plus. I&#039;ve never run into a situation where I&#039;ve really needed that in javascript, since.. well,  it&#039;s not a class based language. So the idiom doesn&#039;t make any sense, unless you&#039;ve grafted classes on.

But all that is really beside the point. I think cappucinno looks really interesting, and the application built with it, 280 slides, looks quite impressive. I look forward to being able to try it out. I just don&#039;t quite believe the argument that Objective-J was needed  to implement it, so I&#039;m really looking forward to what the real pain points were about javascript that led them to &quot;jump through hoops&quot; by inventing objective J. The previous comments from one of the authors don&#039;t answer this particular niggling confusion for me. So maybe looking at the source code will.</description>
		<content:encoded><![CDATA[<p>I actually think the whole thing is an impressive accomplishment. The main thing I&#8217;m curious about- As someone who has worked with javascript for quite a while- Is that someone claims to have found some things that &#8220;wouldn&#8217;t work&#8221; or &#8220;would look really ugly&#8221; to implement in javascript. </p>
<p>The list of things from the developer  was: &#8220;.. we added Objective-C style message passing to JavaScript [because] it is more dynamic, and many features in Cocoa rely on it. You can do things like handle methods that arenâ€™t implemented (like in Ruby), you can change and swap out classes at runtime, KVC and KVO (allowing for bindings), and much more. Just the fact that you can call [super myMethod] is a plus.&#8221;</p>
<p>I did a bit of research to make sure I kinda knew what I was talking about&#8211; But maybe I&#8217;m just dense. I couldn&#8217;t find a single difference between Objective-C style message passing and the way javascript function calls already work. The case of handling unimplemented methods is easily done by exception catching. I can see why swapping out classes would be impressive in a C based language, but swapping out objects, and methods and changing them around has never been the slightest bit difficult in javascript. KVC and KVO can be done with callbacks, and in fact, ajaxian has reported on a library that replicates cocoa&#8217;s binding system, somehow without the use of objective-j. I honestly can&#8217;t fathom why being able to call [super myMethod] is a plus. I&#8217;ve never run into a situation where I&#8217;ve really needed that in javascript, since.. well,  it&#8217;s not a class based language. So the idiom doesn&#8217;t make any sense, unless you&#8217;ve grafted classes on.</p>
<p>But all that is really beside the point. I think cappucinno looks really interesting, and the application built with it, 280 slides, looks quite impressive. I look forward to being able to try it out. I just don&#8217;t quite believe the argument that Objective-J was needed  to implement it, so I&#8217;m really looking forward to what the real pain points were about javascript that led them to &#8220;jump through hoops&#8221; by inventing objective J. The previous comments from one of the authors don&#8217;t answer this particular niggling confusion for me. So maybe looking at the source code will.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cromwellian</title>
		<link>http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino/comment-page-1#comment-264792</link>
		<dc:creator>cromwellian</dc:creator>
		<pubDate>Sun, 08 Jun 2008 06:17:02 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino#comment-264792</guid>
		<description>@khiltd, I don&#039;t know about your keyboard, but on my keyboard, parenthesis requires the shift key, square-bracket does not. The -&gt; operator isn&#039;t exactly light on the typing either. If you want lack of excessive syntax for precedence, you may as well look at one of the concatenative languages like Joy or Factor, although you pay for it by stack twiddling.</description>
		<content:encoded><![CDATA[<p>@khiltd, I don&#8217;t know about your keyboard, but on my keyboard, parenthesis requires the shift key, square-bracket does not. The -&gt; operator isn&#8217;t exactly light on the typing either. If you want lack of excessive syntax for precedence, you may as well look at one of the concatenative languages like Joy or Factor, although you pay for it by stack twiddling.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
