<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://commons.oreilly.com/wiki/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;action=history&amp;feed=atom</id>
		<title>Prefer Domain-Specific Types to Primitive Types - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;action=history&amp;feed=atom"/>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;action=history"/>
		<updated>2013-06-20T07:12:20Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.11.0</generator>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24784&amp;oldid=prev</id>
		<title>Kevlin: Prefer definite types to primitive types moved to Prefer Domain-Specific Types to Primitive Types</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24784&amp;oldid=prev"/>
				<updated>2009-07-10T19:30:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/index.php/Prefer_definite_types_to_primitive_types&quot; title=&quot;Prefer definite types to primitive types&quot;&gt;Prefer definite types to primitive types&lt;/a&gt; moved to &lt;a href=&quot;/wiki/index.php/Prefer_Domain-Specific_Types_to_Primitive_Types&quot; title=&quot;Prefer Domain-Specific Types to Primitive Types&quot;&gt;Prefer Domain-Specific Types to Primitive Types&lt;/a&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:30, 10 July 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Kevlin</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24783&amp;oldid=prev</id>
		<title>Kevlin at 19:30, 10 July 2009</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24783&amp;oldid=prev"/>
				<updated>2009-07-10T19:30:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:30, 10 July 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;On 23rd September 1999 the $327.6 million Mars Climate Orbiter was lost while entering orbit due to a software error back on Earth. The error was later called the ''metric mix-up''. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the spacecraft's thrusters by a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;On 23rd September 1999 the $327.6 million Mars Climate Orbiter was lost while entering orbit &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;around Mars &lt;/ins&gt;due to a software error back on Earth. The error was later called the ''metric mix-up''. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the spacecraft's thrusters by a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if stronger and more &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definite &lt;/del&gt;typing had been applied. It is also an example of the rationale behind many features in the Ada language, one of whose primary design goals was to implement embedded safety-critical software. Ada &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;supports &lt;/del&gt;strong typing with static checking:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if stronger and more &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;domain-specific &lt;/ins&gt;typing had been applied. It is also an example of the rationale behind many features in the Ada language, one of whose primary design goals was to implement embedded safety-critical software. Ada &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;has &lt;/ins&gt;strong typing with static checking &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;for both primitive types and user-defined types&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Velocity_In_Knots is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Velocity_In_Knots is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definite &lt;/del&gt;typing, where they might otherwise continue to use the primitive data types offered by the language and its libraries, such as &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;string &lt;/del&gt;and floats. In Java, C++, Python, and other modern languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; VelocityInKnots&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNauticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;more domain-specific &lt;/ins&gt;typing, where they might otherwise continue to use the primitive data types offered by the language and its libraries, such as &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;strings &lt;/ins&gt;and floats. In Java, C++, Python, and other modern languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt;VelocityInKnots&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNauticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# The code becomes more readable as it expresses concepts of a domain, not just &amp;lt;code&amp;gt;Float&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# The code becomes more readable as it expresses concepts of a domain, not just &amp;lt;code&amp;gt;Float&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:24779:newid:24783 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kevlin</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24779&amp;oldid=prev</id>
		<title>Elandre at 15:39, 10 July 2009</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=24779&amp;oldid=prev"/>
				<updated>2009-07-10T15:39:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:39, 10 July 2009&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages are more likely to rely on their unit tests. The style of checking may be different, but the motivation and style of expression is not.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages are more likely to rely on their unit tests. The style of checking may be different, but the motivation and style of expression is not.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The moral is to start exploring &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definite typing &lt;/del&gt;for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The moral is to start exploring &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;domain-specific types &lt;/ins&gt;for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21826:newid:24779 --&gt;
&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21826&amp;oldid=prev</id>
		<title>Elandre: Prefer definite types over String moved to Prefer definite types to primitive types</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21826&amp;oldid=prev"/>
				<updated>2008-11-28T10:33:39Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/index.php/Prefer_definite_types_over_String&quot; title=&quot;Prefer definite types over String&quot;&gt;Prefer definite types over String&lt;/a&gt; moved to &lt;a href=&quot;/wiki/index.php/Prefer_definite_types_to_primitive_types&quot; title=&quot;Prefer definite types to primitive types&quot;&gt;Prefer definite types to primitive types&lt;/a&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:33, 28 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21825&amp;oldid=prev</id>
		<title>Elandre at 10:30, 28 November 2008</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21825&amp;oldid=prev"/>
				<updated>2008-11-28T10:30:18Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 10:30, 28 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying definite typing, where they might otherwise continue to use the primitive data types offered by the language and its libraries, such as string and floats. In Java, C++, Python, and other modern languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; VelocityInKnots&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;DistanceInNaticalMiles&lt;/del&gt;&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying definite typing, where they might otherwise continue to use the primitive data types offered by the language and its libraries, such as string and floats. In Java, C++, Python, and other modern languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; VelocityInKnots&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;DistanceInNauticalMiles&lt;/ins&gt;&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# The code becomes more readable as it expresses concepts of a domain, not just &amp;lt;code&amp;gt;Float&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# The code becomes more readable as it expresses concepts of a domain, not just &amp;lt;code&amp;gt;Float&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21817:newid:21825 --&gt;
