<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:rawvoice="http://www.rawvoice.com/rawvoiceRssModule/"
	>
<channel>
	<title>Comments on: Programming Languages are PC OSs circa 1986</title>
	<atom:link href="http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/feed/" rel="self" type="application/rss+xml" />
	<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/</link>
	<description>programming, politics, &#38; other religious issues</description>
	<lastBuildDate>Wed, 08 Feb 2012 14:16:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: nickik@gmx.ch</title>
		<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/#comment-37505</link>
		<dc:creator>nickik@gmx.ch</dc:creator>
		<pubDate>Tue, 13 Apr 2010 23:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=786#comment-37505</guid>
		<description>Hallo,

I&#039;m not an expert on so many langauges so I don&#039;t want to spread the liddle stuff I know.

One thing I want do mention about error handling. I&#039;m learning Dylan at the moment and I really like the language. You guy&#039;s sould really take a look at the error handling system in dylan. I have never seen it done in a cooler way but I only know a couple other languages.

Dylan was designd for big applications so it wanted it to make errorhandling right. What do you think. 
&lt;a href=&quot;http://www.opendylan.org/books/drm/Conditions&quot; rel=&quot;nofollow&quot;&gt; Dylan Conditions &lt;/a&gt; or  here &lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Hallo,</p>
<p>I&#8217;m not an expert on so many langauges so I don&#8217;t want to spread the liddle stuff I know.</p>
<p>One thing I want do mention about error handling. I&#8217;m learning Dylan at the moment and I really like the language. You guy&#8217;s sould really take a look at the error handling system in dylan. I have never seen it done in a cooler way but I only know a couple other languages.</p>
<p>Dylan was designd for big applications so it wanted it to make errorhandling right. What do you think.<br />
<a href="http://www.opendylan.org/books/drm/Conditions" rel="nofollow"> Dylan Conditions </a> or  here </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Stock</title>
		<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/#comment-33767</link>
		<dc:creator>Marc Stock</dc:creator>
		<pubDate>Wed, 01 Oct 2008 15:35:04 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=786#comment-33767</guid>
		<description>&quot;DSLs exist in their own driving context, which should eliminate the surprises.&quot;

