On Fri, May 14, 2004 at 04:03:55PM -0400, Dave Robillard wrote:
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 not my logic. Please do not make me say thing that I did never
say.
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.
Very probably yes, but I'm not forced to do so, and the ogg format is
not defined by any library. Anyway, we're talking about something much
more complicated than a file that should describe a plugin interface.
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.
Again, I never implied that every single application should do that.
Having a defined file format does not in any way preclude the existence
of a library that is designed make dealing with that format easier.
It's up to the author of the application to decide how to do things, and
if he / she does it in a way that you do not like, you're not obliged
at all to use the application, and even less so if it comes for free.
And in this case there is no reason at all to make things so complicated
that using a library is the only practical option.
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.
Depends on you point of view.
--
FA