On Fri, 2004-05-14 at 14:09, Fons Adriaensen wrote:
I suppose the
question is _why_ would you "fiercely resist" this good
design practise?
System interfaces are often defined by an API (and even that is
questionable since it imposes a language), but file formats and
network protocols most certainly are *not* defined this way.
AFAIK, wav, ogg, mp3, mid, and hundreds of others are defined at
the file data level, not by an API.
And by your logic every program that needs to write ogg files should do
all the encoding manually by itself. This is most certainly not the
case for brutally obvious reasons.. these reasons apply to our situation
just as well (if on a lesser scale). If you want to write an ogg file,
you use the ogg library.
It's not like the file format isn't going to be defined at all.. of
course it's going to be "defined at the file data level". That doesn't
mean every single application should be mucking with that file
manually. That would be stupid and counterproductive.
As to changing the file format, it should be defined
from the start
to be extensible, which does not mean it should be as general as XML,
It can still be a format that is specific for the application.
And even if it has to change at some point, it can still include
a version number.
I still have no idea why the heck you actively want to load way more
work on yourself for no benefit whatsoever. Why deal with version
numbers, and compatibility issues, and manual parsing, and blah blah?
Very many problems, very few (if any) benefits.
-Dave Robillard