Why Does RB Have 3 File Formats?

The binary format has been around for a long time.  It is by far the fastest of the three formats and the most stable.  But it doesn’t play will with version control systems because they look at text differences.  The format is proprietary though it’s been known for a while and used by various developers over the years but not without some warnings from RS about breaking the EULA.

The advantage of having 1 file is that it’s portable (mostly) and self contained (mostly).  The disadvantage is that it’s one file and if anything goes wrong you’re out of luck.  Sorry.  Too bad for you.  Since RS doesn’t publish, nor license the file format, changes get made to it all the time without warning.  Sometimes this affects backwards compatibility – sometimes not.

The XML format seems to be sort of dead.  You can occasionally fix some obscure RBP file problem by saving to XML and reopening.  The party line has been that XML allows you to use it with version control systems.  That’s not quite true because the XML format isn’t guaranteed to always save out in the same order so it really isn’t much use for version control systems.

What it is good for is post-processing of the project with code analysis tools.  If you look at Reality Check from Dr. Scott Steinman and RB Code Reports from True North Software they both require projects to be in XML.  So it can be useful to some people.  I’m sure I’ll get static for this, but with the exception of those two products I don’t know anyone using the XML format.

For a while in the old 5.5 days, RS had a pro-version only product called Project Manager System (PMS) that was a pseudo source code management system that allowed multiple users to work on the same project at the same time.  Since it’s no longer around I must conclude that PMS was an apt acronym.  I never used it but I’ve heard it was buggy and not very stable.  Not something you’d want to bet your commercial software product on.

So along comes the Version Control Project (VCP).  It saved a project out to pure text files for use with version control servers like Subversion and CVS.  It had an exceptionally long gestation period before it was useful for a vast majority of users who needed the format.  Indeed, it is still lacking some features like supporting external items.  And it’s not like the VCP files can be used with any old text editor because they can’t but at least you can go in and tweak something here and there if you’re very careful (think control parentage that gets messed up on a regular basis for me).

So that’s a little bit of the history of the formats.  So my question is why have 3 formats?  Would it make more sense to default to the version control format?  Would it make sense to come up with a pure text format that could be editable?

Or would it be better for RS to publish and/or license the specifications to the file formats?  I’ve mentioned that the binary file has been broken.  What’s so proprietary about it?  I see it as a way to get more/better tools for the platform.  Anyone trying to create documentation, source code analysis tools and the like would find this immensely helpful.

If they do license the file format, obviously, RS is then committed to documenting the formats and keeping them up to date.  Is that the real problem?  Is it too much support?

Or, do they think someone would come along with a super IDE that would supplant their own?  I suppose it’s possible but not likely due to support issues.

What do you think?