&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21817&amp;oldid=prev</id>
		<title>Kevlin at 21:37, 27 November 2008</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21817&amp;oldid=prev"/>
				<updated>2008-11-27T21:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:37, 27 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;At 23 of &lt;/del&gt;September 1999&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;, &lt;/del&gt;the $327.6 million Mars Climate Orbiter was lost while entering orbit due to a software error back &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;at &lt;/del&gt;Earth. The error was later called the metric mix-up. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;spacecrafts &lt;/del&gt;thrusters &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;with &lt;/del&gt;a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;On 23rd &lt;/ins&gt;September 1999 the $327.6 million Mars Climate Orbiter was lost while entering orbit due to a software error back &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;on &lt;/ins&gt;Earth. The error was later called the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;''&lt;/ins&gt;metric mix-up&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;''&lt;/ins&gt;. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;spacecraft's &lt;/ins&gt;thrusters &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;by &lt;/ins&gt;a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;strong or &lt;/del&gt;definite typing &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;was &lt;/del&gt;applied. It also an example of the rationale behind the Ada language, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;primarily designed &lt;/del&gt;to implement embedded safety critical software. Ada &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;support &lt;/del&gt;strong typing &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;to the extreme, as illustrated in the example below.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;stronger and more &lt;/ins&gt;definite typing &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;had been &lt;/ins&gt;applied. It &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;is &lt;/ins&gt;also an example of the rationale behind &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;many features in &lt;/ins&gt;the Ada language, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;one of whose primary design goals was &lt;/ins&gt;to implement embedded safety&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;-&lt;/ins&gt;critical software. Ada &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;supports &lt;/ins&gt;strong typing &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;with static checking:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Velocity_In_Knot &lt;/del&gt;is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Velocity_In_Knots &lt;/ins&gt;is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Distance_In_Nautical_Miles is Float range 0..3000.00;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Distance_In_Nautical_Miles is Float range 0..3000.00;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Velocity: &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Velocity_In_Knot&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Velocity: &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Velocity_In_Knots&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Distance: Distance_In_Nautical_Miles;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Distance: Distance_In_Nautical_Miles;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying definite typing, &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;especially those working in languages with abstract &lt;/del&gt;data types such as Java, C++ and &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Phyton. In these &lt;/del&gt;languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;VelocityInKnot&lt;/del&gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNaticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying definite typing, &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;where they might otherwise continue to use the primitive &lt;/ins&gt;data types &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;offered by the language and its libraries, &lt;/ins&gt;such as &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;string and floats. In &lt;/ins&gt;Java, C++&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;, Python, &lt;/ins&gt;and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;other modern &lt;/ins&gt;languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;VelocityInKnots&lt;/ins&gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNaticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; 1. &lt;/del&gt;The code &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;become &lt;/del&gt;more readable as it expresses concepts of a domain, not &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;only &lt;/del&gt;Float or &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Strings&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;The code &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;becomes &lt;/ins&gt;more readable as it expresses concepts of a domain, not &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;just &amp;lt;code&amp;gt;&lt;/ins&gt;Float&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt; &lt;/ins&gt;or &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; 2. &lt;/del&gt;The code &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;become &lt;/del&gt;more testable as the code &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;encapsulate &lt;/del&gt;behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;The code &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;becomes &lt;/ins&gt;more testable as the code &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;encapsulates &lt;/ins&gt;behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; 3. &lt;/del&gt;The code &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;facilitate re-use &lt;/del&gt;across applications and systems&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# &lt;/ins&gt;The code &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;facilitates reuse &lt;/ins&gt;across applications and systems.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages need to rely on their unit tests alone&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;morale &lt;/del&gt;is to start exploring &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definit &lt;/del&gt;typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages are more likely to rely on their unit tests. The style of checking may be different, but the motivation and style of expression is not.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The moral &lt;/ins&gt;is to start exploring &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definite &lt;/ins&gt;typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21816:newid:21817 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kevlin</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21816&amp;oldid=prev</id>
		<title>Elandre at 20:55, 27 November 2008</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21816&amp;oldid=prev"/>
				<updated>2008-11-27T20:55:49Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:55, 27 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;At 23 of September 1999, the $327.6 million Mars Climate Orbiter was lost while entering orbit due to a software error back at Earth. The error was later called the metric mix-up. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the spacecrafts thrusters with a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;At 23 of September 1999, the $327.6 million Mars Climate Orbiter was lost while entering orbit due to a software error back at Earth. The error was later called the metric mix-up. The ground station software was working in pounds while the spacecraft expected newtons, leading the ground station to underestimate the power of the spacecrafts thrusters with a factor of 4.45.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if strong typing was applied. It also an example of the rationale behind the Ada language, primarily designed to implement embedded safety critical software. Ada support strong typing to the extreme, as illustrated in the example below.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This is one of many examples of software failures that could have been prevented if strong &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;or definite &lt;/ins&gt;typing was applied. It also an example of the rationale behind the Ada language, primarily designed to implement embedded safety critical software. Ada support strong typing to the extreme, as illustrated in the example below.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Velocity_In_Knot is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; subtype Velocity_In_Knot is Float range 0..500.00;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; Some_Number:= Distance + Velocity; -- Will be caught by the compiler as a type error.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;strong &lt;/del&gt;typing, especially those working in languages with abstract data types such as Java, C++ and Phyton. In these languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; VelocityInKnot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNaticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Developers in less demanding domains might also benefit from applying &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definite &lt;/ins&gt;typing, especially those working in languages with abstract data types such as Java, C++ and Phyton. In these languages the abstract data type is know as &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;. Using classes such as &amp;lt;code&amp;gt; VelocityInKnot&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;DistanceInNaticalMiles&amp;lt;/code&amp;gt; adds a lot of value with respect to code quality:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 1. The code become more readable as it expresses concepts of a domain, not only Float or Strings.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 1. The code become more readable as it expresses concepts of a domain, not only Float or Strings.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is equally valid for users of both statically and dynamically typed languages. The only difference is that developers using statically typed languages get some help from the compiler while those embracing dynamically typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The morale is to start exploring &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;strong &lt;/del&gt;typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The morale is to start exploring &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;definit &lt;/ins&gt;typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;By [[Einar Landre]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21813:newid:21816 --&gt;
&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21813&amp;oldid=prev</id>
		<title>Elandre: Prefer strong typing over String moved to Prefer definite types over String</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21813&amp;oldid=prev"/>
				<updated>2008-11-27T20:52:20Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/index.php/Prefer_strong_typing_over_String&quot; title=&quot;Prefer strong typing over String&quot;&gt;Prefer strong typing over String&lt;/a&gt; moved to &lt;a href=&quot;/wiki/index.php/Prefer_definite_types_over_String&quot; title=&quot;Prefer definite types over String&quot;&gt;Prefer definite types over String&lt;/a&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:52, 27 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21812&amp;oldid=prev</id>
		<title>Elandre at 20:50, 27 November 2008</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21812&amp;oldid=prev"/>
				<updated>2008-11-27T20:50:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:50, 27 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 2. The code become more testable as the code encapsulate behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 2. The code become more testable as the code encapsulate behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 3. The code facilitate re-use across applications and systems. &lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 3. The code facilitate re-use across applications and systems. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is valid for &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;statical &lt;/del&gt;and &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dynamical &lt;/del&gt;typed languages. The only difference is that developers using &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;statical &lt;/del&gt;typed languages get some help from the compiler while those embracing &lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dynamical &lt;/del&gt;typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;equally &lt;/ins&gt;valid for &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;users of both statically &lt;/ins&gt;and &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dynamically &lt;/ins&gt;typed languages. The only difference is that developers using &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;statically &lt;/ins&gt;typed languages get some help from the compiler while those embracing &lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;dynamically &lt;/ins&gt;typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The morale is to start exploring strong typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The morale is to start exploring strong typing for the purpose of developing quality software.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21811:newid:21812 --&gt;
&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	<entry>
		<id>http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21811&amp;oldid=prev</id>
		<title>Elandre at 20:45, 27 November 2008</title>
		<link rel="alternate" type="text/html" href="http://commons.oreilly.com/wiki/index.php?title=Prefer_Domain-Specific_Types_to_Primitive_Types&amp;diff=21811&amp;oldid=prev"/>
				<updated>2008-11-27T20:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:45, 27 November 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 19:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 1. The code become more readable as it expresses concepts of a domain, not only Float or Strings.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 1. The code become more readable as it expresses concepts of a domain, not only Float or Strings.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 2. The code become more testable as the code encapsulate behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 2. The code become more testable as the code encapsulate behavior that is easily testable.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 3. The code facilitate re-use across applications and systems.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt; 3. The code facilitate re-use across applications and systems. &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is valid for statical and dynamical typed languages. The only difference is that developers using statical typed languages get some help from the compiler while those embracing dynamical typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;The approach is valid for statical and dynamical typed languages. The only difference is that developers using statical typed languages get some help from the compiler while those embracing dynamical typed languages need to rely on their unit tests alone.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wikicontent:diff:version:1.11a:oldid:21810:newid:21811 --&gt;
&lt;/table&gt;</summary>
		<author><name>Elandre</name></author>	</entry>

	</feed>