<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: CTGradient code bloat</title>
	<link>http://lipidity.com/apple/ctgradient-code-bloat/</link>
	<description>Despotic Development</description>
	<pubDate>Mon, 08 Sep 2008 08:40:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Jonathan</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-46184</link>
		<dc:creator>Jonathan</dc:creator>
		<pubDate>Wed, 09 Jan 2008 20:22:37 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-46184</guid>
		<description>&lt;p&gt;No doubt, as a non-developer end user, this is probably gross naivety on my part but the take home message of the original article that I am getting is not that you should spend hours optimising third party code just for the sake of it, but rather it is if you actually knew what you were doing in the first place you would have realised that you shouldn't even be using "CTGradient" for this particular job. The fact that the theoretical "you" is using it in this instance just demonstrates that they &lt;em&gt;don't know how to develop programmes properly&lt;/em&gt;. The real code optimisation here is to use the correct (and simplest) tool for the job and not to use the wrong one just because it is the easy thing to do.&lt;/p&gt;

&lt;p&gt;That this has apparently passed so many people posting here by is quite breathtaking.&lt;/p&gt;

&lt;p&gt;Or perhaps it is just me?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>No doubt, as a non-developer end user, this is probably gross naivety on my part but the take home message of the original article that I am getting is not that you should spend hours optimising third party code just for the sake of it, but rather it is if you actually knew what you were doing in the first place you would have realised that you shouldn&#8217;t even be using &#8220;CTGradient&#8221; for this particular job. The fact that the theoretical &#8220;you&#8221; is using it in this instance just demonstrates that they <em>don&#8217;t know how to develop programmes properly</em>. The real code optimisation here is to use the correct (and simplest) tool for the job and not to use the wrong one just because it is the easy thing to do.</p>
<p>That this has apparently passed so many people posting here by is quite breathtaking.</p>
<p>Or perhaps it is just me?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harley</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-45596</link>
		<dc:creator>Harley</dc:creator>
		<pubDate>Fri, 04 Jan 2008 00:39:41 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-45596</guid>
		<description>&lt;p&gt;Jon Hess, you're only looking at the reduction in binary size but you neglect to look at the speed and memory improvements which are &lt;em&gt;phenomenal&lt;/em&gt;.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jon Hess, you&#8217;re only looking at the reduction in binary size but you neglect to look at the speed and memory improvements which are <em>phenomenal</em>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jon Hess</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-45551</link>
		<dc:creator>Jon Hess</dc:creator>
		<pubDate>Thu, 03 Jan 2008 10:22:12 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-45551</guid>
		<description>&lt;p&gt;I think the main complaint here is that you took a bunch of code and made it smaller mostly by making it do less. Of course you succeeded at making it smaller, but it lost functionality. You may not need that functionality now, but if you need it later, now you're gonna have to go hammer on this class again.&lt;/p&gt;

&lt;p&gt;Second, how much disk space does 1,200 lines of code make to the binary anyway? As a consumer with a 100+ GB hard drive and cable internet connection, I would prefer you spent the time developing features and trimming actual heap space used by your app. I couldn't care less about the static binary size. Hopefully you'll just use an order file, which is a lot simpler, and keeps most of this code from ever being paged in.  If your not already familiar with them see 'man ld' and read the -order_file section for information about order files.&lt;/p&gt;

