<?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: Ambiguity near and far</title>
	<atom:link href="http://www.wordyard.com/2007/05/07/ambiguity/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wordyard.com/2007/05/07/ambiguity/</link>
	<description>Technology, politics, culture</description>
	<lastBuildDate>Tue, 16 Mar 2010 18:43:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Worth Reading &#187; Skillful Software</title>
		<link>http://www.wordyard.com/2007/05/07/ambiguity/comment-page-1/#comment-655</link>
		<dc:creator>Worth Reading &#187; Skillful Software</dc:creator>
		<pubDate>Mon, 28 May 2007 12:48:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1283#comment-655</guid>
		<description>[...] Rosenberg&#8217;s post on ambiguity was right on. Ambiguity is a double edged sword - it can make things elegant, or intractable. [...]</description>
		<content:encoded><![CDATA[<p>[...] Rosenberg&#8217;s post on ambiguity was right on. Ambiguity is a double edged sword &#8211; it can make things elegant, or intractable. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Sacamano</title>
		<link>http://www.wordyard.com/2007/05/07/ambiguity/comment-page-1/#comment-653</link>
		<dc:creator>Andrew Sacamano</dc:creator>
		<pubDate>Wed, 09 May 2007 21:16:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1283#comment-653</guid>
		<description>This is an important point for all programmers to think about.  I think it related to a similar question of when it is better to make something explicit, as opposed to making it happen automatically. This is a similar to ambiguity, but perhaps better described as the &quot;unspoken but understood&quot; portion of a conversation, or programming language.

I once had to spend half an hour exploring a C++ program to find the real code - it was buried in a constructor of a superclass of a superclass of an object which got instantiated in a one line main method.  The object had many superclasses thanks to multiple-inheritance, and finding it was a real chore.  In this case, the meat of the program was defined in an unspoken, &#039;distant&#039; way.

But there are times when you want a framework to do things automatically, like breaking HTML form data into an easier to manager data structure, without having to clutter your code with lots of identical explicit calls. The unspoken idea is &quot;near&quot; in this case (it is part of a commonly used and repeated process).

When having a conversation with a person, it is usually possible to resolve ambiguities and reveal unspoken ideas.  With contemporary computing systems, the ambiguous and the unspoken are very difficult to resolve.  It seems like we should only use them sparingly, when they are &quot;near&quot;.  (And even then we need to document them extensively.)

P.S. Cleo, I think you&#039;re on to something.  The question of context and ambiguity is potentially one of the few really interesting areas of CS left. If only we were better at it, I wouldn&#039;t get so much spam.</description>
		<content:encoded><![CDATA[<p>This is an important point for all programmers to think about.  I think it related to a similar question of when it is better to make something explicit, as opposed to making it happen automatically. This is a similar to ambiguity, but perhaps better described as the &#8220;unspoken but understood&#8221; portion of a conversation, or programming language.</p>
<p>I once had to spend half an hour exploring a C++ program to find the real code &#8211; it was buried in a constructor of a superclass of a superclass of an object which got instantiated in a one line main method.  The object had many superclasses thanks to multiple-inheritance, and finding it was a real chore.  In this case, the meat of the program was defined in an unspoken, &#8216;distant&#8217; way.</p>
<p>But there are times when you want a framework to do things automatically, like breaking HTML form data into an easier to manager data structure, without having to clutter your code with lots of identical explicit calls. The unspoken idea is &#8220;near&#8221; in this case (it is part of a commonly used and repeated process).</p>
<p>When having a conversation with a person, it is usually possible to resolve ambiguities and reveal unspoken ideas.  With contemporary computing systems, the ambiguous and the unspoken are very difficult to resolve.  It seems like we should only use them sparingly, when they are &#8220;near&#8221;.  (And even then we need to document them extensively.)</p>
<p>P.S. Cleo, I think you&#8217;re on to something.  The question of context and ambiguity is potentially one of the few really interesting areas of CS left. If only we were better at it, I wouldn&#8217;t get so much spam.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: IanRae</title>
		<link>http://www.wordyard.com/2007/05/07/ambiguity/comment-page-1/#comment-654</link>
		<dc:creator>IanRae</dc:creator>
		<pubDate>Tue, 08 May 2007 20:47:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1283#comment-654</guid>
		<description>1980s GUIs were praised for being &quot;modeless&quot;, meaning that the user interface had no (or very few) sub-states.  It was believed this was a good thing because icons and mouse actions would have a single &amp; consistent meaning throughout the app.  This is similar to the idea of a context-free grammar in a programming language.

Now we&#039;ve moved the other way.  Inductive GUIs (like Microsoft Money) have loads of sub-states, and even buttons labelled &quot;Do it&quot;, which only make sense within the context of that sub-state.

Ruby has a nice &quot;near&quot; ambiguity where you don&#039;t need a return statement in a function.  The value of the last statement executed becomes implicitly the method&#039;s return value.</description>
		<content:encoded><![CDATA[<p>1980s GUIs were praised for being &#8220;modeless&#8221;, meaning that the user interface had no (or very few) sub-states.  It was believed this was a good thing because icons and mouse actions would have a single &amp; consistent meaning throughout the app.  This is similar to the idea of a context-free grammar in a programming language.</p>
<p>Now we&#8217;ve moved the other way.  Inductive GUIs (like Microsoft Money) have loads of sub-states, and even buttons labelled &#8220;Do it&#8221;, which only make sense within the context of that sub-state.</p>
<p>Ruby has a nice &#8220;near&#8221; ambiguity where you don&#8217;t need a return statement in a function.  The value of the last statement executed becomes implicitly the method&#8217;s return value.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Cleo Saulnier</title>
		<link>http://www.wordyard.com/2007/05/07/ambiguity/comment-page-1/#comment-657</link>
		<dc:creator>Cleo Saulnier</dc:creator>
		<pubDate>Tue, 08 May 2007 04:25:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1283#comment-657</guid>
		<description>Yeah, but having computing be able to resolve ambiguities as they operate is something programming languages don&#039;t take into account.  That&#039;s something that will be required if the future of computing is to progress beyond what we have today.  But this would make programming languages irrelevant.  Personally, I think the notion of computers being able to recognise context to be extremely fascinating.</description>
		<content:encoded><![CDATA[<p>Yeah, but having computing be able to resolve ambiguities as they operate is something programming languages don&#8217;t take into account.  That&#8217;s something that will be required if the future of computing is to progress beyond what we have today.  But this would make programming languages irrelevant.  Personally, I think the notion of computers being able to recognise context to be extremely fascinating.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amos Anan</title>
		<link>http://www.wordyard.com/2007/05/07/ambiguity/comment-page-1/#comment-656</link>
		<dc:creator>Amos Anan</dc:creator>
		<pubDate>Mon, 07 May 2007 22:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.wordyard.com/?p=1283#comment-656</guid>
		<description>This is well understood in programming languages. It&#039;s called &quot;context.&quot; Programming languages are &quot;context free&quot; languages while natural languages are &quot;context sensitive.&quot; These are compiler grammar terms. C language may have started some of the problems you&#039;ve described since it has very little in terms of functionality built in. Instead the creators of C chose to use an external &quot;library&quot; of functions unlike PL/I of the day. PL/I had many built in operations, including string and matrix functions. But the &quot;context&quot; you describe involves further, non-standard function and operation - external libraries which can vary from vendor to vendor and &quot;house&quot; to &quot;house.&quot;</description>
		<content:encoded><![CDATA[<p>This is well understood in programming languages. It&#8217;s called &#8220;context.&#8221; Programming languages are &#8220;context free&#8221; languages while natural languages are &#8220;context sensitive.&#8221; These are compiler grammar terms. C language may have started some of the problems you&#8217;ve described since it has very little in terms of functionality built in. Instead the creators of C chose to use an external &#8220;library&#8221; of functions unlike PL/I of the day. PL/I had many built in operations, including string and matrix functions. But the &#8220;context&#8221; you describe involves further, non-standard function and operation &#8211; external libraries which can vary from vendor to vendor and &#8220;house&#8221; to &#8220;house.&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
