<?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: Does Java cause self-delusion?</title>
	<atom:link href="http://blog.tmorris.net/does-java-cause-self-delusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tmorris.net/does-java-cause-self-delusion/</link>
	<description>The weblog of Tony Morris</description>
	<pubDate>Tue, 06 Jan 2009 11:34:37 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Jeff Heon</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1751</link>
		<dc:creator>Jeff Heon</dc:creator>
		<pubDate>Mon, 07 Jan 2008 00:04:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1751</guid>
		<description>Hello Tony,

Thank you very much for your reply and your time!

I will have a look at either Scala or F#. I guess it doesn't really matter which one, just as long as I learn something new 8).</description>
		<content:encoded><![CDATA[<p>Hello Tony,</p>
<p>Thank you very much for your reply and your time!</p>
<p>I will have a look at either Scala or F#. I guess it doesn&#8217;t really matter which one, just as long as I learn something new 8).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Morris</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1750</link>
		<dc:creator>Tony Morris</dc:creator>
		<pubDate>Sun, 06 Jan 2008 23:21:48 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1750</guid>
		<description>Hi Jeff,
Welcome to my rant space :) I think I would have significant trouble answering your question in a way that I feel is complete and accurate. It usually works like this; someone presents a thorough explanation of why Java really is as bad as people like me say it is (as a side note; I hold 3 Sun Java Certifications and I know the language back-to-front). A group of people who understand the explanation applaud it and welcome it into the programming community. Another group, who are severely under-qualified to even pass comment on the work (let alone critical comment), openly criticise it using various forms of logical fallacy and what-have-you. It really is like a selection process, since today, less and less people are challenging what the intellectuals have known all along.

The languages that you describe all fit into one category; eagerly evaluated, imperative languages. They also possess very poor type systems (an entire topic on its own). So, if I were to try to answer your question, I'd really focus on the underlying premise of these languages, rather than a specific language. Java has the unique attribute of having an incredibly low barrier to entry. I see it as the very bottom of the intellectual pool, despite displaying very little different to other languages such as C/C++, C#, etc.

Nevertheless, I try not to concern myself in such "wars". I am not a member of the "Java tribe" or the "Scala tribe" or any tribe. I spend any time I have, learning the deeper programming language theory itself, not what the latest marketing buzz is. This allows me to learn and use different languages very efficiently.

I strongly encourage you to take a look at Scala or F# and if you have any questions, please feel free to contact me somehow! I can also point you to others who would be most willing to help.

Have a good one ;)</description>
		<content:encoded><![CDATA[<p>Hi Jeff,<br />
Welcome to my rant space <img src='http://blog.tmorris.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> I think I would have significant trouble answering your question in a way that I feel is complete and accurate. It usually works like this; someone presents a thorough explanation of why Java really is as bad as people like me say it is (as a side note; I hold 3 Sun Java Certifications and I know the language back-to-front). A group of people who understand the explanation applaud it and welcome it into the programming community. Another group, who are severely under-qualified to even pass comment on the work (let alone critical comment), openly criticise it using various forms of logical fallacy and what-have-you. It really is like a selection process, since today, less and less people are challenging what the intellectuals have known all along.</p>
<p>The languages that you describe all fit into one category; eagerly evaluated, imperative languages. They also possess very poor type systems (an entire topic on its own). So, if I were to try to answer your question, I&#8217;d really focus on the underlying premise of these languages, rather than a specific language. Java has the unique attribute of having an incredibly low barrier to entry. I see it as the very bottom of the intellectual pool, despite displaying very little different to other languages such as C/C++, C#, etc.</p>
<p>Nevertheless, I try not to concern myself in such &#8220;wars&#8221;. I am not a member of the &#8220;Java tribe&#8221; or the &#8220;Scala tribe&#8221; or any tribe. I spend any time I have, learning the deeper programming language theory itself, not what the latest marketing buzz is. This allows me to learn and use different languages very efficiently.</p>
<p>I strongly encourage you to take a look at Scala or F# and if you have any questions, please feel free to contact me somehow! I can also point you to others who would be most willing to help.</p>
<p>Have a good one <img src='http://blog.tmorris.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Heon</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1749</link>
		<dc:creator>Jeff Heon</dc:creator>
		<pubDate>Sun, 06 Jan 2008 15:18:55 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1749</guid>
		<description>Hello Tony,

I stumbled upon your blog while searching for articles about Scala.

Anyhow, I was wondering why Java is such a bad language (apart for causing self-delusion ;) .)

My background is mainly procedural. I learned basic (maybe I was doomed from the start?) and assembly on the commodore 64. I moved on the C and then C++. I was really enjoying C++, but after reading books like thinking in C++ and effective C++, I got to realize that the amount of effort and dedication to learn all the C++ subtleties was quite high.

I then got the opportunity to use Java and quite likes it's simplicity.

I later got into C sharp doing web in asp.net. Sometimes vb.net too.

Except in the case of C++, it looks to me that Java, C# and VB.net are essentially all the same. Even more with virtual machines where we are the opportunity to use the same libraries across different languages.

Sorry this post is getting really long and pointless.

I guess my question really is, not having been exposed functional programming, what is really missing or wrong in the Java language that makes it bad? I'm eager to learn this to improve myself as a developer.

On a side note, have you also tried F#, which is also a mix of functional and OO concepts like Scala?</description>
		<content:encoded><![CDATA[<p>Hello Tony,</p>
<p>I stumbled upon your blog while searching for articles about Scala.</p>
<p>Anyhow, I was wondering why Java is such a bad language (apart for causing self-delusion <img src='http://blog.tmorris.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .)</p>
<p>My background is mainly procedural. I learned basic (maybe I was doomed from the start?) and assembly on the commodore 64. I moved on the C and then C++. I was really enjoying C++, but after reading books like thinking in C++ and effective C++, I got to realize that the amount of effort and dedication to learn all the C++ subtleties was quite high.</p>
<p>I then got the opportunity to use Java and quite likes it&#8217;s simplicity.</p>
<p>I later got into C sharp doing web in asp.net. Sometimes vb.net too.</p>
<p>Except in the case of C++, it looks to me that Java, C# and VB.net are essentially all the same. Even more with virtual machines where we are the opportunity to use the same libraries across different languages.</p>
<p>Sorry this post is getting really long and pointless.</p>
<p>I guess my question really is, not having been exposed functional programming, what is really missing or wrong in the Java language that makes it bad? I&#8217;m eager to learn this to improve myself as a developer.</p>
<p>On a side note, have you also tried F#, which is also a mix of functional and OO concepts like Scala?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: blog.leenarts.net &#38;#187; Java: The dark side of Programming</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1748</link>
		<dc:creator>blog.leenarts.net &#38;#187; Java: The dark side of Programming</dc:creator>
		<pubDate>Sun, 16 Dec 2007 15:48:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1748</guid>
		<description>[...] Some recent related links: http://www.theserverside.com/news/thread.tss?thread_id=47732 http://blog.tmorris.net/does-java-cause-self-delusion/ http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html [...]</description>
		<content:encoded><![CDATA[<p>[...] Some recent related links: <a href="http://www.theserverside.com/news/thread.tss?thread_id=47732" onclick="javascript:pageTracker._trackPageview('/outbound/comment/www.theserverside.com');" rel="nofollow">http://www.theserverside.com/news/thread.tss?thread_id=47732</a> <a href="http://blog.tmorris.net/does-java-cause-self-delusion/"  rel="nofollow">http://blog.tmorris.net/does-java-cause-self-delusion/</a> <a href="http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html" onclick="javascript:pageTracker._trackPageview('/outbound/comment/www.joelonsoftware.com');" rel="nofollow">http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Morris</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1747</link>
		<dc:creator>Tony Morris</dc:creator>
		<pubDate>Thu, 06 Dec 2007 21:47:57 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1747</guid>
		<description>Hi Anonymous,
Some on reddit posted a similar counter-argument to yours and I am still considering it. However, I admit that it certainly sounds very plausible in the early stages of my thinking; perhaps a combination of our two explanations? Thanks for the insight, it is most appreciated.</description>
		<content:encoded><![CDATA[<p>Hi Anonymous,<br />
Some on reddit posted a similar counter-argument to yours and I am still considering it. However, I admit that it certainly sounds very plausible in the early stages of my thinking; perhaps a combination of our two explanations? Thanks for the insight, it is most appreciated.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anonymous</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1746</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Thu, 06 Dec 2007 15:36:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1746</guid>
		<description>I think you're mistaking the cause with the effect.  Java has achieved the status of mainstream language (right up there with C and C++, whose proponents I've personally known to be just as bad as the Java programmers you describe).  Mainstream languages are in the perhaps-unfortunate position of being adopted by the masses.  The negative association here sounds like a side effect of the language's success.

You'll probably respond that it's Java's failings that have caused this mass adoption by the intellectually challenged programmer (Visual Basic comes to mind as an example supporting this argument).  But even the intellectually gifted programmer should acknowledge the existence of the masses' wisdom as well as stupidity.  This leads me to conclude that we should judge a language based on it's features, not based on the people who use it.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;re mistaking the cause with the effect.  Java has achieved the status of mainstream language (right up there with C and C++, whose proponents I&#8217;ve personally known to be just as bad as the Java programmers you describe).  Mainstream languages are in the perhaps-unfortunate position of being adopted by the masses.  The negative association here sounds like a side effect of the language&#8217;s success.</p>
<p>You&#8217;ll probably respond that it&#8217;s Java&#8217;s failings that have caused this mass adoption by the intellectually challenged programmer (Visual Basic comes to mind as an example supporting this argument).  But even the intellectually gifted programmer should acknowledge the existence of the masses&#8217; wisdom as well as stupidity.  This leads me to conclude that we should judge a language based on it&#8217;s features, not based on the people who use it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pseudonym</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1745</link>
		<dc:creator>Pseudonym</dc:creator>
		<pubDate>Thu, 06 Dec 2007 00:24:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1745</guid>
		<description>LordSauron:

&lt;blockquote&gt;Java belongs relegated to the miserable little server apps it was designed for.&lt;/blockquote&gt;

It was not designed for that!  (That's one of the reasons why it's not that good at it.)

Java was designed for mobility: running untrusted code on your CPU.  It was used in the browser (HotJava, to be precise) before it was ever used on a server.</description>
		<content:encoded><![CDATA[<p>LordSauron:</p>
<blockquote><p>Java belongs relegated to the miserable little server apps it was designed for.</p></blockquote>
<p>It was not designed for that!  (That&#8217;s one of the reasons why it&#8217;s not that good at it.)</p>
<p>Java was designed for mobility: running untrusted code on your CPU.  It was used in the browser (HotJava, to be precise) before it was ever used on a server.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: LordSauron</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1744</link>
		<dc:creator>LordSauron</dc:creator>
		<pubDate>Wed, 05 Dec 2007 22:49:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1744</guid>
		<description>I've used Java quite extensively, though not on any large projects (curse of opportunity), and Java has it's place.

Java belongs relegated to the miserable little server apps it was designed for.

Java didn't make me dumb, rather, I think that taught properly it's a good learning language for OOP, specifically a good primer for C++.  A couple years on Java, and you'll be so sick of single-inheritance that C++ will be positively liberating when you finally switch!

Java does have the curious side effect of gathering all the idiots, since it is the gateway programming language.  That is rather to be expected, however.  In fact, I think the main side effect of Java is just over-eager optimization.  Strings being an immutable type is something that no one remembers; I see string concatentation all over the place, so people tend to think that Java is very slow.  It isn't very slow, it's just plain slow.  So they come to C++ trying to effect every optimization possible, which is annoying, but I'll grow out of it, eventually.

So, in other words, you're trying to answer the question "which came first, Java, or the novice programmer?"</description>
		<content:encoded><![CDATA[<p>I&#8217;ve used Java quite extensively, though not on any large projects (curse of opportunity), and Java has it&#8217;s place.</p>
<p>Java belongs relegated to the miserable little server apps it was designed for.</p>
<p>Java didn&#8217;t make me dumb, rather, I think that taught properly it&#8217;s a good learning language for OOP, specifically a good primer for C++.  A couple years on Java, and you&#8217;ll be so sick of single-inheritance that C++ will be positively liberating when you finally switch!</p>
<p>Java does have the curious side effect of gathering all the idiots, since it is the gateway programming language.  That is rather to be expected, however.  In fact, I think the main side effect of Java is just over-eager optimization.  Strings being an immutable type is something that no one remembers; I see string concatentation all over the place, so people tend to think that Java is very slow.  It isn&#8217;t very slow, it&#8217;s just plain slow.  So they come to C++ trying to effect every optimization possible, which is annoying, but I&#8217;ll grow out of it, eventually.</p>
<p>So, in other words, you&#8217;re trying to answer the question &#8220;which came first, Java, or the novice programmer?&#8221;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ravi</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1743</link>
		<dc:creator>Ravi</dc:creator>
		<pubDate>Wed, 05 Dec 2007 22:26:13 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1743</guid>
		<description>I have come to hate any language that takes away options from you, that removes you so far away from the the machine that one no longer can relate to the machine, java is just an example of the many delusional people.

-- a parady of what I think of java people --
ac vs dc for power transmission

java people == lets use dc its so much easier, we don't need transformers every where - ugh omg look at all these transformers, lets put dc on the lines, sure its a little inefficient but look @ how much money you will be saving on having those little transformers everywhere, omg and everyone would have to learn how ac power dynamics work ... you have power factors sin waves all over omg omg omg its so complicated!

everyone else == 'watching java squirm' while they do their thing, ac style!

like bjarne stroustrup says, people are not complaining that computers are becoming faster but that battery lives are getting shorter in comparison.</description>
		<content:encoded><![CDATA[<p>I have come to hate any language that takes away options from you, that removes you so far away from the the machine that one no longer can relate to the machine, java is just an example of the many delusional people.</p>
<p>&#8211; a parady of what I think of java people &#8211;<br />
ac vs dc for power transmission</p>
<p>java people == lets use dc its so much easier, we don&#8217;t need transformers every where - ugh omg look at all these transformers, lets put dc on the lines, sure its a little inefficient but look @ how much money you will be saving on having those little transformers everywhere, omg and everyone would have to learn how ac power dynamics work &#8230; you have power factors sin waves all over omg omg omg its so complicated!</p>
<p>everyone else == &#8216;watching java squirm&#8217; while they do their thing, ac style!</p>
<p>like bjarne stroustrup says, people are not complaining that computers are becoming faster but that battery lives are getting shorter in comparison.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonas</title>
		<link>http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1742</link>
		<dc:creator>Jonas</dc:creator>
		<pubDate>Wed, 05 Dec 2007 15:04:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.tmorris.net/does-java-cause-self-delusion/#comment-1742</guid>
		<description>I'll bite:

I'm a one-language developer and Java is that language. I studied others back in school (including both basic and advanced Haskell), but fell in love with Java when I began working.
I know Java quite well although I'm not able to keep fully up-to-date on emerging libraries and patterns. What's most important, however, is that I know what Java can and cannot do, what it's good at and where it sucks.
There are problems where another language would probably be better (subjective opinion, of course), but I stick with Java. I, and my co-workers, value the ease-of-transition and maintainability of using the same language for our tasks, out-weighing the sometimes awkward solutions produced. Best-too-for-the-job should apply, but we've found the raised barriers for knowledge transfers to be unacceptable.
Hey, maybe that's our brain damage right there?! I'm sorry you've encountered so many Java zombies, but I'll stick with it for now.</description>
		<content:encoded><![CDATA[<p>I&#8217;ll bite:</p>
<p>I&#8217;m a one-language developer and Java is that language. I studied others back in school (including both basic and advanced Haskell), but fell in love with Java when I began working.<br />
I know Java quite well although I&#8217;m not able to keep fully up-to-date on emerging libraries and patterns. What&#8217;s most important, however, is that I know what Java can and cannot do, what it&#8217;s good at and where it sucks.<br />
There are problems where another language would probably be better (subjective opinion, of course), but I stick with Java. I, and my co-workers, value the ease-of-transition and maintainability of using the same language for our tasks, out-weighing the sometimes awkward solutions produced. Best-too-for-the-job should apply, but we&#8217;ve found the raised barriers for knowledge transfers to be unacceptable.<br />
Hey, maybe that&#8217;s our brain damage right there?! I&#8217;m sorry you&#8217;ve encountered so many Java zombies, but I&#8217;ll stick with it for now.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