&lt;p&gt;All in all, it's an optimization for the customizer, and de-optimization for the developer. You're time is really important to us customers, we want you to spend it on great features. I bet there was a better way to spend that time that would have yielded even better results.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think the main complaint here is that you took a bunch of code and made it smaller mostly by making it do less. Of course you succeeded at making it smaller, but it lost functionality. You may not need that functionality now, but if you need it later, now you&#8217;re gonna have to go hammer on this class again.</p>
<p>Second, how much disk space does 1,200 lines of code make to the binary anyway? As a consumer with a 100+ GB hard drive and cable internet connection, I would prefer you spent the time developing features and trimming actual heap space used by your app. I couldn&#8217;t care less about the static binary size. Hopefully you&#8217;ll just use an order file, which is a lot simpler, and keeps most of this code from ever being paged in.  If your not already familiar with them see &#8216;man ld&#8217; and read the -order_file section for information about order files.</p>
<p>All in all, it&#8217;s an optimization for the customizer, and de-optimization for the developer. You&#8217;re time is really important to us customers, we want you to spend it on great features. I bet there was a better way to spend that time that would have yielded even better results.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J.</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40465</link>
		<dc:creator>J.</dc:creator>
		<pubDate>Wed, 28 Nov 2007 21:30:48 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40465</guid>
		<description>&lt;blockquote&gt;
  &lt;blockquote&gt;
    &lt;p&gt;Oh, relly? I thought it was about developers “not having time” to optimize their code sufficiently.”&lt;/p&gt;
  &lt;/blockquote&gt;
  
  &lt;p&gt;No, it’s about developers not having time to reduce the line count of 3rd party code that they use for the sole reason that they don’t want to have to deal with writing said code themselves.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Any more of that and my head will explode. I don't know what you're saying about line count. Sure he does that. But look at the reduction in computation, the reduced looping, reduced memory usage.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Nobody is arguing that fewer lines of code is a bad thing, but only when doing the same thing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;???&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I could reduce OS X to a few 100 lines of code&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm sorry. I didn't realize we were dealing with a genius here.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;What has been done on CTGradient isn’t simple optimisation and reduction of code, but removal of functionality to make it more specialised to a single application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;NO. Read the code. If you understand C, you can plainly see that the code &lt;em&gt;will&lt;/em&gt; run &lt;em&gt;faster&lt;/em&gt; and use less memory. The only logical explanatations for your lack of understanding are a) you didn't read the code or b) you don't know C.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I suggest you go away and release some software and come back when you have the experience to back up your argument.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ha! How old are you, boy?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
<blockquote>
<p>Oh, relly? I thought it was about developers “not having time” to optimize their code sufficiently.”</p>
</blockquote>
<p>No, it’s about developers not having time to reduce the line count of 3rd party code that they use for the sole reason that they don’t want to have to deal with writing said code themselves.</p>
</blockquote>
<p>Any more of that and my head will explode. I don&#8217;t know what you&#8217;re saying about line count. Sure he does that. But look at the reduction in computation, the reduced looping, reduced memory usage.</p>
<blockquote>
<p>Nobody is arguing that fewer lines of code is a bad thing, but only when doing the same thing.</p>
</blockquote>
<p>???</p>
<blockquote>
<p>I could reduce OS X to a few 100 lines of code</p>
</blockquote>
<p>I&#8217;m sorry. I didn&#8217;t realize we were dealing with a genius here.</p>
<blockquote>
<p>What has been done on CTGradient isn’t simple optimisation and reduction of code, but removal of functionality to make it more specialised to a single application.</p>
</blockquote>
<p>NO. Read the code. If you understand C, you can plainly see that the code <em>will</em> run <em>faster</em> and use less memory. The only logical explanatations for your lack of understanding are a) you didn&#8217;t read the code or b) you don&#8217;t know C.</p>
<blockquote>
<p>I suggest you go away and release some software and come back when you have the experience to back up your argument.</p>
</blockquote>
<p>Ha! How old are you, boy?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Pilkington</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40419</link>
		<dc:creator>Martin Pilkington</dc:creator>
		<pubDate>Wed, 28 Nov 2007 12:43:08 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40419</guid>
		<description>&lt;p&gt;"Oh, relly? I thought it was about developers “not having time” to optimize their code sufficiently."&lt;/p&gt;

&lt;p&gt;No, it's about developers not having time to reduce the line count of 3rd party code that they use for the sole reason that they don't want to have to deal with writing said code themselves.&lt;/p&gt;

