<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html" />
  <link rel="self" type="application/atom+xml" href="http://www.insideria.com/atom.xml" />
  <id>tag:www.insideria.com,2009://34/tag:www.insideria.com,2008://34.25272-</id>
  <updated>2009-11-05T20:02:18Z</updated>
  <title>Comments for Should RIA Platforms be Backward Compatible? (http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html)</title>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.21-en</generator>
  <entry>
    <id>tag:www.insideria.com,2008://34.25272</id>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://blogs.oreilly.com/cgi-bin/mt/mt-atom.cgi/weblog/blog_id=34/entry_id=25272" title="Should RIA Platforms be Backward Compatible?" />
    <published>2008-07-30T15:00:00Z</published>
    <updated>2008-08-01T10:23:17Z</updated>
    <title>Should RIA Platforms be Backward Compatible?</title>
    <summary>The Curl runtime doesn&apos;t support backward compatibility and its engineers think that is a feature rather than a problem. What do you think?</summary>
    <author>
      <name>Richard Monson-Haefel</name>
      <uri>http://www.curl.com</uri>
    </author>
    
    <category term="Blogs" />
    
    <content type="html" xml:lang="en" xml:base="http://www.insideria.com/">
      <![CDATA[<p><a href="http://www.curl.com">Curl</a> - a RIA platform that completes with <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">Ajax</a>, <a href="http://silverlight.net/">Silverlight</a>, <a href="http://www.sun.com/software/javafx/index.jsp">JavaFX</a>, and <a href="http://www.adobe.com/products/flex/">Flex</a> - does not subscribe to the mantra that all versions of its platform must be <a href="http://en.wikipedia.org/wiki/Backward_compatibility">backward compatible</a>.  In fact, a program written for Curl version 5.0 will not run on the Curl version 6.0 runtime unless its herald is explicitly changed.  So for example, a Curl applet with the following herald will not run in any version of Curl other than Curl 5.x.<br />
<code><br />
{curl 5.0 applet}<br />
&#133;<br />
</code><br />
However, a Curl applet can designate that it runs in more than one version of the Curl Runtime Environment (RTE) by listing multiple versions in its herald.<br />
<code><br />
{curl 4.0, 5.0, 6.0 applet}<br />
&#133;<br />
</code><br />
In order to run a Curl applet designated for a specific runtime, that runtime has to be installed on the client&#8217;s machine. In fact, Curl supports running different versions of its runtime concurrently and will delegate Curl applets to the appropriate runtime - providing it&#8217;s present on the client&#8217;s machine. If the proper version of the Curl runtime is not on the client&#8217;s machine, an error message pops-up saying that the applet should be run on a different runtime version. </p>

<p>A <a href="http://developers.curl.com/thread/1233?tstart=0">thread</a> on the Curl Developers Forum that is getting a lot of attention from the Curl community debates the merits of this versioning architecture.  While a couple of developers argue that backward-compatibility is a must, Curl engineers argue that its customers actually prefer the versioning system it now supports and that its actually better to run concurrent RTEs than to design each new RTE to be backward compatible.  The reasons for this, its argued, is that the application developers is assured that the applet will only be run - without modification - on the runtime it was designed for. It&#8217;s also argued that this gives the Curl engineers more flexibility, requires less effort, and creates less problems than trying to make each new version of Curl backward compatible.</p>

<p>Personally, I&#8217;m torn as to which is the appropriate solution.  Although I work for Curl I always thought that backward compatibility was a necessary evil.  The Java platform, which is the one I have the most experience in, has always attempted to be backward compatible which makes things easier for end-users but has, as I understand it, been a source of problems for Sun Engineers who must continue supporting older features of the language and platform despite the fact that those features might actually hinder evolution of the platform. </p>

<p>Is the Curl versioning architecture superior in terms of platform evolution or is it problematic?  I&#8217;m beginning to see the logic in not explicitly supporting backward compatibility. It makes the most sense in the enterprise where IT departments seem to prefer that older programs keep running on a known versions rather than risking old programs on new platforms.  </p>

<p>I&#8217;m interested in the opinions of InsideRIA readers.  Is backward compatibility a critical requirement or  can it be avoided in favor of more agile development of the platform?</p>

<p><b>Update: More information on Curl's backward compatibility story can be found on Curl's blog posting "<a href="http://developers.curl.com/blogs/community_blog/2008/08/01/backward-compatability-and-curl">Backward Compatibility and Curl</a>"</b><br />
</p>]]>
      
    </content>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.25272-comment:2019428</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.25272" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html#comment-2019428" />
    <title>Comment from Chris Brind on 2008-07-30</title>
    <author>
        <name>Chris Brind</name>
        <uri>http://techy.brindy.org.uk</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://techy.brindy.org.uk">
        <![CDATA[<p>Hi Richard,</p>

<p>If you're not supporting backward compatibility it says a couple of things to potential adopters:<br />
1) Curl doesn't care about their user's investment<br />
2) and/or Curl doesn't have any users</p>

<p>I'd be interested in the following:<br />
- What size of user base does Curl have? <br />
- What is Curl's market penetration?<br />
- Why does Curl still have Flash on it's home page (Microsoft are guilty of using Flash for marketing as well.  I suspect I know the response, but eating your own dog-food would be more appropriate)<br />
- I have read claims (by yourself possibly) that Curl is more secure than Flex, I asked this question elsewhere and never got a response... how is Curl more secure than Flex?</p>

<p>Thanks in advance.</p>

