<?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: The Case Against Insensitivity</title>
	<atom:link href="http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/</link>
	<description></description>
	<pubDate>Thu, 08 Jan 2009 18:29:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199030</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:57:03 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199030</guid>
		<description>LKM: Well, I don't think anyone was arguing for clean code at the expense of the UI. On the contrary, the whole point of discussing these issues early is so that if there needs to be a transition, developers can have the guidelines and APIs that they need ahead of time, thus making the transition as smooth as possible. It wouldn’t just be dumped on the users in rough form. In this case, HFSX already exists, so it would be possible to test all this stuff before the Future Filesystem is even ready.

Ultimately, the developer has to decide on the best way to serve the user. Sometimes this may mean reducing technical debt, othertimes not.</description>
		<content:encoded><![CDATA[<p>LKM: Well, I don't think anyone was arguing for clean code at the expense of the UI. On the contrary, the whole point of discussing these issues early is so that if there needs to be a transition, developers can have the guidelines and APIs that they need ahead of time, thus making the transition as smooth as possible. It wouldn’t just be dumped on the users in rough form. In this case, HFSX already exists, so it would be possible to test all this stuff before the Future Filesystem is even ready.</p>
<p>Ultimately, the developer has to decide on the best way to serve the user. Sometimes this may mean reducing technical debt, othertimes not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LKM</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199024</link>
		<dc:creator>LKM</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:38:03 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199024</guid>
		<description>Of course, unmaintainable code makes development more expensive and may lead to stagnation (which, by the way, is not always bad - sometimes, users don't really want new features - but that is another subject entirely). I would also not advocate ignoring problems until they create usability issues. If you can make code more maintainable without sacrificing the UI, do it.

However, when given the choice between clean code and a better UI, I always go for the better UI, because that's what'll help users.

It's also worth noting that you have between 1 and 100 developers working on any given software project who are inconvenienced by crappy code. Often, you have thousands or hundreds of thousands of users of the same software project who end up being inconvenienced by crappy UI. It's obvious to me who should get the priority here, especially since we developers are paid by our users :-)

As developers, it's not our job to make our own lives easier. It's our job to make our users' lives easier. That means solving hard issues so our users don't have to.</description>
		<content:encoded><![CDATA[<p>Of course, unmaintainable code makes development more expensive and may lead to stagnation (which, by the way, is not always bad - sometimes, users don't really want new features - but that is another subject entirely). I would also not advocate ignoring problems until they create usability issues. If you can make code more maintainable without sacrificing the UI, do it.</p>
<p>However, when given the choice between clean code and a better UI, I always go for the better UI, because that's what'll help users.</p>
<p>It's also worth noting that you have between 1 and 100 developers working on any given software project who are inconvenienced by crappy code. Often, you have thousands or hundreds of thousands of users of the same software project who end up being inconvenienced by crappy UI. It's obvious to me who should get the priority here, especially since we developers are paid by our users :-)</p>
<p>As developers, it's not our job to make our own lives easier. It's our job to make our users' lives easier. That means solving hard issues so our users don't have to.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199020</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:22:36 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199020</guid>
		<description>LKM: "Nobody cares what your code looks like," but they do care about how you're able to evolve that code. The original Mac OS code was ugly and unmaintainable. As a result, the OS stagnated. Microsoft never modernized their Visual Basic code, and so they had to drop it from Mac Office 2008. I'm not saying this is one of those cases, but I disagree with the idea that problems should always be left to fester until they create a user-facing problem. By the time you absolutely must fix the problem, there may be too much technical debt.</description>
		<content:encoded><![CDATA[<p>LKM: "Nobody cares what your code looks like," but they do care about how you're able to evolve that code. The original Mac OS code was ugly and unmaintainable. As a result, the OS stagnated. Microsoft never modernized their Visual Basic code, and so they had to drop it from Mac Office 2008. I'm not saying this is one of those cases, but I disagree with the idea that problems should always be left to fester until they create a user-facing problem. By the time you absolutely must fix the problem, there may be too much technical debt.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LKM</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199014</link>
		<dc:creator>LKM</dc:creator>
		<pubDate>Thu, 20 Dec 2007 15:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-199014</guid>
		<description>http://www.codinghorror.com/blog/archives/001022.html

:-)</description>
		<content:encoded><![CDATA[<p><a href="http://www.codinghorror.com/blog/archives/001022.html" rel="nofollow">http://www.codinghorror.com/blog/archives/001022.html</a></p>
<p>:-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LKM</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189951</link>
		<dc:creator>LKM</dc:creator>
		<pubDate>Tue, 04 Dec 2007 08:46:04 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189951</guid>
		<description>&#62;I think it's a user experience issue that could
&#62;be solved at the framework level

So then you get inconsistencies between Carbon, Cocoa, X11, Java, plain old C apps, and so on. I think it's annoying enough that (for example) text components work differently in different apps, depending on what Frameworks they use. Apple has basically spent the last 6 years getting rid of inconsistencies between Carbon and Cocoa. Why introduce new ones?

More robust application code is useless if it's perceived by the user as less robust because of slight inconsistencies.</description>
		<content:encoded><![CDATA[<p>&gt;I think it's a user experience issue that could<br />
&gt;be solved at the framework level</p>
<p>So then you get inconsistencies between Carbon, Cocoa, X11, Java, plain old C apps, and so on. I think it's annoying enough that (for example) text components work differently in different apps, depending on what Frameworks they use. Apple has basically spent the last 6 years getting rid of inconsistencies between Carbon and Cocoa. Why introduce new ones?</p>
<p>More robust application code is useless if it's perceived by the user as less robust because of slight inconsistencies.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189887</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 04 Dec 2007 05:08:16 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189887</guid>
		<description>Hugh: OK, you’re right about the domain name, but I still don’t see the problem. Domain case is defined not to matter, so we’re all sloppy with it. In the path, it does matter, and yet this isn’t much of a problem because users have clickable links, bookmarks, and search engines. Likewise, for files they would still have open panels, drag and drop, etc.</description>
		<content:encoded><![CDATA[<p>Hugh: OK, you’re right about the domain name, but I still don’t see the problem. Domain case is defined not to matter, so we’re all sloppy with it. In the path, it does matter, and yet this isn’t much of a problem because users have clickable links, bookmarks, and search engines. Likewise, for files they would still have open panels, drag and drop, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugh</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189883</link>
		<dc:creator>Hugh</dc:creator>
		<pubDate>Tue, 04 Dec 2007 04:22:20 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189883</guid>
		<description>Which is exactly the point I was trying to make: the correct capitalization of your domain name is mjtsai.COM not .com. (See the root zone file of a DNS server for examples of canonical names at the top level.)

If the DNS system wasn't "hiding the details" you'd be getting a lot less email! (OK, maybe that could be considered a good thing...)</description>
		<content:encoded><![CDATA[<p>Which is exactly the point I was trying to make: the correct capitalization of your domain name is mjtsai.COM not .com. (See the root zone file of a DNS server for examples of canonical names at the top level.)</p>
<p>If the DNS system wasn't "hiding the details" you'd be getting a lot less email! (OK, maybe that could be considered a good thing...)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189871</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Tue, 04 Dec 2007 03:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189871</guid>
		<description>Hugh: I always use lowercase for domain names, and that’s what the mailto URL uses. As a user, it doesn't much matter to me whether the domain name is case-sensitive because the rest of the URL generally is, anyway.</description>
		<content:encoded><![CDATA[<p>Hugh: I always use lowercase for domain names, and that’s what the mailto URL uses. As a user, it doesn't much matter to me whether the domain name is case-sensitive because the rest of the URL generally is, anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugh</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189797</link>
		<dc:creator>Hugh</dc:creator>
		<pubDate>Mon, 03 Dec 2007 23:59:13 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189797</guid>
		<description>Michael, you don't appear to know the correct capitalization of your DNS domain name, judging by the 'mailto' URL at the bottom of this page. Aren't you glad you don't have to?

Most of those arguments - that it's poorly defined for non-ASCII, that it's a layering violation, that it forces layering violations on other code and is contagious - would apply equally well to DNS name lookups and email. (The difference is that thanks to the DNS spec, everyone does it the same way.)


cheers,
Hugh</description>
		<content:encoded><![CDATA[<p>Michael, you don't appear to know the correct capitalization of your DNS domain name, judging by the 'mailto' URL at the bottom of this page. Aren't you glad you don't have to?</p>
<p>Most of those arguments - that it's poorly defined for non-ASCII, that it's a layering violation, that it forces layering violations on other code and is contagious - would apply equally well to DNS name lookups and email. (The difference is that thanks to the DNS spec, everyone does it the same way.)</p>
<p>cheers,<br />
Hugh</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Michael</title>
		<link>http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189738</link>
		<dc:creator>Michael</dc:creator>
		<pubDate>Mon, 03 Dec 2007 17:19:32 +0000</pubDate>
		<guid isPermaLink="false">http://mjtsai.com/blog/2007/12/02/the-case-against-insensitivity/#comment-189738</guid>
		<description>It's not at all clear to me that this is the tradeoff. I think it's a user experience issue that could be solved at the framework level, potentially leading to a better UI and more robust application code. Hiding the details from the frameworks and applications only makes it appear that the filesystem took care of everything.</description>
		<content:encoded><![CDATA[<p>It's not at all clear to me that this is the tradeoff. I think it's a user experience issue that could be solved at the framework level, potentially leading to a better UI and more robust application code. Hiding the details from the frameworks and applications only makes it appear that the filesystem took care of everything.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
