<?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: On the importance of backward compatibility</title>
	<atom:link href="http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/</link>
	<description>on emerging platforms and the power of aggregation and integration</description>
	<lastBuildDate>Fri, 23 Oct 2009 23:28:31 -0700</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: Ian Murdock&#8217;s Weblog &#187; Blog Archive &#187; More on the importance of backward compatibility</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1220</link>
		<dc:creator>Ian Murdock&#8217;s Weblog &#187; Blog Archive &#187; More on the importance of backward compatibility</dc:creator>
		<pubDate>Mon, 22 Jan 2007 13:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1220</guid>
		<description>[...] There were a lot of good comments on my post about the importance of backward compatibility the other day (both here and in the blogosphere), and a lot more of them were positive than I was expecting, which I find encouraging. [...]</description>
		<content:encoded><![CDATA[<p>[...] There were a lot of good comments on my post about the importance of backward compatibility the other day (both here and in the blogosphere), and a lot more of them were positive than I was expecting, which I find encouraging. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: RG3</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1204</link>
		<dc:creator>RG3</dc:creator>
		<pubDate>Thu, 18 Jan 2007 12:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1204</guid>
		<description>There&#039;s a difference between maintaining backwards API and even ABI compatibility, and bending over backwards to support broken apps.  The former are laudible goals, and can usually be achieved without too much trouble if you thought things out in the first place.  Obviously, no amount of thinking ahead can set you up for every possible future situation, but it can help.

But if applications use undocumented features, or rely on bugs, or plain fly in the face of documentation (such as in the SimCity example), should be no onus on the system provider to continue to support that behaviour.

If you want to be confident about your program working in the future, write it according to the documented API, and following the portability guidelines that litter the net.  This won&#039;t safeguard you against reckless maintainers, but many (most?) library maintainers do care about API compatibility, and even ABI compatibility for the more core ones.</description>
		<content:encoded><![CDATA[<p>There&#8217;s a difference between maintaining backwards API and even ABI compatibility, and bending over backwards to support broken apps.  The former are laudible goals, and can usually be achieved without too much trouble if you thought things out in the first place.  Obviously, no amount of thinking ahead can set you up for every possible future situation, but it can help.</p>
<p>But if applications use undocumented features, or rely on bugs, or plain fly in the face of documentation (such as in the SimCity example), should be no onus on the system provider to continue to support that behaviour.</p>
<p>If you want to be confident about your program working in the future, write it according to the documented API, and following the portability guidelines that litter the net.  This won&#8217;t safeguard you against reckless maintainers, but many (most?) library maintainers do care about API compatibility, and even ABI compatibility for the more core ones.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Murdock: On the Importance of Backward Compatibility &#124; Technology News - Technology-x.net</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1202</link>
		<dc:creator>Murdock: On the Importance of Backward Compatibility &#124; Technology News - Technology-x.net</dc:creator>
		<pubDate>Wed, 17 Jan 2007 22:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1202</guid>
		<description>[...] Complete Story [...]</description>
		<content:encoded><![CDATA[<p>[...] Complete Story [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bill Mason</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1201</link>
		<dc:creator>Bill Mason</dc:creator>
		<pubDate>Wed, 17 Jan 2007 21:10:24 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1201</guid>
		<description>&quot;look at the shelf of Windows applications, then compare it to the shelf of Mac applications, and perhaps you’ll better understand why it’s important.&quot;

No, what I&#039;ll understand is that Microsoft had no competition on the IBM PC for far too long, and that their operating system is pre-loaded when the hardware is purchased.

Backward compatibility is a noble goal to an extent, but in the extreme can be detrimental.  We can see that now as we watch Microsoft take a half a decade to release a minor upgrade to an unstable, bug-ridden, and insecure operating system.  Some things are not worth emulating.</description>
		<content:encoded><![CDATA[<p>&#8220;look at the shelf of Windows applications, then compare it to the shelf of Mac applications, and perhaps you’ll better understand why it’s important.&#8221;</p>
<p>No, what I&#8217;ll understand is that Microsoft had no competition on the IBM PC for far too long, and that their operating system is pre-loaded when the hardware is purchased.</p>
<p>Backward compatibility is a noble goal to an extent, but in the extreme can be detrimental.  We can see that now as we watch Microsoft take a half a decade to release a minor upgrade to an unstable, bug-ridden, and insecure operating system.  Some things are not worth emulating.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Peter</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1197</link>
		<dc:creator>Simon Peter</dc:creator>
		<pubDate>Wed, 17 Jan 2007 08:46:18 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1197</guid>
		<description>&quot;Typically a Linux system is running Free/Open software and consequently it is a matter of ensuring that you ARE running the latest version of the software.&quot;

While this might be true for the base system, it is certainly not true for all the apps you might want to run on top of it and that are not part of the distribution. In fact, the whole point of an operating system is to provide the infrastructure for running applications on top. These might or might not happen to be part of your distribution of choice.

It&#039;s always important to remember that to the developer, binaries without the source are worthless. But it is equally important to remember that to the end user, source without (compatible!) binaries is worthless.</description>
		<content:encoded><![CDATA[<p>&#8220;Typically a Linux system is running Free/Open software and consequently it is a matter of ensuring that you ARE running the latest version of the software.&#8221;</p>
<p>While this might be true for the base system, it is certainly not true for all the apps you might want to run on top of it and that are not part of the distribution. In fact, the whole point of an operating system is to provide the infrastructure for running applications on top. These might or might not happen to be part of your distribution of choice.</p>
<p>It&#8217;s always important to remember that to the developer, binaries without the source are worthless. But it is equally important to remember that to the end user, source without (compatible!) binaries is worthless.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tecosystems &#187; A Surprise Quiz</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1195</link>
		<dc:creator>tecosystems &#187; A Surprise Quiz</dc:creator>
		<pubDate>Wed, 17 Jan 2007 05:21:19 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1195</guid>
		<description>[...] Does binary compatibility matter as much as we think it does? [...]</description>
		<content:encoded><![CDATA[<p>[...] Does binary compatibility matter as much as we think it does? [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Montalenti</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1191</link>
		<dc:creator>Andrew Montalenti</dc:creator>
		<pubDate>Tue, 16 Jan 2007 19:41:09 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1191</guid>
		<description>I think a good read in this vein is Joshua Bloch&#039;s &quot;How to Design a Good API &amp; Why It Matters&quot;.  Particularly his points that API design is hard because &quot;you have to get it right the first time.&quot;

Check it out:
http://lcsd05.cs.tamu.edu/slides/keynote.pdf (pdf slideshow)
http://www.infoq.com/presentations/effective-api-design (webcast)</description>
		<content:encoded><![CDATA[<p>I think a good read in this vein is Joshua Bloch&#8217;s &#8220;How to Design a Good API &amp; Why It Matters&#8221;.  Particularly his points that API design is hard because &#8220;you have to get it right the first time.&#8221;</p>
<p>Check it out:<br />
<a href="http://lcsd05.cs.tamu.edu/slides/keynote.pdf" rel="nofollow">http://lcsd05.cs.tamu.edu/slides/keynote.pdf</a> (pdf slideshow)<br />
<a href="http://www.infoq.com/presentations/effective-api-design" rel="nofollow">http://www.infoq.com/presentations/effective-api-design</a> (webcast)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Boswell</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1190</link>
		<dc:creator>Jacob Boswell</dc:creator>
		<pubDate>Tue, 16 Jan 2007 18:02:03 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1190</guid>
		<description>I think any programmer that written a program longer than the first release should recognize the importance of backwards compatibility. However the example that you chose to illustrate its importance is the worst one possible. Their chosen action to fix the &quot;bug&quot; is backward compatibility with the worst practice and the &quot;results speak for themselves.&quot; Go ahead an install XP on a system, then install a Linux system with the SAME functionality set (OS, Email, Browser, Text editor) and this example will tell you exactly why your fresh install of XP is now taking up 3-5 GB of space VS the &gt;1GB taken by Linux. And now every application and user has to suffer with the poor performance imposed by checking to see if a &quot;SimCity&quot; is running.

I agree 100% with G Fernandes comments. Applications should strive to maintain API compatibility and give very long deprecation cycles if a change is absolutely required. But trying to follow a MS Windows approach to the solution is bad path for all involved except the one group that gets the application. If a application chooses to use an undocumented or unexposed call, they risk breaking there own stuff. No application should be held responsible to maintain compatibility to is &quot;private&quot; interfeces.

Finally I have to agree with Simon Waters who inferred that the number of applications available on the shelves of Best Buy is a poor indicator of the success of the approach of MS has taken. In fact if you compared the number of available applications VS the total desktop market share, you would likely see that Linux has a huge advantage followed by OS X then Windows. But that is just an uneducated guess :)

Anyway, the point here is that backward compatibility is important but, as in most things, you need to find the right balance when moving a product forward.</description>
		<content:encoded><![CDATA[<p>I think any programmer that written a program longer than the first release should recognize the importance of backwards compatibility. However the example that you chose to illustrate its importance is the worst one possible. Their chosen action to fix the &#8220;bug&#8221; is backward compatibility with the worst practice and the &#8220;results speak for themselves.&#8221; Go ahead an install XP on a system, then install a Linux system with the SAME functionality set (OS, Email, Browser, Text editor) and this example will tell you exactly why your fresh install of XP is now taking up 3-5 GB of space VS the &gt;1GB taken by Linux. And now every application and user has to suffer with the poor performance imposed by checking to see if a &#8220;SimCity&#8221; is running.</p>
<p>I agree 100% with G Fernandes comments. Applications should strive to maintain API compatibility and give very long deprecation cycles if a change is absolutely required. But trying to follow a MS Windows approach to the solution is bad path for all involved except the one group that gets the application. If a application chooses to use an undocumented or unexposed call, they risk breaking there own stuff. No application should be held responsible to maintain compatibility to is &#8220;private&#8221; interfeces.</p>
<p>Finally I have to agree with Simon Waters who inferred that the number of applications available on the shelves of Best Buy is a poor indicator of the success of the approach of MS has taken. In fact if you compared the number of available applications VS the total desktop market share, you would likely see that Linux has a huge advantage followed by OS X then Windows. But that is just an uneducated guess :)</p>
<p>Anyway, the point here is that backward compatibility is important but, as in most things, you need to find the right balance when moving a product forward.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bob hunter</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1188</link>
		<dc:creator>bob hunter</dc:creator>
		<pubDate>Tue, 16 Jan 2007 10:40:32 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1188</guid>
		<description>Did I mention that we can run emulators nowadays? If one happens to have a legacy application, running only on a certain version of a certain OS, one can run that OS on top of osx using emulation, and the legacy application, with no need to carry patches to old bugs with each new release. As a matter of fact, Apple trashes old bugs and legacy technology with each update, both on software and on hardware. It is a policy that follows natural selection: the old is clear of the way. It is also a policy that allows you to run your software museum, using emulators.

By the way, it is the fist time that I read a linux insider talking well about microsoft. Things are really changing around here...</description>
		<content:encoded><![CDATA[<p>Did I mention that we can run emulators nowadays? If one happens to have a legacy application, running only on a certain version of a certain OS, one can run that OS on top of osx using emulation, and the legacy application, with no need to carry patches to old bugs with each new release. As a matter of fact, Apple trashes old bugs and legacy technology with each update, both on software and on hardware. It is a policy that follows natural selection: the old is clear of the way. It is also a policy that allows you to run your software museum, using emulators.</p>
<p>By the way, it is the fist time that I read a linux insider talking well about microsoft. Things are really changing around here&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: G Fernandes</title>
		<link>http://ianmurdock.com/platforms/on-the-importance-of-backward-compatibility/comment-page-1/#comment-1186</link>
		<dc:creator>G Fernandes</dc:creator>
		<pubDate>Tue, 16 Jan 2007 10:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://ianmurdock.com/?p=400#comment-1186</guid>
		<description>Backward compatibility is important. But good practice is FAR more important.

A good example might have been the JDBC API. If there is a problem in a specific driver implementation, clients do not have to change their code. The implementation of the offending driver changes to fix bad behavior.

Backward compatibility doesn&#039;t suffer - all clients access the driver through the JDBC interface. The JDK doesn&#039;t work around to accomodate bad driver implementations. The offending driver is fixed.

Voila! You have backward compatibility with good practice!</description>
		<content:encoded><![CDATA[<p>Backward compatibility is important. But good practice is FAR more important.</p>
<p>A good example might have been the JDBC API. If there is a problem in a specific driver implementation, clients do not have to change their code. The implementation of the offending driver changes to fix bad behavior.</p>
<p>Backward compatibility doesn&#8217;t suffer &#8211; all clients access the driver through the JDBC interface. The JDK doesn&#8217;t work around to accomodate bad driver implementations. The offending driver is fixed.</p>
<p>Voila! You have backward compatibility with good practice!</p>
]]></content:encoded>
	</item>
</channel>
</rss>