<p>Regards,<br />
Chris<br />
</p>]]>
    </content>
    <published>2008-07-30T15:25:25Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.25272-comment:2019429</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.25272" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html#comment-2019429" />
    <title>Comment from Steve McDonald on 2008-07-30</title>
    <author>
        <name>Steve McDonald</name>
        <uri>http://enginpost.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://enginpost.com">
        <![CDATA[<p>Curl isn't obviously the first group to decide to do things this way.  For example, Drupal versions their product in the same manner.  Their policy seems to be:</p>

<p>1. If you upgrade a Drupal site, then your CMS content comes along for the ride flawlessly, but<br />
2. Any templates / customizations might suddenly break and/or you will have to wait until those open-source teams update the "parts" to work in the latest version.</p>

<p>In the case of open-source I get this paradigm for a couple of reasons:</p>

<p>1. It makes for more versions of the core product faster, since you don't have to care about stuff outside the core.<br />
2. It makes for an increasingly stable product, since you can break something that was functioning in order to fix it using a completely new approach (even if that new approach break everything else that connected with it.)<br />
3. It allows the core to force everything to grow and refine itself to better the overall product by forcing change from the core, out!</p>

<p>As someone who has been working in development for more than a decade now, I have a few opinions about this that comes from my experience:</p>

<p>1. Sometimes I have regretted decisions I have made early on in a project and wished I could completely derail a segment of that work.  In most situations, however, companies don't like this approach because it limits the future value of something without continued development.<br />
2. I think that if you can be brave and invest in intelligently break version compatability for a good reasons early on, then this technique is OK.  But I think that as a product matures, it should stabalize to the benefit of your product and it's community.</p>

<p>I would tolerrate a breaking version compatability technique for a while, but after a few "breaks" I think I would get a little fed up.  You can have time to settle on the right approach, but I think you need to settle eventually.</p>]]>
    </content>
    <published>2008-07-30T15:58:18Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.25272-comment:2019431</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.25272" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html#comment-2019431" />
    <title>Comment from Mike Potter on 2008-07-30</title>
    <author>
        <name>Mike Potter</name>
        <uri>http://www.riapedia.com/</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.riapedia.com/">
        <![CDATA[<p>Steve: <br />
  I think one additional outcome from Drupal is that people tend not to upgrade as quickly.  I for one run a few blogs that still run Drupal v. 5 - and the developers of Drupal need to maintain Drupal v 5 for security updates etc...  I would much prefer to have core updates be separate from the module updates - I'd be using the latest Drupal core all the time.  As an end user I get frustrated that I can't upgrade to the latest version of core because some modules I depend on aren't upgraded.<br />
  I believe that one of the reasons that Flex and Flash have been so successful is that the player gets updated so quickly, and it does that because people don't need to worry about backwards compatibility.  Is it possible to engineer a runtime where that doesn't matter?  Sure it is - AIR installs different versions of the runtime on the users machine.<br />
  However, getting users to install those players is very difficult, as I'm sure CURL and Microsoft are finding out. People don't want to install software.  They want things that work, right away.<br />
  As with most things, there are tradeoffs either way - I don't think there is one right answer.  It'll come down to what the user experience is with whatever you choose. </p>

<p>Mike</p>]]>
    </content>
    <published>2008-07-30T16:52:00Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.25272-comment:2019445</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.25272" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html#comment-2019445" />
    <title>Comment from christian on 2008-07-30</title>
    <author>
        <name>christian</name>
        <uri>http://nuthinking.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://nuthinking.com">
        <![CDATA[<p>About Curl, of course having the possibility to install different VM could be an easy solution. Not optimal probably, because of course you might need to install the plugin different times, but at least better than what MS is doing.</p>]]>
    </content>
    <published>2008-07-30T21:38:39Z</published>
  </entry>

  <entry>
    <id>tag:www.insideria.com,2008://34.25272-comment:2019495</id>
    <thr:in-reply-to ref="tag:www.insideria.com,2008://34.25272" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html"/>
    <link rel="alternate" type="text/html" href="http://www.insideria.com/2008/07/should-ria-platforms-be-backwa.html#comment-2019495" />
    <title>Comment from Richard Monson-Haefel on 2008-08-01</title>
    <author>
        <name>Richard Monson-Haefel</name>
        <uri>http://www.curl.com</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.curl.com">
        <![CDATA[<p>Chris,</p>

<p>We are not "guaranteeing" backward compatibility but choosing side-by-side runtimes by design to better support the needs of our enterprise customers. Backward compatibility is at best difficult to achieve and often results in major efforts by the enterprise to test production runtimes against new versions of a platform which provide little or no advantages to those specific applications. Side-by-side allows you to continue running your application without interruption while taking advantage of new features for new projects.  The Curl runtime is 10 years mature and is the fastest in the RIA industry so we don't need to focus on performance as is the case for some other platforms - our enhancements are generally extension to the platform.</p>

<p>With regard to our customers base - its a lot larger than you think and probably much smaller than Flex. Although we are gaining ground quickly most our enterprise customers, well over 300 of them, are in Asia. I guess if you don't care about that market (you should!) than that may seem unimportant but that's the foundation on which we have built our operations.</p>

<p>The flash question is pretty obvious. We use flash for the same reason that Adobe, Microsoft and Sun Microsystems (all RIA vendors) use HTML - its an appropriate technology for mass consumers. Should Adobe make their entire site Flex?  Should Microsoft use only Silverlight and avoid HTML?  Obviously not.</p>

<p>We think Curl is better for the enterprise and a public web site is not an enterprise application.</p>

<p>I hope that answers your questions. Thanks for commenting on the article - the kind of feedback you provided helps a lot!</p>]]>
    </content>
    <published>2008-08-01T10:19:54Z</published>
  </entry>

</feed
