<?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: iPhone from A Game Developer&#8217;s Perspective: Objective C</title>
	<atom:link href="http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/feed" rel="self" type="application/rss+xml" />
	<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c</link>
	<description>Living the indie life</description>
	<lastBuildDate>Thu, 17 May 2012 17:38:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Jacopo Santoni</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-18437</link>
		<dc:creator>Jacopo Santoni</dc:creator>
		<pubDate>Sat, 21 Apr 2012 04:31:00 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-18437</guid>
		<description>Objective-C is great, the only real problem that I had during my iPhone developing experience is performance. I&#039;m used to develop in C/C++ but when I started developing on the iPhone I thought that I wanted to give Objective-C a chance (even because it&#039;s absolutely needed for their API). Really easy to learn and to use, but when I started translating some bottlenecks from Objective-C to C++ with STL I realized that things were really slow. And with slow I mean like 10 times slower, comparing the same identical code, without using ObjC collections but STL and without using the creepy objc_msgSend (ok, not so creepy, but called many times).

I like ease of development, but I do like elegant and performant code so I preferred to switch back to C++ as much as possible. Specific things are really clumsy in my opinion, especially regarding game development in which you may require to work with many small C structs and you are forced to wrap them into NSValues to use collections. This, as well as many little things that just made source code less enjoyable from my personal point of view.