&lt;p&gt;"How’s that a difference in philosophy? Anyway, CGShading directly gets it in one file rather than two for CTGradient. And Wil’s saying that having fewer lines of code is a good thing too."&lt;/p&gt;

&lt;p&gt;Nobody is arguing that fewer lines of code is a bad thing, but only when doing the same thing. I could reduce OS X to a few 100 lines of code but it wouldn't do anything. What has been done on CTGradient isn't simple optimisation and reduction of code, but removal of functionality to make it more specialised to a single application.&lt;/p&gt;

&lt;p&gt;"Do you still not get it? Read it once more. Read what he says."&lt;/p&gt;

&lt;p&gt;Yes, I have read it and understood it and as someone who writes, supports, markets and tests their own applications I understand the context under which Wil says you should optimise. For example, I recently went an optimised my syntax highlighting class in one of my applications. I managed to significantly reduce the number of lines of code, increase readability and speed it up. Did I do this because it took my fancy? No, I did it because it was seriously slowing down my application. Therefore it is was a priority. I suggest you go away and release some software and come back when you have the experience to back up your argument.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&#8220;Oh, relly? I thought it was about developers “not having time” to optimize their code sufficiently.&#8221;</p>
<p>No, it&#8217;s about developers not having time to reduce the line count of 3rd party code that they use for the sole reason that they don&#8217;t want to have to deal with writing said code themselves.</p>
<p>&#8220;How’s that a difference in philosophy? Anyway, CGShading directly gets it in one file rather than two for CTGradient. And Wil’s saying that having fewer lines of code is a good thing too.&#8221;</p>
<p>Nobody is arguing that fewer lines of code is a bad thing, but only when doing the same thing. I could reduce OS X to a few 100 lines of code but it wouldn&#8217;t do anything. What has been done on CTGradient isn&#8217;t simple optimisation and reduction of code, but removal of functionality to make it more specialised to a single application.</p>
<p>&#8220;Do you still not get it? Read it once more. Read what he says.&#8221;</p>
<p>Yes, I have read it and understood it and as someone who writes, supports, markets and tests their own applications I understand the context under which Wil says you should optimise. For example, I recently went an optimised my syntax highlighting class in one of my applications. I managed to significantly reduce the number of lines of code, increase readability and speed it up. Did I do this because it took my fancy? No, I did it because it was seriously slowing down my application. Therefore it is was a priority. I suggest you go away and release some software and come back when you have the experience to back up your argument.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J.</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40418</link>
		<dc:creator>J.</dc:creator>
		<pubDate>Wed, 28 Nov 2007 12:16:15 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40418</guid>
		<description>&lt;p&gt;I think we can boil it down to two basic facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CTGradient and CGShading both take a similar amount of time and "effort" to implement.&lt;/li&gt;
&lt;li&gt;Using CGShading directly has great performance benefits over CTGradient.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the logical choice would be to use CGShading, no?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think we can boil it down to two basic facts:</p>
<ul>
<li>CTGradient and CGShading both take a similar amount of time and &#8220;effort&#8221; to implement.</li>
<li>Using CGShading directly has great performance benefits over CTGradient.</li>
</ul>
<p>So the logical choice would be to use CGShading, no?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J.</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40416</link>
		<dc:creator>J.</dc:creator>
		<pubDate>Wed, 28 Nov 2007 12:09:50 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40416</guid>
		<description>&lt;blockquote&gt;
  &lt;p&gt;The argument was against developers being bad if they don’t remove all the code they don’t need from a 3rd party class.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Oh, relly? I thought it was about developers "not having time" to optimize their code sufficiently.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;And note the difference in optimisation philosophies behind the two posts: "And having fewer files in your project is EVEN BETTER than having fewer lines of code in a single file."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;How's that a difference in philosophy? Anyway, CGShading directly gets it in one file rather than two for CTGradient. And Wil's saying that having fewer lines of code is a good thing too.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;And yes, what he says and what he says while doing it are identical. They are not however identical to this post. Does this post take someone’s specific code that uses images and replace it with general code that doesn’t use images but does it all in code? No.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Do you still not get it? Read it once more. Read what he &lt;strong&gt;says&lt;/strong&gt;.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<blockquote>