To a point, but it doesn&#039;t fix the problem because when you&#039;re applying an operator to something, you should know the context as well.  I don&#039;t think context is the big issue here.  It&#039;s interpretation of how said operator should function given that context.  Depending on how you design a DSL, it could be subject to many questions of this nature (which is why a lot of people are saying you shouldn&#039;t make a DSL very natural language-like).</description>
		<content:encoded><![CDATA[<p>&#8220;DSLs exist in their own driving context, which should eliminate the surprises.&#8221;</p>
<p>To a point, but it doesn&#8217;t fix the problem because when you&#8217;re applying an operator to something, you should know the context as well.  I don&#8217;t think context is the big issue here.  It&#8217;s interpretation of how said operator should function given that context.  Depending on how you design a DSL, it could be subject to many questions of this nature (which is why a lot of people are saying you shouldn&#8217;t make a DSL very natural language-like).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/#comment-33766</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Wed, 01 Oct 2008 15:23:23 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=786#comment-33766</guid>
		<description>The problem with operator overloading is mixing and matching contexts -- what &quot;+&quot; means in one place vs. another is context-driven, and so mismatched contexts can cause surprising results.  DSLs exist in their own driving context, which should eliminate the surprises.</description>
		<content:encoded><![CDATA[<p>The problem with operator overloading is mixing and matching contexts &#8212; what &#8220;+&#8221; means in one place vs. another is context-driven, and so mismatched contexts can cause surprising results.  DSLs exist in their own driving context, which should eliminate the surprises.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marc Stock</title>
		<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/#comment-33765</link>
		<dc:creator>Marc Stock</dc:creator>
		<pubDate>Wed, 01 Oct 2008 15:10:29 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=786#comment-33765</guid>
		<description>I used to do C++ programming many years ago.  Back then, operator overloading was generally frowned upon because the C++ world went through an era where it was heavily overused (new toy!) and even in cases where it was appropriate, the effects of the overloading were often not what was expected.  Method names that clearly indicated the function to be performed became far more preferred.  The &#039;+&#039; symbol can mean different things to different people.  Add to this the fact that (at least at that time -- I don&#039;t know if it&#039;s changed) IDEs didn&#039;t have javadoc like support for operators and it just wasn&#039;t pretty.  Operator overloading is great when it&#039;s very clear what the operator should be doing given the context but outside of basic math, those opportunities are rare.  That said, using operator overloading can be thought of as sort of a DSL Lite and if the developer community cannot handle that, can it really handle full blown DSLs?</description>
		<content:encoded><![CDATA[<p>I used to do C++ programming many years ago.  Back then, operator overloading was generally frowned upon because the C++ world went through an era where it was heavily overused (new toy!) and even in cases where it was appropriate, the effects of the overloading were often not what was expected.  Method names that clearly indicated the function to be performed became far more preferred.  The &#8216;+&#8217; symbol can mean different things to different people.  Add to this the fact that (at least at that time &#8212; I don&#8217;t know if it&#8217;s changed) IDEs didn&#8217;t have javadoc like support for operators and it just wasn&#8217;t pretty.  Operator overloading is great when it&#8217;s very clear what the operator should be doing given the context but outside of basic math, those opportunities are rare.  That said, using operator overloading can be thought of as sort of a DSL Lite and if the developer community cannot handle that, can it really handle full blown DSLs?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Fischer</title>
		<link>http://enfranchisedmind.com/blog/posts/programming-languages-are-pc-oss-circa-1986/#comment-33764</link>
		<dc:creator>Robert Fischer</dc:creator>
		<pubDate>Tue, 30 Sep 2008 15:47:25 +0000</pubDate>
		<guid isPermaLink="false">http://enfranchisedmind.com/blog/?p=786#comment-33764</guid>
		<description>@Scott Vokes

The syntactic sugar that Java did -- basically proving some low-level operator overloading for integer and floating point arithmetic -- seemed to be a nice compromise between general-case operator overloading (evil[1]) and universal operational purity (off-putting).  Surprisingly, I&#039;ve heard very few people lamenting the inability to define + for matrices in Java.  The one downside is that there comes a point in every journeyman Java developer&#039;s life where they get confused about why 1 / 7.0 * 7 &gt; 1 -- the reality is that floating point and integer arithmetic are fundamentally different, so mixing the two is a Devil&#039;s bargain: you don&#039;t put off beginners used to blurring those boundaries, but you put off intermediate developers who suddenly discovered that there&#039;s a lot of dangerous plays.  Of course, by the time they&#039;re intermediate developers, you&#039;ve already suckered them into knowing your language pretty well, so they&#039;re vested.

[1] The biggest evil of general-case operator overloading is that changing &lt;code&gt;foo + bar&lt;/code&gt; to &lt;code&gt;bar + foo&lt;/code&gt; suddenly drastically changes the definition of &quot;&lt;code&gt;+&lt;/code&gt;&quot;.  It gets even worse when you consider &lt;code&gt;foo * (bar + baz)&lt;/code&gt; vs. &lt;code&gt;foo * bar + foo * baz&lt;/code&gt;.  Or, y&#039;know, &lt;code&gt;1 / 7.0 * 7&lt;/code&gt; vs. &lt;code&gt;7 * 1 / 7.0&lt;/code&gt;.</description>
		<content:encoded><![CDATA[<p>@Scott Vokes</p>
<p>The syntactic sugar that Java did &#8212; basically proving some low-level operator overloading for integer and floating point arithmetic &#8212; seemed to be a nice compromise between general-case operator overloading (evil[1]) and universal operational purity (off-putting).  Surprisingly, I&#8217;ve heard very few people lamenting the inability to define + for matrices in Java.  The one downside is that there comes a point in every journeyman Java developer&#8217;s life where they get confused about why 1 / 7.0 * 7 &gt; 1 &#8212; the reality is that floating point and integer arithmetic are fundamentally different, so mixing the two is a Devil&#8217;s bargain: you don&#8217;t put off beginners used to blurring those boundaries, but you put off intermediate developers who suddenly discovered that there&#8217;s a lot of dangerous plays.  Of course, by the time they&#8217;re intermediate developers, you&#8217;ve already suckered them into knowing your language pretty well, so they&#8217;re vested.</p>
<p>[1] The biggest evil of general-case operator overloading is that changing <code>foo + bar</code> to <code>bar + foo</code> suddenly drastically changes the definition of &#8220;<code>+</code>&#8220;.  It gets even worse when you consider <code>foo * (bar + baz)</code> vs. <code>foo * bar + foo * baz</code>.  Or, y&#8217;know, <code>1 / 7.0 * 7</code> vs. <code>7 * 1 / 7.0</code>.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

