<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Clay Lenhart's Blog &#187; Immutable</title>
	<atom:link href="http://clay.lenharts.net/blog/tag/immutable/feed/" rel="self" type="application/rss+xml" />
	<link>http://clay.lenharts.net/blog</link>
	<description>A blog on .Net and SQL Server</description>
	<lastBuildDate>Tue, 31 Oct 2017 10:34:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>Functional Language Explosion</title>
		<link>http://clay.lenharts.net/blog/2008/10/18/functional-language-exploision/</link>
		<comments>http://clay.lenharts.net/blog/2008/10/18/functional-language-exploision/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 10:50:02 +0000</pubDate>
		<dc:creator><![CDATA[Clay Lenhart]]></dc:creator>
				<category><![CDATA[Languages]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional Langauges]]></category>
		<category><![CDATA[Immutable]]></category>

		<guid isPermaLink="false">http://clay.lenharts.net/blog/?p=41</guid>
		<description><![CDATA[There is suddenly a lot of interest in functional languages recently.  The two advantages are writing a DSL (Domain Specific Language) and writing concurrent code. The languages that seem to come up are Clojure (JVM), F# (based on OCaml, Haskell, and ML) (.Net CLR), and Erlang (JVM).
 <a href="http://clay.lenharts.net/blog/2008/10/18/functional-language-exploision/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>There is suddenly a lot of interest in <a href="http://en.wikipedia.org/wiki/Functional_programming">functional languages </a>recently.  The two advantages are</p>
<ul>
<li>Writing a DSL (Domain Specific Language)</li>
<li>Writing concurrent code</li>
</ul>
<p>The languages that seem to come up are:</p>
<ul>
<li><a href="http://clojure.org/">Clojure</a> (JVM)</li>
<li><a href="http://msdn.microsoft.com/en-gb/fsharp/default.aspx">F#</a> (based on OCaml, Haskell, and ML) (.Net CLR)</li>
<li><a href="http://www.erlang.org/">Erlang</a> <span style="text-decoration: line-through;">(JVM)</span></li>
</ul>
<p>I&#8217;m not particularly interested in DSL (despite my last post on <a href="http://clay.lenharts.net/blog/2008/10/18/code-generator-built-in-to-vs-2008/">code generators</a>), however as CPUs contain more and more cores, we&#8217;ll need a way to safely write multithreaded code.</p>
<p>The Clojure project has an interesting post on its approach on <a href="http://clojure.org/state">simplifying multithreaded code</a>.</p>
<p>Erlang handles concurrency by only having local variables and providing a way to send messages to and from other threads.</p>
<p>Lastly, <a href="http://www.osl.iu.edu/research/mpi.net/">MPI </a>is a .Net library for distributed processing where the same program executes multiple times and each instance communicates with each other using message passing which sounds very Erlang-like.</p>
]]></content:encoded>
			<wfw:commentRss>http://clay.lenharts.net/blog/2008/10/18/functional-language-exploision/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Advantages of Immutable Data</title>
		<link>http://clay.lenharts.net/blog/2008/02/16/advantages-of-immutable-data/</link>
		<comments>http://clay.lenharts.net/blog/2008/02/16/advantages-of-immutable-data/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 19:44:01 +0000</pubDate>
		<dc:creator><![CDATA[Clay Lenhart]]></dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Immutable]]></category>

		<guid isPermaLink="false">http://clay.lenharts.net/blog/2008/02/16/advantages-of-immutable-data/</guid>
		<description><![CDATA[I was reading about two of Google&#8217;s internal programs, Bigtable and Google File System, and how they handle a large amounts of data so that the processing is distributed (Bigtable) and the data is replicated (Google File System). One thing &#8230; <a href="http://clay.lenharts.net/blog/2008/02/16/advantages-of-immutable-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I was reading about two of Google&#8217;s internal programs, <a href="http://www.usenix.org/events/osdi06/tech/chang/chang_html/index.html">Bigtable</a> and <a href="http://labs.google.com/papers/gfs.html">Google File System</a>, and how they handle a large amounts of data so that the processing is distributed (Bigtable) and the data is replicated (Google File System).  One thing they both do is exploit immutability.  So once something is saved to disk, that block of data doesn&#8217;t change.  If you have a large volume of data, this assumption can be very useful.</p>
<p>Let&#8217;s say we&#8217;re talking about a transaction table for bank accounts. Records in the transaction table don&#8217;t change.  Any corrections are handled by creating a new transaction record at the tail end of the table.  If you are processing the transactions, this is great! You can ignore previously processed records since you know they will never change.</p>
]]></content:encoded>
			<wfw:commentRss>http://clay.lenharts.net/blog/2008/02/16/advantages-of-immutable-data/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>
