<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Some Nice Features of the Objective-C Language</title>
	<atom:link href="http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/</link>
	<description>Interactive Cocoa</description>
	<pubDate>Wed, 23 Jul 2008 22:59:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
		<item>
		<title>By: Imparare a programmare con Apple: Objective C, Cocoa ed Xcode &#171; sittisal tech blog</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-168</link>
		<dc:creator>Imparare a programmare con Apple: Objective C, Cocoa ed Xcode &#171; sittisal tech blog</dc:creator>
		<pubDate>Sun, 30 Mar 2008 15:00:21 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-168</guid>
		<description>[...] Per approfondire Objective C (in particolare l&#8217;ultima versione 2.0 dotata di funzionalità interessanti nonchè di un Garbage Collector) potete consultare: Introduction to The Objective-C 2.0 Programming [...]</description>
		<content:encoded><![CDATA[<p>[...] Per approfondire Objective C (in particolare l&#8217;ultima versione 2.0 dotata di funzionalità interessanti nonchè di un Garbage Collector) potete consultare: Introduction to The Objective-C 2.0 Programming [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sl</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-123</link>
		<dc:creator>sl</dc:creator>
		<pubDate>Fri, 21 Mar 2008 01:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-123</guid>
		<description>I read a lot about objc in the past few days since I read this article. One thing i'm missing here. Is Objc2.0 free for use.
Does it have a compiler for Linux? And what about the base class library? Is it open source? what license?
Does apple hold any patents on the language? will they sue if used on other platforms?

looking in my Ubuntu apt repositories it seems like there's only support for version 1.0 of the language in the form of gcc, which mean that many cool reatures you mentioned wouldn't work, like attributes for instance.</description>
		<content:encoded><![CDATA[<p>I read a lot about objc in the past few days since I read this article. One thing i&#8217;m missing here. Is Objc2.0 free for use.<br />
Does it have a compiler for Linux? And what about the base class library? Is it open source? what license?<br />
Does apple hold any patents on the language? will they sue if used on other platforms?</p>
<p>looking in my Ubuntu apt repositories it seems like there&#8217;s only support for version 1.0 of the language in the form of gcc, which mean that many cool reatures you mentioned wouldn&#8217;t work, like attributes for instance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pjcast</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-121</link>
		<dc:creator>pjcast</dc:creator>
		<pubDate>Wed, 19 Mar 2008 03:07:16 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-121</guid>
		<description>I dunno, not all apps are GUI apps. I find it much easier to write portable code in C/C++ that compiles under Solaris/Linux/Windows/OSX than I do to write ObjC code and find a good compiler/runtime on anything other than OSX. I'm not sure where you contemplate trying to bring Wine to Mac? Win32 API is not C++. C++ is very portable, and is very standard, and is used in very many commercial applications out there. All that is required is simply using a little abstractions or ifdef's and a windowing GUI API can be easily compiled in/out.

I don't get your point about ObjC being a ton easier to debug than other languages? Or are you referring to Smalltalk? Because, by far, the best debugger I have ever used in on Windows (MS'S VC Debugger) and can easily debug assembly, C/C++, Managed, Web Apps, etc all exceptionally.

In regards to cross platform GUI apps, for C++ is is very easy to write easily cross platform Apps using wxWidgets, or other tool kits. Alternatively, I would use something like Java if I really wanted cross platform GUI (might even make use of Eclipse or Netbeans platform).

The point really, is I am not against ObjC. It is a perfectly valid language as languages go. However, I feel C++ has surpassed it, and Java/.Net platform are far easier to develop for. However, for me at least, the *only* place to use OjbC is on Mac and/or other Apple products... Which, kind of makes using it for applications you want to work on other operating systems too pretty lame.</description>
		<content:encoded><![CDATA[<p>I dunno, not all apps are GUI apps. I find it much easier to write portable code in C/C++ that compiles under Solaris/Linux/Windows/OSX than I do to write ObjC code and find a good compiler/runtime on anything other than OSX. I&#8217;m not sure where you contemplate trying to bring Wine to Mac? Win32 API is not C++. C++ is very portable, and is very standard, and is used in very many commercial applications out there. All that is required is simply using a little abstractions or ifdef&#8217;s and a windowing GUI API can be easily compiled in/out.</p>
<p>I don&#8217;t get your point about ObjC being a ton easier to debug than other languages? Or are you referring to Smalltalk? Because, by far, the best debugger I have ever used in on Windows (MS&#8217;S VC Debugger) and can easily debug assembly, C/C++, Managed, Web Apps, etc all exceptionally.</p>
<p>In regards to cross platform GUI apps, for C++ is is very easy to write easily cross platform Apps using wxWidgets, or other tool kits. Alternatively, I would use something like Java if I really wanted cross platform GUI (might even make use of Eclipse or Netbeans platform).</p>
<p>The point really, is I am not against ObjC. It is a perfectly valid language as languages go. However, I feel C++ has surpassed it, and Java/.Net platform are far easier to develop for. However, for me at least, the *only* place to use OjbC is on Mac and/or other Apple products&#8230; Which, kind of makes using it for applications you want to work on other operating systems too pretty lame.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RevAaron</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-119</link>
		<dc:creator>RevAaron</dc:creator>
		<pubDate>Tue, 18 Mar 2008 08:00:24 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-119</guid>
		<description>The funny thing is when C++/Java/C# folks come in contact with ObjC many of their responses are like Steven's- a lot easier, intuitive, and productive. Why is it funny? Because ObjC itself is just a shadow of its progenitor- Smalltalk. Many of the objections people put forth for ObjC disappear- it's a ton easier to debug, for one. 

Just a thought.

NCIceman: If you consider C++ portable, then ObjC is just as portable. ObjC++ too, though there maybe some fuzzy specifics on that one. When it comes down to it, it's the platform and API, not that language that really inhibit portability. Yes, if you write an ObjC app for Cocoa, you won't be able to compile it (easily; there are ways!) on Windows as-is. But neither would you be able to compile and run a C++/Win32 app on OS X, not without a similar amount of pain, and it's possible that amount of pain would be the same on Linux.

In the end, both C++ and ObjC aren't meant to be portable, and any porting project will be a PITA. It's easier to get and use Foundation.framework when bringing ObjC code to a Windows box than to try to figure out wine+C++ on a Mac. :)</description>
		<content:encoded><![CDATA[<p>The funny thing is when C++/Java/C# folks come in contact with ObjC many of their responses are like Steven&#8217;s- a lot easier, intuitive, and productive. Why is it funny? Because ObjC itself is just a shadow of its progenitor- Smalltalk. Many of the objections people put forth for ObjC disappear- it&#8217;s a ton easier to debug, for one. </p>
<p>Just a thought.</p>
<p>NCIceman: If you consider C++ portable, then ObjC is just as portable. ObjC++ too, though there maybe some fuzzy specifics on that one. When it comes down to it, it&#8217;s the platform and API, not that language that really inhibit portability. Yes, if you write an ObjC app for Cocoa, you won&#8217;t be able to compile it (easily; there are ways!) on Windows as-is. But neither would you be able to compile and run a C++/Win32 app on OS X, not without a similar amount of pain, and it&#8217;s possible that amount of pain would be the same on Linux.</p>
<p>In the end, both C++ and ObjC aren&#8217;t meant to be portable, and any porting project will be a PITA. It&#8217;s easier to get and use Foundation.framework when bringing ObjC code to a Windows box than to try to figure out wine+C++ on a Mac. :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pjcast</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-118</link>
		<dc:creator>pjcast</dc:creator>
		<pubDate>Tue, 18 Mar 2008 04:55:15 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-118</guid>
		<description>In regards to nil, it is nice not having to always check for nil and simply getting a nil back from functions.

However, you still have to worry about pointers, because a double release, or calling a selector on an already released object can cause some hard to find segfaults :D (Not much different than C/C++), but trying to always match up retain/release can sometimes be a pain.</description>
		<content:encoded><![CDATA[<p>In regards to nil, it is nice not having to always check for nil and simply getting a nil back from functions.</p>
<p>However, you still have to worry about pointers, because a double release, or calling a selector on an already released object can cause some hard to find segfaults :D (Not much different than C/C++), but trying to always match up retain/release can sometimes be a pain.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LJ Gould</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-117</link>
		<dc:creator>LJ Gould</dc:creator>
		<pubDate>Tue, 18 Mar 2008 03:09:03 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-117</guid>
		<description>My favourite thing about Objective-C: I love messaging nil. In Objective-C sending a pointless message to nil returns nil.  

None of Smalltalk's "Message not found: 'nil DoesNotUnderstand: #selector"'   

None of Java's "java.lang.nullpointerexception()" 

None of C's "segfault" 

Just sweet beautiful nil, it avoid cluttering your programs with "(anObject isNil) ifFalse:[anObject doSomething]." or try... catch blocks, or checking if an object is null before sending it a message or whatever else you have to do.</description>
		<content:encoded><![CDATA[<p>My favourite thing about Objective-C: I love messaging nil. In Objective-C sending a pointless message to nil returns nil.  </p>
<p>None of Smalltalk&#8217;s &#8220;Message not found: &#8216;nil DoesNotUnderstand: #selector&#8221;&#8216;   </p>
<p>None of Java&#8217;s &#8220;java.lang.nullpointerexception()&#8221; </p>
<p>None of C&#8217;s &#8220;segfault&#8221; </p>
<p>Just sweet beautiful nil, it avoid cluttering your programs with &#8220;(anObject isNil) ifFalse:[anObject doSomething].&#8221; or try&#8230; catch blocks, or checking if an object is null before sending it a message or whatever else you have to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chiwaw</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-116</link>
		<dc:creator>Chiwaw</dc:creator>
		<pubDate>Tue, 18 Mar 2008 01:02:45 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-116</guid>
		<description>Oh and I forgot about strong/loose typing.  That's two schools with their pros and cons, but I'm definitely a fan of the strong typing.</description>
		<content:encoded><![CDATA[<p>Oh and I forgot about strong/loose typing.  That&#8217;s two schools with their pros and cons, but I&#8217;m definitely a fan of the strong typing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chiwaw</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-115</link>
		<dc:creator>Chiwaw</dc:creator>
		<pubDate>Tue, 18 Mar 2008 00:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-115</guid>
		<description>I have been working with Objective-C for a long while now.  Made a game engine, a few games, etc.  I'm pretty sure I still have a lot to learn about it, so I won't come out as an expert, but I'm used to it by now.

And I definitelly prefere C++.

Here's my reasons, which can be valid or not depending of your needs/habits.

1) No smart pointers.  This is the biggest killer for me.  Under C++ I'm addicted to weak pointers, scoped pointers, shared pointers, etc.  They are so elegant and simple to use, yet making the code so much solid and safer, that I really have a hard time in Obj C to deal with pure, naked pointers without grinching my teeth.

2) No templates.  Yes I know, templates are a pretty good weapon to make a code unreadable.  But used in small and intelligent doses, it IS a real benefit.  Like driving a car, don't do it if you don't know how to drive wisely.  But don't force ME out of it.

3) I still prefere the good old method() calling convention.  I understand the example about the "YES" parameter given above.  But with the powerful IDEs we have today, moving the mouse over the function is all it needs when something is confusing.  To me long ObjC listings are just harder to read than C++.</description>
		<content:encoded><![CDATA[<p>I have been working with Objective-C for a long while now.  Made a game engine, a few games, etc.  I&#8217;m pretty sure I still have a lot to learn about it, so I won&#8217;t come out as an expert, but I&#8217;m used to it by now.</p>
<p>And I definitelly prefere C++.</p>
<p>Here&#8217;s my reasons, which can be valid or not depending of your needs/habits.</p>
<p>1) No smart pointers.  This is the biggest killer for me.  Under C++ I&#8217;m addicted to weak pointers, scoped pointers, shared pointers, etc.  They are so elegant and simple to use, yet making the code so much solid and safer, that I really have a hard time in Obj C to deal with pure, naked pointers without grinching my teeth.</p>
<p>2) No templates.  Yes I know, templates are a pretty good weapon to make a code unreadable.  But used in small and intelligent doses, it IS a real benefit.  Like driving a car, don&#8217;t do it if you don&#8217;t know how to drive wisely.  But don&#8217;t force ME out of it.</p>
<p>3) I still prefere the good old method() calling convention.  I understand the example about the &#8220;YES&#8221; parameter given above.  But with the powerful IDEs we have today, moving the mouse over the function is all it needs when something is confusing.  To me long ObjC listings are just harder to read than C++.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: NCIceman</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-114</link>
		<dc:creator>NCIceman</dc:creator>
		<pubDate>Mon, 17 Mar 2008 18:00:45 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-114</guid>
		<description>Objective C is very powerful and flexible.  My only real beef with it is that, as most often with language, with power comes responsiblity.  It is easier to debug a more heavily typed language; I find debugging Objective C much tougher than C++.  There is also the fact that C++ is a language I can take to other platforms, whereas Objective C is pretty much mac only.

As much as I like it, if I could have a C++ interface to the NS framework I would take it over Objective C just because of familiarity.  Still, the desire to code for the Macintosh has me learning it...</description>
		<content:encoded><![CDATA[<p>Objective C is very powerful and flexible.  My only real beef with it is that, as most often with language, with power comes responsiblity.  It is easier to debug a more heavily typed language; I find debugging Objective C much tougher than C++.  There is also the fact that C++ is a language I can take to other platforms, whereas Objective C is pretty much mac only.</p>
<p>As much as I like it, if I could have a C++ interface to the NS framework I would take it over Objective C just because of familiarity.  Still, the desire to code for the Macintosh has me learning it&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris</title>
		<link>http://pmougin.wordpress.com/2008/03/13/some-nice-features-of-the-objective-c-language/#comment-113</link>
		<dc:creator>Chris</dc:creator>
		<pubDate>Mon, 17 Mar 2008 15:18:32 +0000</pubDate>
		<guid isPermaLink="false">http://pmougin.wordpress.com/?p=143#comment-113</guid>
		<description>Coming from a Delphi, Visual Basic and now C# background, I find Objective-C to be frustrating.

I started programming Windows with C and then C++ and I hated it.  To many cryptic lines of code.  It took a lot of work just to be able to read code samples.  Even with that background, I am finding that learning Objective-C involves a pretty steep learning curve.

On the other hand, I believe that my frustration is psychological.  I am used to what I am used to.  Programmers get comfortable with what they know and when something pops up that's a bit different from what they know, then the initial reaction is that it sucks.

When I first saw how methods are declared, I asked "Why can't they just use the syntax I'm used to?".  But now I realize that named parameters (that's what I call them right now) are pretty nice.  

The bottom line is that it's just going to take some time to get used to the differences.  I keep saying to myself "Everything in life is a tradeoff.  If you want to write software for the iPhone, you'll just have to suck it up and do it instead of complaining."</description>
		<content:encoded><![CDATA[<p>Coming from a Delphi, Visual Basic and now C# background, I find Objective-C to be frustrating.</p>
<p>I started programming Windows with C and then C++ and I hated it.  To many cryptic lines of code.  It took a lot of work just to be able to read code samples.  Even with that background, I am finding that learning Objective-C involves a pretty steep learning curve.</p>
<p>On the other hand, I believe that my frustration is psychological.  I am used to what I am used to.  Programmers get comfortable with what they know and when something pops up that&#8217;s a bit different from what they know, then the initial reaction is that it sucks.</p>
<p>When I first saw how methods are declared, I asked &#8220;Why can&#8217;t they just use the syntax I&#8217;m used to?&#8221;.  But now I realize that named parameters (that&#8217;s what I call them right now) are pretty nice.  </p>
<p>The bottom line is that it&#8217;s just going to take some time to get used to the differences.  I keep saying to myself &#8220;Everything in life is a tradeoff.  If you want to write software for the iPhone, you&#8217;ll just have to suck it up and do it instead of complaining.&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
