stas wrote:as a reply to bfvietnams post:
say you've got an object which consists of a 3d scene and the information on its interpretation. say you've created this scene with maya (for example) and you've got "soft bodies" in it, which are still not supported by blender. now if you want to edit it with blender you either won't be able to do it at all, or the
I'm not talking about the implementation of the primitives, eg. soft bodies, but
the data structures that represent the primitives (or in this case, soft bodies).. See I could store the soft bodies thousands of ways on a file.. But for every way there is a different file format.. But if there is a object format for soft bodies (or subformat) I could offer up a standard interface for Maya soft bodies, an interface for general soft bodies, and an interface for primitives (bounding box), an interface for extracting mesh data, etc..
Developers sometimes move stuff around in the file to discourage interpretation (from competitor's applications).. A real world example of this, is the use of what I call proprietary parking lots.. How construction companies design parking lots such that customers can't travel from one lot to another, so that the customers are discouraged to travel due to inconvenience.. Its the same case here.. The file formats encourage a sort of favoritism that companies like Apple and Microsoft relish.. If they were interested in convergence, they would open source their file formats and they wouldn't bother to patent the file formats, as Microsoft has done with WMV, which is a format based on ASF, with the difference that it uses new codecs and the container format is patented (try loading WMV or ASF in
Virtual Dub).. The purpose for this is to discourage competition.. Its easier to patent a file format because it has a specific form.. It would be possible to patent a object interface, but the data storage implementation would
be impossible to patent.. You could copyright it, but like open source, ideas are free, it would be impossible to discourage ideas from flowing around.. It would lead to convergence..
So in your case..
Say Maya 7 made the file, and blender became Maya 7 compatible. When Maya 8 comes out, Alias/Wavefront could change the data around such that blender would then have to be able to read Maya 8 files, even though fundamentally nothing much has changed with the data.. Its just been reorganized..
Its like moving furniture around. No matter how
you arrange your furniture, its the same furniture, its just positioned
some other way..
So why should you not recognize it if the stuff is re-oriented.. This is not a problem for a person, but for a computer program, it requires writing code that can descriminate/recognize the the patterns in the structure of the file format and extract the useful information from the file.. Its very subjective, even for the programmer.. All in the name of controlling the market and discouraging competition..
Is competition even an issue in the sphere of open source? Do open source projects compete? Why would they? Its design driven by use, not by monitary success, the person that develops the source develops in the interest of convergence/flexibility/fun/ease/to-communicate-unpopular-ideas, not much in the favor of survival or fiscal domination. So the ideas that shape capitalistically driven software should not drive open source, because the intents and constraints are different..
Rather than describing the scene with a data format, we would use methods to place the data (or soft bodies) into the scene.. And when reading the data out we would use the object's methods to get it (the soft bodies) out of that data format.
Thus whatever changes are made to the format of the data is kept transparent to the application that uses it and any reformatting of the
data that needs to be done can be done transparently to the application..
And since the methods are with the data, the data storage and retrieval source could be changed at any time without disrupting the original format of the data or its use..
Don't even think about commercial adoption.. People adopt formats like they adopt languages. If you need to use it, you learn it.. But what is the difference between using French or Japanese, or Chinese.. If people could, I'm sure they would speak the same language.. But with computers its far easier to standardize methods of communication. The reason there is less standardization is in the interest of remaining incompatible,
encouraging software repurchase, training developers who must remain compliant, to discourage market overlap, discourage extra tech support issues, all in the name of getting access to data, you already have..
So why do the open source developers continue to play this game.. Why not engineer the formats such that they are impossible to leverage and must be open source, such that they must be explicit, can not be obsoleted, can be optimized, simplified, secured, all without spawning yet another file format.. Converging on a standard approach, a standard way of communicating.. You can't do this with a file format.. You can do this with objects and interface standards. That's why it mystifies me so much..
Why this hasn't happened yet..
Software businesses are not in favor of convergence, not unless they have to.. The purpose for incompatibilities is to discourage competition, to discourage market overlap, support of third parties with different intents
that may be contrary to business..
In open source, what tends to develop
are applications and designs that are popular because consumers want them, and the developers are the consumers too.. But in commercial software development, the developers are most likely not the users. The developers care not how the application is used, they want their pay and want to get home.. But in open source, is driven by interest and need, the designs converge on the best and most flexible use, or in support of a multitude of methods that eventually converge due to popular use..
So why hasn't this happened with the file formats.. Why are we still using a multitude of data file formats, that are static, proprietary, non-convergent (like parallel lines that never meet or cross over)? That require special API's to access and extract, re-encode, store, manipulate.
Anytime you can't use a file just because you don't know the secret handshake, you shouldn't have to be dealing with that..
But I'm sure some of the ones that will object to my views are pro-capitalists that are afraid that such ideas would become popular.. Its the same kind of objections I got from Eskil when I started talking about "agent" objects (mobile objects that can travel between systems) in the confines of his Verse concept.
He preferred to
use a protocol between stationary objects versus objects that could
travel from system and talk amongst themselves.. The card that Eskil
Its the same concept as with XUL, but instead of being designed to work with a web browser, these objects (or file wrapping objects) would be designed to work between and application and the data.. At most the methods in the objects would be capable of suplementing all the features of an application like Maya, at the very least, it could just hand the raw
data underneath over in a favorable format to the application.. But overtime the freedom of doing either approach and all in between, will cause a convergence of file formats to a common approach.. Making file format leveraging impossible and unpopular..
And no capitalistically driven software developer would ever want to implement this unless they are charitable.. That's why it would never be developed in closed source.. So why do we continue to support a variety of file formats that all store the same kind of information, only in a different arrangement?
You tell me!!