<p>The argument was against developers being bad if they don’t remove all the code they don’t need from a 3rd party class.</p>
</blockquote>
<p>Oh, relly? I thought it was about developers &#8220;not having time&#8221; to optimize their code sufficiently.</p>
<blockquote>
<p>And note the difference in optimisation philosophies behind the two posts: &#8220;And having fewer files in your project is EVEN BETTER than having fewer lines of code in a single file.&#8221;</p>
</blockquote>
<p>How&#8217;s that a difference in philosophy? Anyway, CGShading directly gets it in one file rather than two for CTGradient. And Wil&#8217;s saying that having fewer lines of code is a good thing too.</p>
<blockquote>
<p>And yes, what he says and what he says while doing it are identical. They are not however identical to this post. Does this post take someone’s specific code that uses images and replace it with general code that doesn’t use images but does it all in code? No.</p>
</blockquote>
<p>Do you still not get it? Read it once more. Read what he <strong>says</strong>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Pilkington</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40415</link>
		<dc:creator>Martin Pilkington</dc:creator>
		<pubDate>Wed, 28 Nov 2007 11:49:02 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40415</guid>
		<description>&lt;p&gt;@J: Nobody every made the argument against optimising code. The argument was against developers being bad if they don't remove all the code they don't need from a 3rd party class. And yes, what he says and what he says while doing it are identical. They are not however identical to this post. Does this post take someone's specific code that uses images and replace it with general code that doesn't use images but does it all in code? No.&lt;/p&gt;

&lt;p&gt;And note the difference in optimisation philosophies behind the two posts: "And having fewer files in your project is EVEN BETTER than having fewer lines of code in a single file."&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@J: Nobody every made the argument against optimising code. The argument was against developers being bad if they don&#8217;t remove all the code they don&#8217;t need from a 3rd party class. And yes, what he says and what he says while doing it are identical. They are not however identical to this post. Does this post take someone&#8217;s specific code that uses images and replace it with general code that doesn&#8217;t use images but does it all in code? No.</p>
<p>And note the difference in optimisation philosophies behind the two posts: &#8220;And having fewer files in your project is EVEN BETTER than having fewer lines of code in a single file.&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: J.</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40413</link>
		<dc:creator>J.</dc:creator>
		<pubDate>Wed, 28 Nov 2007 11:22:19 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40413</guid>
		<description>&lt;p&gt;That's what he's &lt;em&gt;doing&lt;/em&gt;. Read what he &lt;em&gt;says&lt;/em&gt; while doing it. Identical.&lt;/p&gt;

&lt;p&gt;That's why you're still a padawan.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>That&#8217;s what he&#8217;s <em>doing</em>. Read what he <em>says</em> while doing it. Identical.</p>
<p>That&#8217;s why you&#8217;re still a padawan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Pilkington</title>
		<link>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40411</link>
		<dc:creator>Martin Pilkington</dc:creator>
		<pubDate>Wed, 28 Nov 2007 10:55:03 +0000</pubDate>
		<guid>http://lipidity.com/apple/ctgradient-code-bloat/#comment-40411</guid>
		<description>&lt;p&gt;@J: He doesn't say the same things. Have you actually read that post? He increases the number of lines of code and isn't taking code that creates a gradient and improving it. He's taking code that uses an image and swapping it for code that uses a gradient, completely different to what happened here&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@J: He doesn&#8217;t say the same things. Have you actually read that post? He increases the number of lines of code and isn&#8217;t taking code that creates a gradient and improving it. He&#8217;s taking code that uses an image and swapping it for code that uses a gradient, completely different to what happened here</p>
]]></content:encoded>
	</item>
</channel>
</rss>
