At 12:27 AM 5/8/00 -0400, Sean 'Captain Napalm' Conner wrote:
It's not hard to create a file format that is
extensible, nor forward and
backward compible. To bring this back to topic, I have extensive
documentation on IFF, initially designed and documented in 1986 for the
creation of files that can be extensible and forward/backward compatible,
such that a document created with a program now can be opened with a program
written 10 years ago and have it not crash (or at least be able to do
something with the file and not loose the extra information).
Microsoft does use RIFF for some types of data. This is their own
flavor of IFF with Intel endian. Most Amiga apps were quite lax about
the use of IFF, simply mimicking other apps and using the same poor
code examples as everyone else. They handled and emitted something
similar to Deluxe Paint and that's about it. I'm not aware of any
popular Amiga apps that actually used the more complicated catalog
and list hunks, for example. Some bastardized IFF for their own
twisted purposes.
The more complete and accurate use of IFF I've seen was for the
3D format of Maya, a high-end 3D program that was born only a few
years ago. However, they didn't bother to document all their hunks
for the public.
Tag and hunk-length is a very useful scheme for any program's file
format. However, it's no panacea. It can even backfire and lead to
those 1 meg files fo seemingly simple data, in the case of data
structures with a great many varying leaves (each with their own
hunk type) and a moderate number of branches. This poor case has
led some to adopt schemes with 16-bit hunks and short lengths.
- John