<?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: Java&#8217;s final modifier is backwards</title>
	<atom:link href="http://jakeherringbone.com/2008/12/javas-final-modifier/feed/" rel="self" type="application/rss+xml" />
	<link>http://jakeherringbone.com/2008/12/javas-final-modifier/</link>
	<description>My thoughts on life, work, coding, and stuff I like.</description>
	<lastBuildDate>Tue, 09 Mar 2010 18:51:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Assert, Validate, Precondition &#124; Jake Herringbone</title>
		<link>http://jakeherringbone.com/2008/12/javas-final-modifier/comment-page-1/#comment-65</link>
		<dc:creator>Assert, Validate, Precondition &#124; Jake Herringbone</dc:creator>
		<pubDate>Sat, 17 Jan 2009 20:26:31 +0000</pubDate>
		<guid isPermaLink="false">http://jakeherringbone.com/?p=127#comment-65</guid>
		<description>[...] Immutability - final should be the default [...]</description>
		<content:encoded><![CDATA[<p>[...] Immutability &#8211; final should be the default [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://jakeherringbone.com/2008/12/javas-final-modifier/comment-page-1/#comment-50</link>
		<dc:creator>Alex</dc:creator>
		<pubDate>Fri, 05 Dec 2008 21:32:22 +0000</pubDate>
		<guid isPermaLink="false">http://jakeherringbone.com/?p=127#comment-50</guid>
		<description>It turns out that there was a bug created in the JCP to make use of the const keyword - it&#039;s currently a ghost in Java, as it has no semantic meaning. The bug description includes a thorough treatment of how the const keyword would support immutability.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4211070</description>
		<content:encoded><![CDATA[<p>It turns out that there was a bug created in the JCP to make use of the const keyword &#8211; it&#8217;s currently a ghost in Java, as it has no semantic meaning. The bug description includes a thorough treatment of how the const keyword would support immutability.</p>
<p><a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4211070" rel="nofollow">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4211070</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gabe</title>
		<link>http://jakeherringbone.com/2008/12/javas-final-modifier/comment-page-1/#comment-46</link>
		<dc:creator>gabe</dc:creator>
		<pubDate>Thu, 04 Dec 2008 08:14:02 +0000</pubDate>
		<guid isPermaLink="false">http://jakeherringbone.com/?p=127#comment-46</guid>
		<description>I think Java collections should have had immutable base classes with mutable subclasses, like List/MutableList (like how Cocoa does NSArray/NSMutableArray). I also really dig the var, val syntax where you define the type after the name, like: var foo:Bar; or in cases where you want to be dynamic and immutable: val foo = new Bar(); (or var foo:* = new Bar(). Thats where languages like Actionscript have a big win. It also becomes easier to add modifiers like val after the fact.

I wonder if, much like how Actionscript supports static or dynamic typing (and ability to turn it on or off at compile or runtime), you could turn on the enforcing of immutable references in the same way. Then you would have a language that can be either static/dynamic and mutable/immutable. And it would be fun to use this language to build a web framework (dynamic, mutable) or a highly concurrent message bus (static, immutable). Kind of like polygot programming but without the need for all the different languages and runtime integration.</description>
		<content:encoded><![CDATA[<p>I think Java collections should have had immutable base classes with mutable subclasses, like List/MutableList (like how Cocoa does NSArray/NSMutableArray). I also really dig the var, val syntax where you define the type after the name, like: var foo:Bar; or in cases where you want to be dynamic and immutable: val foo = new Bar(); (or var foo:* = new Bar(). Thats where languages like Actionscript have a big win. It also becomes easier to add modifiers like val after the fact.</p>
<p>I wonder if, much like how Actionscript supports static or dynamic typing (and ability to turn it on or off at compile or runtime), you could turn on the enforcing of immutable references in the same way. Then you would have a language that can be either static/dynamic and mutable/immutable. And it would be fun to use this language to build a web framework (dynamic, mutable) or a highly concurrent message bus (static, immutable). Kind of like polygot programming but without the need for all the different languages and runtime integration.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

