|
Boost Users : |
From: Joel de Guzman (joel_at_[hidden])
Date: 2006-07-11 09:42:17
Peter Dimov wrote:
> Rene Rivera wrote:
>> Peter Dimov wrote:
>>> Joel de Guzman wrote:
>>>> Peter Dimov wrote:
>>>>
>>>>> I can't help but wonder: if some parts of your v1 format are so
>>>>> completely redundant as to allow you to reconstruct the original
>>>>> data even if you skip them, what was the point of writing them in
>>>>> the first place?
>>>> Here's one scenario (I'm sure there are others): Your class uses a
>>>> 3rd party library called Y. Later, you decide to replace it with
>>>> a better engine using a library called Z.
>>> Still not getting it. Do you have an example?
>> Another use case... If you make two versions of a product, one a
>> demo/trial and another the full release. One person makes a data file
>> in the release version and sends it to a friend who has the demo.
>> There happens to be a feature not available in the demo which has an
>> impact on the data format.
>
> Yeah, this is actually an example of forward compatibility, a well-known use
> case for skippable chunks. In your case the demo version is v1 (it only
> understands text) and the release version is v2 (which also understands
> embedded images, say). My question was about backward compatibility, since
> this is what the serialization library versioning supports. It doesn't make
> much sense for v2 to suddenly start ignoring the embedded images saved with
> v1. It may start writing them in a PNG format instead of RLE, but when
> importing v1 it would still need to read the RLE image.
Right. Well, I'm glad Rene came out with another use case.
Thinking back now, it's not really about obsolesence. It's
more about allowing for optional data. Thanks for the insights,
Peter!
Regards,
-- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net