<?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: Operator Overloading Considered Harmful</title>
	<atom:link href="http://cafe.elharo.com/programming/operator-overloading-considered-harmful/feed/" rel="self" type="application/rss+xml" />
	<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/</link>
	<description>Longer than a blog; shorter than a book</description>
	<lastBuildDate>Wed, 08 Feb 2012 21:45:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: 0xc0000005</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-803650</link>
		<dc:creator>0xc0000005</dc:creator>
		<pubDate>Mon, 19 Sep 2011 13:34:18 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-803650</guid>
		<description>Writing spaghetti code is just as easy as writing elegant code, no matther what features you use. You can write a method named init() and let it cleanup resources, write add() method actually dividing two numbers and so on. The java&#039;s philosophy &quot;giving freedom to programmers cause troubles&quot; is, IMO, just as great as treating programmers like prisoners. C# is a good example of how &quot;complex&quot; features like LINQ, lambda expressions, extension methods all work together to make programming easier and more productive.

Conclusion : IMO java doesn&#039;t support operator overloading NOT BECAUSE the feature itself is bad, but because the Java team LACKS ability to do it.</description>
		<content:encoded><![CDATA[<p>Writing spaghetti code is just as easy as writing elegant code, no matther what features you use. You can write a method named init() and let it cleanup resources, write add() method actually dividing two numbers and so on. The java&#8217;s philosophy &#8220;giving freedom to programmers cause troubles&#8221; is, IMO, just as great as treating programmers like prisoners. C# is a good example of how &#8220;complex&#8221; features like LINQ, lambda expressions, extension methods all work together to make programming easier and more productive.</p>
<p>Conclusion : IMO java doesn&#8217;t support operator overloading NOT BECAUSE the feature itself is bad, but because the Java team LACKS ability to do it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrés</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-723457</link>
		<dc:creator>Andrés</dc:creator>
		<pubDate>Tue, 05 Jul 2011 14:37:17 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-723457</guid>
		<description>It&#039;s funny how it&#039;s been around 4 years since the initial post and surprisingly the topic is still valid.

I&#039;ve developed useful production software in C++, Java, C#, Ruby and Scala. I have developed simulation-like applications in C++ where the operator overloading feature allowed me to clearly express what I had in mind. I have developed tons of enterprise applications in C# where I didn&#039;t even once need that feature. I see no point in discussing &quot;i have never needed this feature, thus it is not necessary&quot; or &quot;the guys at tomcat didn&#039;t need it&quot;, because it all boils down to personal experience based on the projects you have been working on.

Regarding java in particular, the language was originally designed to work in embedded environments, be it cellphones or applets. It evolved successfully to cover enterprise software needs, and it is there where it&#039;s main market share resides. So it comes to no surprise to me that after this so many years the language doesn&#039;t include operator overloading features. Unfortunately the language is not a &quot;general purpose&quot; one, in it&#039;s broader sense, and as such it does not include &quot;general purpose&quot; language utitlities. I don&#039;t think this in inherently wrong, language design is about trade-offs: we don&#039;t include operator overloading in the specification, leaving behind scientific and engineering developers (which we don&#039;t care much about) but keeping the specification simple for enterprise developers (which we do care about).

What I DO think is a rather questionable practice is the resilence of the java community to even CONSIDER changes. I don&#039;t know of any kind of improvement on the java language on the past 4 years. I think we would all agree that the java language is not a perfect one, so why are we not doing anything to change it?

In the end, the result of this stagnation is that many BRILLANT developers I know of moved on to another platform. And I cannot blame them. We are talking about a language that hasn&#039;t introduced any kind of change in the previous 4 years. A language that has missed 4 years of improvement opportunities. A language that is not moving in any direction.

A language that seems to be dead.</description>
		<content:encoded><![CDATA[<p>It&#8217;s funny how it&#8217;s been around 4 years since the initial post and surprisingly the topic is still valid.</p>
<p>I&#8217;ve developed useful production software in C++, Java, C#, Ruby and Scala. I have developed simulation-like applications in C++ where the operator overloading feature allowed me to clearly express what I had in mind. I have developed tons of enterprise applications in C# where I didn&#8217;t even once need that feature. I see no point in discussing &#8220;i have never needed this feature, thus it is not necessary&#8221; or &#8220;the guys at tomcat didn&#8217;t need it&#8221;, because it all boils down to personal experience based on the projects you have been working on.</p>
<p>Regarding java in particular, the language was originally designed to work in embedded environments, be it cellphones or applets. It evolved successfully to cover enterprise software needs, and it is there where it&#8217;s main market share resides. So it comes to no surprise to me that after this so many years the language doesn&#8217;t include operator overloading features. Unfortunately the language is not a &#8220;general purpose&#8221; one, in it&#8217;s broader sense, and as such it does not include &#8220;general purpose&#8221; language utitlities. I don&#8217;t think this in inherently wrong, language design is about trade-offs: we don&#8217;t include operator overloading in the specification, leaving behind scientific and engineering developers (which we don&#8217;t care much about) but keeping the specification simple for enterprise developers (which we do care about).</p>
<p>What I DO think is a rather questionable practice is the resilence of the java community to even CONSIDER changes. I don&#8217;t know of any kind of improvement on the java language on the past 4 years. I think we would all agree that the java language is not a perfect one, so why are we not doing anything to change it?</p>
<p>In the end, the result of this stagnation is that many BRILLANT developers I know of moved on to another platform. And I cannot blame them. We are talking about a language that hasn&#8217;t introduced any kind of change in the previous 4 years. A language that has missed 4 years of improvement opportunities. A language that is not moving in any direction.</p>
<p>A language that seems to be dead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-599474</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Wed, 16 Feb 2011 01:53:06 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-599474</guid>
		<description>You are correct.  The number of distinct cases in which operator overloading is genuinely practical is not very large.  Your estimate of no more 10 may be conservative, in my opinion, but it is certainly within the same order of magnitude of that estimate.

However, the number of times I&#039;ve found, in practice, that it comes up that one might happen to actually want to use one of those relatively small number of examples is actually staggeringly large.   Computer games, graphics programs, or almost any type of program that involves a simulation of some kind may need to utilize some form of group, ring, or field that is simply not managed or well represented by any class that is built into the java API, and attempting to restrict operator overloading only to certain select classes would simply not be adequate or efficient.

Ultimately, for such programs, writing something like position = position + velocity * time + acceleration * time * time / 2 is going to be *FAR* more legible than position = position.add(velocity.multiply(time)).add(acceleration.times(time*time).divide(2)), not to mention the fact that the latter doesn&#039;t even read grammatically correctly.   In practice, one would have to probably comment such code with the more legible form simply so that it would be better understood, but this fact just serves to exemplify the point that the usage of operators in the first place can actually dramatically *improve* the legibility of the programmer&#039;s code in cases where their meaning is well understood, and it is simply undeniable that such things do not commonly arise in certain types of programs (of which there are no small number).

In the past, Sun&#039;s response to developers who have expressed interest in operator overloading for this reason do not typically attempt to dispute the validity of this point, but instead, they simply dismiss the entire notion of operator overloading with the sweeping statement that Java is not designed to be used for such programs.  This response is problematic because the reason that is initially cited for not having operator overloading in Java is not that Java is not designed to be used for projects where operator overloading might make logical sense, but rather, the reason given is always one of source code legibility. This logical shifting of the goalposts is not indicative of a well reasoned design.  At worst, such a response can all too easily be interpreted as telling such developers &quot;go back to C++, we don&#039;t want your kind messing up our language with your newthink&quot;.  

Finally, again, I do not dispute that the number of cases for which operator overloading is useful is relatively small compared to the number of cases where it can be easily abused, but I *DO* maintain that the actual number of distinct programs that a person might write where one of those cases ends up applying is actually very, very, very large in my experience, and, with some care taken in how it is actually done, could possibly be added into Java in such a way as to minimize its abuse, or at the very least restrict abuse to situations where it is unlikely to be problematic for professional software development where often quite strict coding conventions have to be adhered to in the source code.</description>
		<content:encoded><![CDATA[<p>You are correct.  The number of distinct cases in which operator overloading is genuinely practical is not very large.  Your estimate of no more 10 may be conservative, in my opinion, but it is certainly within the same order of magnitude of that estimate.</p>
<p>However, the number of times I&#8217;ve found, in practice, that it comes up that one might happen to actually want to use one of those relatively small number of examples is actually staggeringly large.   Computer games, graphics programs, or almost any type of program that involves a simulation of some kind may need to utilize some form of group, ring, or field that is simply not managed or well represented by any class that is built into the java API, and attempting to restrict operator overloading only to certain select classes would simply not be adequate or efficient.</p>
<p>Ultimately, for such programs, writing something like position = position + velocity * time + acceleration * time * time / 2 is going to be *FAR* more legible than position = position.add(velocity.multiply(time)).add(acceleration.times(time*time).divide(2)), not to mention the fact that the latter doesn&#8217;t even read grammatically correctly.   In practice, one would have to probably comment such code with the more legible form simply so that it would be better understood, but this fact just serves to exemplify the point that the usage of operators in the first place can actually dramatically *improve* the legibility of the programmer&#8217;s code in cases where their meaning is well understood, and it is simply undeniable that such things do not commonly arise in certain types of programs (of which there are no small number).</p>
<p>In the past, Sun&#8217;s response to developers who have expressed interest in operator overloading for this reason do not typically attempt to dispute the validity of this point, but instead, they simply dismiss the entire notion of operator overloading with the sweeping statement that Java is not designed to be used for such programs.  This response is problematic because the reason that is initially cited for not having operator overloading in Java is not that Java is not designed to be used for projects where operator overloading might make logical sense, but rather, the reason given is always one of source code legibility. This logical shifting of the goalposts is not indicative of a well reasoned design.  At worst, such a response can all too easily be interpreted as telling such developers &#8220;go back to C++, we don&#8217;t want your kind messing up our language with your newthink&#8221;.  </p>
<p>Finally, again, I do not dispute that the number of cases for which operator overloading is useful is relatively small compared to the number of cases where it can be easily abused, but I *DO* maintain that the actual number of distinct programs that a person might write where one of those cases ends up applying is actually very, very, very large in my experience, and, with some care taken in how it is actually done, could possibly be added into Java in such a way as to minimize its abuse, or at the very least restrict abuse to situations where it is unlikely to be problematic for professional software development where often quite strict coding conventions have to be adhered to in the source code.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tony</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-413223</link>
		<dc:creator>tony</dc:creator>
		<pubDate>Mon, 22 Jun 2009 07:58:16 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-413223</guid>
		<description>java is differ from c++ becuase it contents multithreading,package &amp; interfaces.</description>
		<content:encoded><![CDATA[<p>java is differ from c++ becuase it contents multithreading,package &amp; interfaces.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Elliotte Rusty Harold</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-346569</link>
		<dc:creator>Elliotte Rusty Harold</dc:creator>
		<pubDate>Mon, 02 Feb 2009 15:59:53 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-346569</guid>
		<description>Not that simple, I&#039;m afraid. Even if you don&#039;t use bad features, or don&#039;t use error prone features in an error prone way, others will; and you&#039;ll have to deal with that. C++ has, I&#039;m afraid, proven this beyond any shadow of a doubt. 

What you need is language-defined support for decimal types and the use of operator symbols such as + on those types, not a general purpose operator overloading mechanism for all user-defined types. The problem with operator overloading is that there really aren&#039;t many good use cases for this. Decimals are one. Complex numbers are another. There are others, but they are increasingly obscure.</description>
		<content:encoded><![CDATA[<p>Not that simple, I&#8217;m afraid. Even if you don&#8217;t use bad features, or don&#8217;t use error prone features in an error prone way, others will; and you&#8217;ll have to deal with that. C++ has, I&#8217;m afraid, proven this beyond any shadow of a doubt. </p>
<p>What you need is language-defined support for decimal types and the use of operator symbols such as + on those types, not a general purpose operator overloading mechanism for all user-defined types. The problem with operator overloading is that there really aren&#8217;t many good use cases for this. Decimals are one. Complex numbers are another. There are others, but they are increasingly obscure.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-345875</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Sun, 01 Feb 2009 16:16:55 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-345875</guid>
		<description>Guns don&#039;t kill people, people kill people.

Whether a language chooses to support a feature or not does not inherently make it dirty or clean.  It&#039;s a feature that you may either choose to use or not.  Personally I think this whole topic would go away if there was a proper decimal native type in Java.  That&#039;s my need at the moment and BigDecimal (being the abomination that it is) makes using java for a project I&#039;m on untenable.  I would love to use Java but until there is a native decimal type so I can code a = N * 10.5 + 3.25 rather than a = n.multiply(new BigDecimal(10.5) + new BigDecimal(3.25)) I will have to use C#.  Any other argument is pointless because it doesn&#039;t change that basic fact.

Steve</description>
		<content:encoded><![CDATA[<p>Guns don&#8217;t kill people, people kill people.</p>
<p>Whether a language chooses to support a feature or not does not inherently make it dirty or clean.  It&#8217;s a feature that you may either choose to use or not.  Personally I think this whole topic would go away if there was a proper decimal native type in Java.  That&#8217;s my need at the moment and BigDecimal (being the abomination that it is) makes using java for a project I&#8217;m on untenable.  I would love to use Java but until there is a native decimal type so I can code a = N * 10.5 + 3.25 rather than a = n.multiply(new BigDecimal(10.5) + new BigDecimal(3.25)) I will have to use C#.  Any other argument is pointless because it doesn&#8217;t change that basic fact.</p>
<p>Steve</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-327696</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Mon, 22 Dec 2008 19:01:46 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-327696</guid>
		<description>While I can certainly agree that operator overloading would only be of importance for a few limited types of data which are mathematically related, the problem I see with excluding the facility from the language entire for that reason is that the details of implementation for these types of data can vary widely, depending on need.   Some might require, for example, a 2-dimensional vector, while others might require a 3-dimensional one.  A quaternion is an example of a special type of 4-dimensional vector.  It is simply far too common a case that the implementor might want to create a specialized class for their needs, rather than falling back to a general purpose class that may not exhibit the performance requirements they desire.  Not that I&#039;m saying it&#039;s always wrong to use a general purpose class, but it is certainly not uncommon for an implementor to eventually need to write customized versions of otherwise common types that meet the specific needs of the software being written.  Thus, the actual number of specific cases for which operator overloading could actually be useful is orders of magnitude larger than it might first appear if one only considers the admittedly few categories of classes for which it would be most beneficial.

Now how would I recommend that operator overloading be added to the language in such a way that it wouldn&#039;t be abused?  Unfortunately, as another poster remarked, it&#039;s just as easy for a lazy programmer to name a function  plugh() as it is for somebody to abuse an otherwise useful feature like operator overloading to create code that is not easily understood.   I suspect that adding a notion of const-correctness to java and requiring that overloaded operators observe such correctness on their parameters would help matters somewhat, but of course I&#039;m sure that even that could probably be hacked around.</description>
		<content:encoded><![CDATA[<p>While I can certainly agree that operator overloading would only be of importance for a few limited types of data which are mathematically related, the problem I see with excluding the facility from the language entire for that reason is that the details of implementation for these types of data can vary widely, depending on need.   Some might require, for example, a 2-dimensional vector, while others might require a 3-dimensional one.  A quaternion is an example of a special type of 4-dimensional vector.  It is simply far too common a case that the implementor might want to create a specialized class for their needs, rather than falling back to a general purpose class that may not exhibit the performance requirements they desire.  Not that I&#8217;m saying it&#8217;s always wrong to use a general purpose class, but it is certainly not uncommon for an implementor to eventually need to write customized versions of otherwise common types that meet the specific needs of the software being written.  Thus, the actual number of specific cases for which operator overloading could actually be useful is orders of magnitude larger than it might first appear if one only considers the admittedly few categories of classes for which it would be most beneficial.</p>
<p>Now how would I recommend that operator overloading be added to the language in such a way that it wouldn&#8217;t be abused?  Unfortunately, as another poster remarked, it&#8217;s just as easy for a lazy programmer to name a function  plugh() as it is for somebody to abuse an otherwise useful feature like operator overloading to create code that is not easily understood.   I suspect that adding a notion of const-correctness to java and requiring that overloaded operators observe such correctness on their parameters would help matters somewhat, but of course I&#8217;m sure that even that could probably be hacked around.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Jordan</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-277702</link>
		<dc:creator>Eric Jordan</dc:creator>
		<pubDate>Tue, 02 Sep 2008 03:34:43 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-277702</guid>
		<description>I absolutely understand the motivation to leave powerful features out of Java - most Java code in the Real World is written by pretty mediocre programmers, and people debugging their code need to be protected from them.  This I get.

However, as has been admitted by many people here, there are many use cases where certain overloads absolutely make sense, and where the lack of these overloads makes using these objects in Java quite obnoxious: BigDecimal, BigInteger, vectors, complex numbers, matrices, and quaternions are the ones that people are usually thinking of when they beg for operator overloading.

There&#039;s an obvious solution here: if giving us operator overloading hurts too much (I&#039;m not entirely convinced, but...), we could at least be provided with Magic Objects (like String) for each of these important and commonly used types, and have the compiler specially add that syntax sugar.  That adds some new syntax, so it will probably never happen, but it seems like an extremely reasonable solution to me...</description>
		<content:encoded><![CDATA[<p>I absolutely understand the motivation to leave powerful features out of Java &#8211; most Java code in the Real World is written by pretty mediocre programmers, and people debugging their code need to be protected from them.  This I get.</p>
<p>However, as has been admitted by many people here, there are many use cases where certain overloads absolutely make sense, and where the lack of these overloads makes using these objects in Java quite obnoxious: BigDecimal, BigInteger, vectors, complex numbers, matrices, and quaternions are the ones that people are usually thinking of when they beg for operator overloading.</p>
<p>There&#8217;s an obvious solution here: if giving us operator overloading hurts too much (I&#8217;m not entirely convinced, but&#8230;), we could at least be provided with Magic Objects (like String) for each of these important and commonly used types, and have the compiler specially add that syntax sugar.  That adds some new syntax, so it will probably never happen, but it seems like an extremely reasonable solution to me&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ingo</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-121242</link>
		<dc:creator>Ingo</dc:creator>
		<pubDate>Wed, 22 Aug 2007 09:19:55 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-121242</guid>
		<description>Strange, nobody ever mentioned the built-in ambiguities in methods with names like &quot;add(obj)&quot; or &quot;remove(obj)&quot;. I find it always very confusing that some of those work on their object instance, others don&#039;t change that and return a newly created object with the result. Some - and that&#039;s what really makes it difficult - do both. So often, I have to trace bugs that arise from me expecting a method just to return the result, but on the way changing the instance as well. And vice versa.

My proposal for (dual) operator overloading is such:
1.The result is returned.
2.No object instance is mutated.

1 is obvious. 2 could be enforced by the compiler - at least I&#039;m sure it could. Just make assignments to this.* invalid. This rids you of the problem (which is, in fact, there in C++ as well). [Granted, there may be ways to do it by side-effects, but hey!, in complex languages like Java you can always work-around something. And if it&#039;s by reflection...]
Of course, never anybody will be able to keep dumbheads from inventing strange uses for specific operators. But I&#039;ve seen similar things with named methods.

And there&#039;s oh so many uses for operator overloading. After Java5, it&#039;s the one thing I always said is missing from Java to make it a great programming language. Remember generics? Done mainly with preprocessor in C - baaad. Great implementation in Java. Why not try to do it the same way in Java, getting rid of the problems. Granted, there may be more to it than my two cents above, but that already rids you of one ambiguity...</description>
		<content:encoded><![CDATA[<p>Strange, nobody ever mentioned the built-in ambiguities in methods with names like &#8220;add(obj)&#8221; or &#8220;remove(obj)&#8221;. I find it always very confusing that some of those work on their object instance, others don&#8217;t change that and return a newly created object with the result. Some &#8211; and that&#8217;s what really makes it difficult &#8211; do both. So often, I have to trace bugs that arise from me expecting a method just to return the result, but on the way changing the instance as well. And vice versa.</p>
<p>My proposal for (dual) operator overloading is such:<br />
1.The result is returned.<br />
2.No object instance is mutated.</p>
<p>1 is obvious. 2 could be enforced by the compiler &#8211; at least I&#8217;m sure it could. Just make assignments to this.* invalid. This rids you of the problem (which is, in fact, there in C++ as well). [Granted, there may be ways to do it by side-effects, but hey!, in complex languages like Java you can always work-around something. And if it's by reflection...]<br />
Of course, never anybody will be able to keep dumbheads from inventing strange uses for specific operators. But I&#8217;ve seen similar things with named methods.</p>
<p>And there&#8217;s oh so many uses for operator overloading. After Java5, it&#8217;s the one thing I always said is missing from Java to make it a great programming language. Remember generics? Done mainly with preprocessor in C &#8211; baaad. Great implementation in Java. Why not try to do it the same way in Java, getting rid of the problems. Granted, there may be more to it than my two cents above, but that already rids you of one ambiguity&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: me22</title>
		<link>http://cafe.elharo.com/programming/operator-overloading-considered-harmful/comment-page-1/#comment-57490</link>
		<dc:creator>me22</dc:creator>
		<pubDate>Sun, 18 Feb 2007 06:07:32 +0000</pubDate>
		<guid isPermaLink="false">http://cafe.elharo.com/java/operator-overloading-considered-harmful/#comment-57490</guid>
		<description>In other news, because programmers can&#039;t be trusted to make a function named add actually add its arguments together, we should get rid of functions.</description>
		<content:encoded><![CDATA[<p>In other news, because programmers can&#8217;t be trusted to make a function named add actually add its arguments together, we should get rid of functions.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