Then you know, everyone has a different taste, but since source code is like a book, if I don&#039;t like the language I&#039;m using and I can change it, why not? I want to be pleased when I read it. :)</description>
		<content:encoded><![CDATA[<p>Objective-C is great, the only real problem that I had during my iPhone developing experience is performance. I&#8217;m used to develop in C/C++ but when I started developing on the iPhone I thought that I wanted to give Objective-C a chance (even because it&#8217;s absolutely needed for their API). Really easy to learn and to use, but when I started translating some bottlenecks from Objective-C to C++ with STL I realized that things were really slow. And with slow I mean like 10 times slower, comparing the same identical code, without using ObjC collections but STL and without using the creepy objc_msgSend (ok, not so creepy, but called many times).</p>
<p>I like ease of development, but I do like elegant and performant code so I preferred to switch back to C++ as much as possible. Specific things are really clumsy in my opinion, especially regarding game development in which you may require to work with many small C structs and you are forced to wrap them into NSValues to use collections. This, as well as many little things that just made source code less enjoyable from my personal point of view.</p>
<p>Then you know, everyone has a different taste, but since source code is like a book, if I don&#8217;t like the language I&#8217;m using and I can change it, why not? I want to be pleased when I read it. <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kim</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-18436</link>
		<dc:creator>Kim</dc:creator>
		<pubDate>Wed, 18 Apr 2012 07:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-18436</guid>
		<description>I think Objective-C allows compatibility to C++ for its conveniency, not for serious developing with mutation in its part.
As my experience of 23 years in C++, all things follows the same.

I am sure that Objective-C would dominate at some extent over C++/C or others in long term as C++ had done during 23 years!

For my case recently I had given up using C++ but Objective-C.   If I need other than Objective-C, I would go for C# rather than C++!</description>
		<content:encoded><![CDATA[<p>I think Objective-C allows compatibility to C++ for its conveniency, not for serious developing with mutation in its part.<br />
As my experience of 23 years in C++, all things follows the same.</p>
<p>I am sure that Objective-C would dominate at some extent over C++/C or others in long term as C++ had done during 23 years!</p>
<p>For my case recently I had given up using C++ but Objective-C.   If I need other than Objective-C, I would go for C# rather than C++!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-833</link>
		<dc:creator>David</dc:creator>
		<pubDate>Thu, 15 Jan 2009 21:16:55 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-833</guid>
		<description>For those who are interested in iPhone development using Objective C++, there&#039;s an article on &lt;a href=&quot;http://www.savoysoftware.com/blog&quot; rel=&quot;nofollow&quot;&gt;our blog&lt;/a&gt; about this topic. It got some pretty interesting numbers concerning performance of Objective C versus C++ and iPhone versus desktop computers.</description>
		<content:encoded><![CDATA[<p>For those who are interested in iPhone development using Objective C++, there&#8217;s an article on <a href="http://www.savoysoftware.com/blog" rel="nofollow">our blog</a> about this topic. It got some pretty interesting numbers concerning performance of Objective C versus C++ and iPhone versus desktop computers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Serban Porumbescu</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-773</link>
		<dc:creator>Serban Porumbescu</dc:creator>
		<pubDate>Thu, 08 Jan 2009 23:38:41 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-773</guid>
		<description>I&#039;m also new to the iPhone and Objective-C development.  The approach I&#039;ve taken thus far minimizes the amount of interaction between my ObjC and C++ code.  As you mentioned, C++ constructors are not called for C++ member variables inside of ObjC classes and require using pointers and new (I found this annoying as well).  If you limit your mixing of C++ and ObjC to allocating C++ member variables via new and calling member functions via those pointers, the only files that need the .mm extension are the Objective-C (or more correctly, Objective-C++) implementation files that include C++ header files (directly or indirectly via an ObjC header).  This makes porting existing code a bit easier (no fiddling with file extensions, just focus on learning enough ObjC to create a layer to interface with the iPhone and OpenGL ES changes).</description>
		<content:encoded><![CDATA[<p>I&#8217;m also new to the iPhone and Objective-C development.  The approach I&#8217;ve taken thus far minimizes the amount of interaction between my ObjC and C++ code.  As you mentioned, C++ constructors are not called for C++ member variables inside of ObjC classes and require using pointers and new (I found this annoying as well).  If you limit your mixing of C++ and ObjC to allocating C++ member variables via new and calling member functions via those pointers, the only files that need the .mm extension are the Objective-C (or more correctly, Objective-C++) implementation files that include C++ header files (directly or indirectly via an ObjC header).  This makes porting existing code a bit easier (no fiddling with file extensions, just focus on learning enough ObjC to create a layer to interface with the iPhone and OpenGL ES changes).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-767</link>
		<dc:creator>Noel</dc:creator>
		<pubDate>Tue, 06 Jan 2009 17:12:51 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-767</guid>
		<description>Thanks, Ramses. That&#039;s a pretty cool trick. It sure beats changing all file extensions to mm!</description>
		<content:encoded><![CDATA[<p>Thanks, Ramses. That&#8217;s a pretty cool trick. It sure beats changing all file extensions to mm!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ramses</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-765</link>
		<dc:creator>Ramses</dc:creator>
		<pubDate>Tue, 06 Jan 2009 15:14:31 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-765</guid>
		<description>Hi Noel,

You might want to take a look at http://developer.apple.com/iphone/library/codinghowtos/Tools/index.html#GENERAL-ENABLE_OBJECTIVE_C___COMPILATION to enable objective-c++ compilation and keep your cpp file extension (especially when writing cross-platform code). But pay attention to a typo in this FAQ... You will have to use &quot;-x objective-c++&quot; instead of the mentioned &quot;-x objectiveC++&quot;.</description>
		<content:encoded><![CDATA[<p>Hi Noel,</p>
<p>You might want to take a look at <a href="http://developer.apple.com/iphone/library/codinghowtos/Tools/index.html#GENERAL-ENABLE_OBJECTIVE_C___COMPILATION" rel="nofollow">http://developer.apple.com/iphone/library/codinghowtos/Tools/index.html#GENERAL-ENABLE_OBJECTIVE_C___COMPILATION</a> to enable objective-c++ compilation and keep your cpp file extension (especially when writing cross-platform code). But pay attention to a typo in this FAQ&#8230; You will have to use &#8220;-x objective-c++&#8221; instead of the mentioned &#8220;-x objectiveC++&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frederic</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-717</link>
		<dc:creator>Frederic</dc:creator>
		<pubDate>Wed, 31 Dec 2008 20:18:16 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-717</guid>
		<description>As a programmer of non-performance but critical tools, that need to be used by quite a bunch of people or servers for several years, I care very much about my stuff being as stable (and easy to maintain) as possible. In this respect, anything based on C or C++ sounds like potential trouble to me, it&#039;s just way too easy to screw up with these languages.</description>
		<content:encoded><![CDATA[<p>As a programmer of non-performance but critical tools, that need to be used by quite a bunch of people or servers for several years, I care very much about my stuff being as stable (and easy to maintain) as possible. In this respect, anything based on C or C++ sounds like potential trouble to me, it&#8217;s just way too easy to screw up with these languages.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-716</link>
		<dc:creator>Noel</dc:creator>
		<pubDate>Wed, 31 Dec 2008 18:39:12 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-716</guid>
		<description>Charles, you&#039;re right about C# and Objective C having different goals and needs. I was just speaking from my point of view as a user of both languages. Frankly, for 99% of my use, I don&#039;t care that C# runs inside a VM. I&#039;m not sure how many game developers to. I just use it as a higher-level language for rapid development of non-performance critical tools. From that perspective, Objective C and C# start looking very similar.</description>
		<content:encoded><![CDATA[<p>Charles, you&#8217;re right about C# and Objective C having different goals and needs. I was just speaking from my point of view as a user of both languages. Frankly, for 99% of my use, I don&#8217;t care that C# runs inside a VM. I&#8217;m not sure how many game developers to. I just use it as a higher-level language for rapid development of non-performance critical tools. From that perspective, Objective C and C# start looking very similar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Nicholson</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-713</link>
		<dc:creator>Charles Nicholson</dc:creator>
		<pubDate>Tue, 30 Dec 2008 19:33:34 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-713</guid>
		<description>It&#039;s like you&#039;re -begging- me to chime in about Obj-C vs C#!

Microsoft didn&#039;t prefer to embrace/extend/extinguish Obj-C over C# for the same reason that Sun didn&#039;t prefer Obj-C over Java.  They&#039;re fundamentally different languages that fill different niches and serve different purposes.

Obj-C (and Obj-C++), because they are supersets of C and C++, are down-to-the-metal systems programming languages that allow for raw memory access, unverifiable code, and all the  things that let you blow your legs off in the quest for performance.  They&#039;re great languages, don&#039;t misunderstand me, but the &quot;Obj-&quot; parts (interfaces, protocols, selectors, messages, the sort-of introspection) of them are a relatively lightweight architecture that runs on a relatively lightweight runtime on top of C/C++.  You compile them down to platform-specific executables that can only run on the specified target architecture, and they yield static binaries.

C# and Java are higher-level languages that revoke raw memory access and run fully sandboxed inside VMs.  Executables come in platform-independent compiled bytecode packages, they are verifiable, much easier to prove secure, and have significantly more powerful reflection/introspection services.  A few basic caveats notwithstanding, programmers generally only consider algorithmic complexity when optimizing C#/Java programs.  The entire &quot;power-user&quot; layer of C/C++ programming is revoked in exchange for simpler syntax, less bookkeeping, and generally terser programs.

Obj-C and Obj-C++ can&#039;t be transformed to meet this goal without removing the C/C++ parts of them that allow for raw memory access.  They&#039;re not &quot;bad&quot; languages, I&#039;m not sure that&#039;s even a well-formed statement, they just serve fundamentally different purposes.</description>
		<content:encoded><![CDATA[<p>It&#8217;s like you&#8217;re -begging- me to chime in about Obj-C vs C#!</p>
<p>Microsoft didn&#8217;t prefer to embrace/extend/extinguish Obj-C over C# for the same reason that Sun didn&#8217;t prefer Obj-C over Java.  They&#8217;re fundamentally different languages that fill different niches and serve different purposes.</p>
<p>Obj-C (and Obj-C++), because they are supersets of C and C++, are down-to-the-metal systems programming languages that allow for raw memory access, unverifiable code, and all the  things that let you blow your legs off in the quest for performance.  They&#8217;re great languages, don&#8217;t misunderstand me, but the &#8220;Obj-&#8221; parts (interfaces, protocols, selectors, messages, the sort-of introspection) of them are a relatively lightweight architecture that runs on a relatively lightweight runtime on top of C/C++.  You compile them down to platform-specific executables that can only run on the specified target architecture, and they yield static binaries.</p>
<p>C# and Java are higher-level languages that revoke raw memory access and run fully sandboxed inside VMs.  Executables come in platform-independent compiled bytecode packages, they are verifiable, much easier to prove secure, and have significantly more powerful reflection/introspection services.  A few basic caveats notwithstanding, programmers generally only consider algorithmic complexity when optimizing C#/Java programs.  The entire &#8220;power-user&#8221; layer of C/C++ programming is revoked in exchange for simpler syntax, less bookkeeping, and generally terser programs.</p>
<p>Obj-C and Obj-C++ can&#8217;t be transformed to meet this goal without removing the C/C++ parts of them that allow for raw memory access.  They&#8217;re not &#8220;bad&#8221; languages, I&#8217;m not sure that&#8217;s even a well-formed statement, they just serve fundamentally different purposes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Muhammad Ishaq</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-712</link>
		<dc:creator>Muhammad Ishaq</dc:creator>
		<pubDate>Tue, 30 Dec 2008 16:08:20 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-712</guid>
		<description>&quot;I wouldn’t dream of doing anything complicated without TDD.&quot;

Of course you won&#039;t, I never said that, am just excited to see when you start doing it.</description>
		<content:encoded><![CDATA[<p>&#8220;I wouldn’t dream of doing anything complicated without TDD.&#8221;</p>
<p>Of course you won&#8217;t, I never said that, am just excited to see when you start doing it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noel</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-711</link>
		<dc:creator>Noel</dc:creator>
		<pubDate>Tue, 30 Dec 2008 14:46:31 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-711</guid>
		<description>Oh, don&#039;t get me wrong. I *am* doing TDD on the iPhone. I wouldn&#039;t dream of doing anything complicated without TDD. It&#039;s just that I&#039;m not using it for the Objective C part. I&#039;m sure that as I use more and more Objective C, I&#039;ll start doing TDD there as well, but not yet.</description>
		<content:encoded><![CDATA[<p>Oh, don&#8217;t get me wrong. I *am* doing TDD on the iPhone. I wouldn&#8217;t dream of doing anything complicated without TDD. It&#8217;s just that I&#8217;m not using it for the Objective C part. I&#8217;m sure that as I use more and more Objective C, I&#8217;ll start doing TDD there as well, but not yet.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Muhammad Ishaq</title>
		<link>http://gamesfromwithin.com/iphone-from-a-game-developers-perspective-objective-c/comment-page-1#comment-709</link>
		<dc:creator>Muhammad Ishaq</dc:creator>
		<pubDate>Tue, 30 Dec 2008 09:56:47 +0000</pubDate>
		<guid isPermaLink="false">http://gamesfromwithin.com/?p=206#comment-709</guid>
		<description>I have been a fan of your writings since you were still at High Moon, I could never actually apply the knowledge gained here (yeah, sure, call me lazy :-) ) because I have yet to get my break in game development industry (have been coding all sorts of other stuff ;-) ), but it&#039;s great to see you developing on iPhone. I would be looking forward to how you do TDD on iPhone and other agile practices.

As for TDD, A framework that I saw frequently in google queries is GTM (http://code.google.com/p/google-toolbox-for-mac/) and RSpec (it&#039;s in Ruby, I don&#039;t think Unit Testing Framework should require one to learn a different language). I just downloaded GTM and its own &quot;All Unit Tests&quot; target takes 6+ seconds on this Mac Mini (can&#039;t afford a better machine). Would really be interested in what framework you choose and how you keep build times low.

BTW, thanks for all that raving on Objective C, it encouraged me to actually go ahead and really learn it (I started iPhone a few months ago and have been coding by blind instinct ;-) )

Thanks for the great read.

--
MI</description>
		<content:encoded><![CDATA[<p>I have been a fan of your writings since you were still at High Moon, I could never actually apply the knowledge gained here (yeah, sure, call me lazy <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) because I have yet to get my break in game development industry (have been coding all sorts of other stuff <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ), but it&#8217;s great to see you developing on iPhone. I would be looking forward to how you do TDD on iPhone and other agile practices.</p>
<p>As for TDD, A framework that I saw frequently in google queries is GTM (<a href="http://code.google.com/p/google-toolbox-for-mac/" rel="nofollow">http://code.google.com/p/google-toolbox-for-mac/</a>) and RSpec (it&#8217;s in Ruby, I don&#8217;t think Unit Testing Framework should require one to learn a different language). I just downloaded GTM and its own &#8220;All Unit Tests&#8221; target takes 6+ seconds on this Mac Mini (can&#8217;t afford a better machine). Would really be interested in what framework you choose and how you keep build times low.</p>
<p>BTW, thanks for all that raving on Objective C, it encouraged me to actually go ahead and really learn it (I started iPhone a few months ago and have been coding by blind instinct <img src='http://gamesfromwithin.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>Thanks for the great read.</p>
<p>&#8211;<br />
MI</p>
]]></content:encoded>
	</item>
</channel>
</rss>

