<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Java still mostly sucks. Film at 11</title>
	<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/</link>
	<description>Everything and the kitchen sink</description>
	<pubDate>Wed, 09 Jul 2008 01:57:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.3</generator>

	<item>
		<title>by: Cees&#8217; Blog &#187; Blog Archive &#187; Java Sucks, revisited</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-780</link>
		<pubDate>Sat, 26 Aug 2006 17:50:37 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-780</guid>
					<description>[...] In my  previous Java-bashing post, people started to pick the example apart rather than comment on the fact that Java still is missing some very obvious functionality, like closures. So I won&amp;#8217;t come up with another example  . [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] In my  previous Java-bashing post, people started to pick the example apart rather than comment on the fact that Java still is missing some very obvious functionality, like closures. So I won&#8217;t come up with another example  . [&#8230;]
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: cdegroot</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-778</link>
		<pubDate>Sat, 26 Aug 2006 16:12:45 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-778</guid>
					<description>John - &quot;advanced&quot;? I'd say &quot;retarded&quot;, in exactly the same way that C++ retarded itself by attempting to patch all the glaring holes in the original language spec going down a dead end. Java is all about trying to apply the most complex solution to any given problem (happily assisted by the W3C, it seems, who are doing their bit at the XML end). I wonder what sort of freak construct they'll use by the time the Java boys decide to implement higher order functions/closures :-)</description>
		<content:encoded><![CDATA[<p>John - &#8220;advanced&#8221;? I&#8217;d say &#8220;retarded&#8221;, in exactly the same way that C++ retarded itself by attempting to patch all the glaring holes in the original language spec going down a dead end. Java is all about trying to apply the most complex solution to any given problem (happily assisted by the W3C, it seems, who are doing their bit at the XML end). I wonder what sort of freak construct they&#8217;ll use by the time the Java boys decide to implement higher order functions/closures <img src='http://www.cdegroot.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: John</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-764</link>
		<pubDate>Thu, 24 Aug 2006 11:26:39 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-764</guid>
					<description>Your last experience was 7 years ago no wonder working Java has become more advanced. Though I agree that working with it is not much of a pleasure.</description>
		<content:encoded><![CDATA[<p>Your last experience was 7 years ago no wonder working Java has become more advanced. Though I agree that working with it is not much of a pleasure.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Dave Newton</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-759</link>
		<pubDate>Wed, 23 Aug 2006 12:47:53 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-759</guid>
					<description>My impression was that the ultiamte issue being discussed was that Java doesn't allow you to /easily/ eliminate a particular noisy syntactic construct, in this case an identical &quot;if&quot; statement in a large-ish collection of methods.

Of course, you /could/ use a proxy-based decorator which could certainly handle all of these requirements, but then you need to change your code to use the decorator rather than the underlying object. It would be trivial to create a way of associating objects and methods with said decorator.

But... that sucks. Java doesn't allow you to easily and /transparently/ manipulate itself to get what you want without resorting to such treachery or, even worse, direct byte-code manipulation.</description>
		<content:encoded><![CDATA[<p>My impression was that the ultiamte issue being discussed was that Java doesn&#8217;t allow you to /easily/ eliminate a particular noisy syntactic construct, in this case an identical &#8220;if&#8221; statement in a large-ish collection of methods.</p>
<p>Of course, you /could/ use a proxy-based decorator which could certainly handle all of these requirements, but then you need to change your code to use the decorator rather than the underlying object. It would be trivial to create a way of associating objects and methods with said decorator.</p>
<p>But&#8230; that sucks. Java doesn&#8217;t allow you to easily and /transparently/ manipulate itself to get what you want without resorting to such treachery or, even worse, direct byte-code manipulation.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Isaac Gouy</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-755</link>
		<pubDate>Tue, 22 Aug 2006 16:58:37 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-755</guid>
					<description>I wonder if java.lang.NullPointerException is logged and swallowed. I wonder if that would be the place to catch &amp;#38; convert ApiException into ApiResult.</description>
		<content:encoded><![CDATA[<p>I wonder if java.lang.NullPointerException is logged and swallowed. I wonder if that would be the place to catch &amp; convert ApiException into ApiResult.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Isaac Gouy</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-751</link>
		<pubDate>Sun, 20 Aug 2006 23:32:34 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-751</guid>
					<description>I wonder what happens when doSomething(String key, ...) throws java.lang.NullPointerException ?</description>
		<content:encoded><![CDATA[<p>I wonder what happens when doSomething(String key, &#8230;) throws java.lang.NullPointerException ?
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Isaac Gouy</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-749</link>
		<pubDate>Sun, 20 Aug 2006 16:02:29 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-749</guid>
					<description>&quot;the SOAP interface specification is a requirement&quot;
Here's the SOAP spec
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507

&quot;In light of this requirement, Java is not expressive enough to cleanly implement a solution.&quot; 
Huh? 
Is there something about Java that prevents use of SOAP faults? (It's really hard to understand what you mean by such an unspecific claim.)</description>
		<content:encoded><![CDATA[<p>&#8220;the SOAP interface specification is a requirement&#8221;<br />
Here&#8217;s the SOAP spec<br />
<a href='http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507' rel='nofollow'>http://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383507</a></p>
<p>&#8220;In light of this requirement, Java is not expressive enough to cleanly implement a solution.&#8221;<br />
Huh?<br />
Is there something about Java that prevents use of SOAP faults? (It&#8217;s really hard to understand what you mean by such an unspecific claim.)
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: cdegroot</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-744</link>
		<pubDate>Sat, 19 Aug 2006 11:23:43 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-744</guid>
					<description>Isaac - the SOAP interface specification is a requirement. In light of this requirement, Java is not expressive enough to cleanly implement a solution. Period.</description>
		<content:encoded><![CDATA[<p>Isaac - the SOAP interface specification is a requirement. In light of this requirement, Java is not expressive enough to cleanly implement a solution. Period.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Isaac Gouy</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-742</link>
		<pubDate>Fri, 18 Aug 2006 22:02:35 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-742</guid>
					<description>But you didn't leave it at that, you tacked on some more personal remarks.

Your point was that Java doesn't allow you to refactor code the way you would refactor code in Smalltalk. That's true - Java doesn't allow you to refactor code the way you would in Smalltalk. 
Smalltalk idioms might not translate to Java.

The specific example you choose to make that point with seems to have been based on the belief that exceptions couldn't/shouldn't/wouldn't propagate from SOAP server to SOAP client. afaict that was a mistaken belief - was it a misunderstanding?

&quot;non-falsifiable statements&quot;
On the contrary these statements are falsifiable
- client programs will need to handle SOAP faults
- returning error values forces clients to use 2 separate mechanisms, one to handle SOAP faults and one to handle application error values; and we can avoid that duplication in the many client programs by signalling application errors with SOAP faults
- if (!authenticate(key)) demonstrates that Java is expressive enough to allow you to ignore the normal way of dealing with error conditions

Are these claims you make against me falsifiable? 
&quot;You shift the burden to the programmer... you shift it to his customers... while refusing to see anything wrong with Java.&quot;</description>
		<content:encoded><![CDATA[<p>But you didn&#8217;t leave it at that, you tacked on some more personal remarks.</p>
<p>Your point was that Java doesn&#8217;t allow you to refactor code the way you would refactor code in Smalltalk. That&#8217;s true - Java doesn&#8217;t allow you to refactor code the way you would in Smalltalk.<br />
Smalltalk idioms might not translate to Java.</p>
<p>The specific example you choose to make that point with seems to have been based on the belief that exceptions couldn&#8217;t/shouldn&#8217;t/wouldn&#8217;t propagate from SOAP server to SOAP client. afaict that was a mistaken belief - was it a misunderstanding?</p>
<p>&#8220;non-falsifiable statements&#8221;<br />
On the contrary these statements are falsifiable<br />
- client programs will need to handle SOAP faults<br />
- returning error values forces clients to use 2 separate mechanisms, one to handle SOAP faults and one to handle application error values; and we can avoid that duplication in the many client programs by signalling application errors with SOAP faults<br />
- if (!authenticate(key)) demonstrates that Java is expressive enough to allow you to ignore the normal way of dealing with error conditions</p>
<p>Are these claims you make against me falsifiable?<br />
&#8220;You shift the burden to the programmer&#8230; you shift it to his customers&#8230; while refusing to see anything wrong with Java.&#8221;
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: cdegroot</title>
		<link>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-739</link>
		<pubDate>Fri, 18 Aug 2006 09:21:41 +0000</pubDate>
		<guid>http://www.cdegroot.com/blog/2006/08/15/java-still-mostly-sucks-film-at-11/#comment-739</guid>
					<description>Sigh. I'll leave it at that, Isaac. As always, you fail to see the point (being here just another example of Java's limited expressiveness, rather than debating how my customers should write code). You shift the burden to the programmer, and if that doesn't work, you shift it to his customers (or the requirements, or whatever), all the while refusing to see anything wrong with Java. That's the sort of reasoning that is typical of religious converts, who end up with loads of non-falsifiable statements that you simply cannot argue against. Therefore, I won't.</description>
		<content:encoded><![CDATA[<p>Sigh. I&#8217;ll leave it at that, Isaac. As always, you fail to see the point (being here just another example of Java&#8217;s limited expressiveness, rather than debating how my customers should write code). You shift the burden to the programmer, and if that doesn&#8217;t work, you shift it to his customers (or the requirements, or whatever), all the while refusing to see anything wrong with Java. That&#8217;s the sort of reasoning that is typical of religious converts, who end up with loads of non-falsifiable statements that you simply cannot argue against. Therefore, I won&#8217;t.
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
