<?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: What&#8217;s in a Name?</title>
	<atom:link href="http://www.red-sweater.com/blog/127/whats-in-a-name/feed" rel="self" type="application/rss+xml" />
	<link>http://www.red-sweater.com/blog/127/whats-in-a-name</link>
	<description>Mac &#38; Technology Writings by Daniel Jalkut</description>
	<pubDate>Fri,  8 Aug 2008 01:21:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Daniel Jalkut</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3951</link>
		<dc:creator>Daniel Jalkut</dc:creator>
		<pubDate>Fri, 05 May 2006 14:15:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3951</guid>
		<description>Yeah it seems the refactoring tools are really a missing bunch on Mac OS X.  Perhaps this is a good business opportunity for somebody!</description>
		<content:encoded><![CDATA[<p>Yeah it seems the refactoring tools are really a missing bunch on Mac OS X.  Perhaps this is a good business opportunity for somebody!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ebob</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3688</link>
		<dc:creator>ebob</dc:creator>
		<pubDate>Tue, 02 May 2006 17:02:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3688</guid>
		<description>I tend to get stuck on names only when a critical design is involved.  That gives me loads of time to come up with a name for the class I'm designing on paper (or in Omni Graffle or whatever) before I wrote code.  For less important classes I just pick a name that seems reasonable so I can get along.  My stressing about names is reduced (and I do stress about it, too) because I have no problem with making massive changes to rename classes, methods and variables.  The only time it becomes critical for me is when I have written code coworkers are interacting with often, and even then I'll rename, often when I refactor other unrelated items (renaming is a simple kind of refactoring, I hope)  A good refactoring tool will make renaming even easier than global search.  I don't know of any such tool for use within Xcode, nor for Objective C.  There ought to be some free-standing tools for C++.</description>
		<content:encoded><![CDATA[<p>I tend to get stuck on names only when a critical design is involved.  That gives me loads of time to come up with a name for the class I&#8217;m designing on paper (or in Omni Graffle or whatever) before I wrote code.  For less important classes I just pick a name that seems reasonable so I can get along.  My stressing about names is reduced (and I do stress about it, too) because I have no problem with making massive changes to rename classes, methods and variables.  The only time it becomes critical for me is when I have written code coworkers are interacting with often, and even then I&#8217;ll rename, often when I refactor other unrelated items (renaming is a simple kind of refactoring, I hope)  A good refactoring tool will make renaming even easier than global search.  I don&#8217;t know of any such tool for use within Xcode, nor for Objective C.  There ought to be some free-standing tools for C++.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lee</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3488</link>
		<dc:creator>Lee</dc:creator>
		<pubDate>Sun, 30 Apr 2006 13:04:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3488</guid>
		<description>I wouldn't worry about commenting a class that you think the class name might be renamed in the future. I'd spend time to think about what you are going to name the class, but if you cannot get the perfect name, use the 2nd best and move on. Usually, even the names that you expect to be perfect might in the end be renamed as you learned more about the innards of your app. I like to expect that the names of all my entities are subject to change and that doing so is perfectly natural and "the right thing to do".

I think what is most important is that you keep your design flexible to allow yourself the ability to change the names of classes, methods, variables, etc as it becomes appropriate. Having the right tools to do this (like subversion) as well as good refactoring tools definately helps. 

Is there a refactoring tool for Xcode?</description>
		<content:encoded><![CDATA[<p>I wouldn&#8217;t worry about commenting a class that you think the class name might be renamed in the future. I&#8217;d spend time to think about what you are going to name the class, but if you cannot get the perfect name, use the 2nd best and move on. Usually, even the names that you expect to be perfect might in the end be renamed as you learned more about the innards of your app. I like to expect that the names of all my entities are subject to change and that doing so is perfectly natural and &#8220;the right thing to do&#8221;.</p>
<p>I think what is most important is that you keep your design flexible to allow yourself the ability to change the names of classes, methods, variables, etc as it becomes appropriate. Having the right tools to do this (like subversion) as well as good refactoring tools definately helps. </p>
<p>Is there a refactoring tool for Xcode?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Jalkut</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3448</link>
		<dc:creator>Daniel Jalkut</dc:creator>
		<pubDate>Sun, 30 Apr 2006 05:27:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3448</guid>
		<description>Taybin: Yeah - to be honest as soon as I posted this entry I had second thoughts about the perhaps dramatic advice to name things super-strange as a marker. I still kind of like the pure honesty of it, but I agree that it's probably not very useful in a large group environment.  I would probably do it in my own code but not in a shared repository. Your suggestion to just leave self-effacing comments nearby is probably a better choice.

Andy: An interesting point - connecting the naming conundrum to googlability. It's true that what you identify is yet another christening problem we face as developers. NAMES! Arrrrr!</description>
		<content:encoded><![CDATA[<p>Taybin: Yeah - to be honest as soon as I posted this entry I had second thoughts about the perhaps dramatic advice to name things super-strange as a marker. I still kind of like the pure honesty of it, but I agree that it&#8217;s probably not very useful in a large group environment.  I would probably do it in my own code but not in a shared repository. Your suggestion to just leave self-effacing comments nearby is probably a better choice.</p>
<p>Andy: An interesting point - connecting the naming conundrum to googlability. It&#8217;s true that what you identify is yet another christening problem we face as developers. NAMES! Arrrrr!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Lee</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3446</link>
		<dc:creator>Andy Lee</dc:creator>
		<pubDate>Sun, 30 Apr 2006 04:30:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3446</guid>
		<description>I agonize over class, method, ivar, and application names all the time.  To me this goes along with having, or at least working toward, a crisp idea of what I'm trying to accomplish and how I'm accomplishing it.  Naming reflects how well my logic is factored and therefore how conveniently it can be subclassed.  And it affects how clear and consistent the documentation will be.  These issues are important to other programmers who will read my code (and I treat my future self as an "other programmer").

I want to be able to do global search-and-replace operations when I decide to rename something.  Even without replace, global search can be useful.  So I use naming conventions like two-letter prefixes and typographic conventions like leading underscores.

Another kind of "search" issue is "googlability."  Not only do I want people to be able to find my app via Google; I also want to be able to do vanity searches to see what people are *saying* about my app.  I often wonder if I could have thought of a nicer name for AppKiDo, but in any case it is trivial to find with Google.  I had an idea once for an app that I would have loved to call "BRANE," for "BRowse, ANnote, and Edit," but it turns out that word has a special meaning to physicists.  (I never did write that app -- it's still on my mind, though.)  Right now I'm working on a very small tool that I'm currently calling "Xcop," for "Xcode project-file," but it turns out that is not very googlable.</description>
		<content:encoded><![CDATA[<p>I agonize over class, method, ivar, and application names all the time.  To me this goes along with having, or at least working toward, a crisp idea of what I&#8217;m trying to accomplish and how I&#8217;m accomplishing it.  Naming reflects how well my logic is factored and therefore how conveniently it can be subclassed.  And it affects how clear and consistent the documentation will be.  These issues are important to other programmers who will read my code (and I treat my future self as an &#8220;other programmer&#8221;).</p>
<p>I want to be able to do global search-and-replace operations when I decide to rename something.  Even without replace, global search can be useful.  So I use naming conventions like two-letter prefixes and typographic conventions like leading underscores.</p>
<p>Another kind of &#8220;search&#8221; issue is &#8220;googlability.&#8221;  Not only do I want people to be able to find my app via Google; I also want to be able to do vanity searches to see what people are *saying* about my app.  I often wonder if I could have thought of a nicer name for AppKiDo, but in any case it is trivial to find with Google.  I had an idea once for an app that I would have loved to call &#8220;BRANE,&#8221; for &#8220;BRowse, ANnote, and Edit,&#8221; but it turns out that word has a special meaning to physicists.  (I never did write that app &#8212; it&#8217;s still on my mind, though.)  Right now I&#8217;m working on a very small tool that I&#8217;m currently calling &#8220;Xcop,&#8221; for &#8220;Xcode project-file,&#8221; but it turns out that is not very googlable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Taybin</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3442</link>
		<dc:creator>Taybin</dc:creator>
		<pubDate>Sun, 30 Apr 2006 04:10:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3442</guid>
		<description>Do *not* name your classes SuckyClassFOO.  What happens to the other poor sap who has to look at your code?  If you don't like the class leave a /* XXX refactor this class */ comment.</description>
		<content:encoded><![CDATA[<p>Do *not* name your classes SuckyClassFOO.  What happens to the other poor sap who has to look at your code?  If you don&#8217;t like the class leave a /* XXX refactor this class */ comment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Eddy</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3405</link>
		<dc:creator>David Eddy</dc:creator>
		<pubDate>Sat, 29 Apr 2006 22:34:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3405</guid>
		<description>Did Apple do anything about automating the naming/identification process?

We've now got free SQL engines... yet programmers are still wrestling with having to make up "good names" at the point of creation.</description>
		<content:encoded><![CDATA[<p>Did Apple do anything about automating the naming/identification process?</p>
<p>We&#8217;ve now got free SQL engines&#8230; yet programmers are still wrestling with having to make up &#8220;good names&#8221; at the point of creation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3383</link>
		<dc:creator>Charles</dc:creator>
		<pubDate>Sat, 29 Apr 2006 17:57:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3383</guid>
		<description>Well, to be fair, the old conventions like naming iterators "I" come from the days of punched cards, when longer variable names might cause single lines of code to exceed the length of a punched card, and more typing (actually punching) meant more likelihood of errors. Just be glad, very glad, that you didn't study programming back in the 1970s. Or even worse, in the 1960s, &lt;a href="http://ceicher.homeunix.com/archives/2006/04/computing_with.html" rel="nofollow"&gt;here is an amazing example&lt;/a&gt; of a 40 column Hollerith Card that you filled in with a #2 pencil. I actually used these cards to write FORTRAN programs.</description>
		<content:encoded><![CDATA[<p>Well, to be fair, the old conventions like naming iterators &#8220;I&#8221; come from the days of punched cards, when longer variable names might cause single lines of code to exceed the length of a punched card, and more typing (actually punching) meant more likelihood of errors. Just be glad, very glad, that you didn&#8217;t study programming back in the 1970s. Or even worse, in the 1960s, <a href="http://ceicher.homeunix.com/archives/2006/04/computing_with.html" rel="nofollow">here is an amazing example</a> of a 40 column Hollerith Card that you filled in with a #2 pencil. I actually used these cards to write FORTRAN programs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Jalkut</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3357</link>
		<dc:creator>Daniel Jalkut</dc:creator>
		<pubDate>Sat, 29 Apr 2006 14:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3357</guid>
		<description>Charles: I did have some picky CS professors, but most of my education happened at Apple, where they thankfully subscribed to some pretty good naming habits.  I would have to agree with your professor that single characters are not great for variable names. In fact, I usually avoid even the common shorthand of naming for-loop iterators "i". If you decide to search/replace on names like that it's a nightmare. Therefore, my for-loops usually involve the clumsy "iterator" variable.

Scott: Good point and I think it supports my "if you fail, forge ahead" idea. But I do think at least a little bit of time thinking about what the ideal name would be can help prevent a lot of refactoring later.

Arto: The tools problem is a great point. I can totally relate to the CVS issue, and I think my file-naming phobia stems from spending so many years using that crappy tool :) Since I've switched to subversion I find myself actively reminding myself that it will be no big deal to even rename a file or move an entire directory. Definitely helps with flow.</description>
		<content:encoded><![CDATA[<p>Charles: I did have some picky CS professors, but most of my education happened at Apple, where they thankfully subscribed to some pretty good naming habits.  I would have to agree with your professor that single characters are not great for variable names. In fact, I usually avoid even the common shorthand of naming for-loop iterators &#8220;i&#8221;. If you decide to search/replace on names like that it&#8217;s a nightmare. Therefore, my for-loops usually involve the clumsy &#8220;iterator&#8221; variable.</p>
<p>Scott: Good point and I think it supports my &#8220;if you fail, forge ahead&#8221; idea. But I do think at least a little bit of time thinking about what the ideal name would be can help prevent a lot of refactoring later.</p>
<p>Arto: The tools problem is a great point. I can totally relate to the CVS issue, and I think my file-naming phobia stems from spending so many years using that crappy tool :) Since I&#8217;ve switched to subversion I find myself actively reminding myself that it will be no big deal to even rename a file or move an entire directory. Definitely helps with flow.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arto Bendiken</title>
		<link>http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3342</link>
		<dc:creator>Arto Bendiken</dc:creator>
		<pubDate>Sat, 29 Apr 2006 11:14:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.red-sweater.com/blog/127/whats-in-a-name#comment-3342</guid>
		<description>I think the difficulty of naming things depends a lot on the tools you choose to, or have to, use. For instance, I worry prematurely about naming issues only when I work on client projects using either a) CVS for version control, and/or b) static, compiled languages.

With projects managed through CVS, or with legacy code bases having other similarly limiting constraints, changing file names and refactoring &#38; reorganizing the code becomes enough of a headache that it pays to get it right (or mostly right) the first time around, whenever possible. This thankfully ceases to be an issue with modern tools, like Subversion or Darcs, that are able to move files and directories around in the repository with their full revision history preserved.

Again, with static languages, the cost of changing one's mind often becomes high enough that a certain non-trivial amount of premeditation and planning may be warranted. That's why I much prefer to work, when I can, in dynamic languages (such as Ruby and Scheme), where code can be naturally written in a bottom-up fashion, and a mere prototype can evolve, through lots and lots of low-cost refactoring iterations, into the actual first version of the program. It's liberating enough that I've learned to never worry about trivialities (such as naming), knowing I can change my mind at any time.

Now, as for naming a product or a company, that's a showstopper indeed - speaking as someone who has spent way too much time checking domain availability and huddled up with Latin/Greek/Finnish/etc dictionary ;-)</description>
		<content:encoded><![CDATA[<p>I think the difficulty of naming things depends a lot on the tools you choose to, or have to, use. For instance, I worry prematurely about naming issues only when I work on client projects using either a) CVS for version control, and/or b) static, compiled languages.</p>
<p>With projects managed through CVS, or with legacy code bases having other similarly limiting constraints, changing file names and refactoring &amp; reorganizing the code becomes enough of a headache that it pays to get it right (or mostly right) the first time around, whenever possible. This thankfully ceases to be an issue with modern tools, like Subversion or Darcs, that are able to move files and directories around in the repository with their full revision history preserved.</p>
<p>Again, with static languages, the cost of changing one&#8217;s mind often becomes high enough that a certain non-trivial amount of premeditation and planning may be warranted. That&#8217;s why I much prefer to work, when I can, in dynamic languages (such as Ruby and Scheme), where code can be naturally written in a bottom-up fashion, and a mere prototype can evolve, through lots and lots of low-cost refactoring iterations, into the actual first version of the program. It&#8217;s liberating enough that I&#8217;ve learned to never worry about trivialities (such as naming), knowing I can change my mind at any time.</p>
<p>Now, as for naming a product or a company, that&#8217;s a showstopper indeed - speaking as someone who has spent way too much time checking domain availability and huddled up with Latin/Greek/Finnish/etc dictionary ;-)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.607 seconds -->
