LWN.net Logo

free software formats are not proprietary by definition

free software formats are not proprietary by definition

Posted Jul 12, 2005 12:25 UTC (Tue) by copsewood (subscriber, #199)
In reply to: "Proprietary" versus "Open" by dvdeug
Parent article: Microsoft Surprises with Linux 'Hands-On Lab' (eWeek)

Having a free/libre software being able to read or write a format designed for the purpose of the free software makes that format as free as the software, so long as the techniques used are not patent encumbered. The fact that only one program reads/writes this format does not matter, because the source code that does this can be copied, studied and reimplemented in different free programs, (or proprietary programs following a clean-room reimplementation process) without requiring payment to the copyright owner.


(Log in to post comments)

free software formats are not proprietary by definition

Posted Jul 13, 2005 6:42 UTC (Wed) by dvdeug (subscriber, #10998) [Link]

In the real world, the fact that only one program reads/writes this format does matter. Even at best, you have to have programming skill and patience to reimplement a format, and many formats rarely convert to other formats of the same type in a lossless manner. If you've stored your data in one word-processing format, other word-processors that don't work like the one you use may have a hard time preserving your data when loaded.

In many cases, a file format may be a full programming language that is very hard to translate to another file format, and keep changing from version to version. Lilypond and POV-Ray (yes, it's not completely free software) are examples of this. To interact with their files, not only would you have translate a subtle complex system conceptually wrapped around the internals of the program, you would have to keep updating it.

At worst, you're dealing with a poorly documented fileformat that is basically a dump of the internals of the program. That doesn't magically become easy to port just because you can see the code. If the code base is still be worked on, it can become nigh impossible to maintain compatibility.

Sure, you can just read the code, but you can always just reverse engineer a proprietary file format. For the end-user, and even for a programmer, free software formats can very well be proprietary. For example, there is no way to convert a Lilypond file to another format, and nothing besides Lilypond will read the file. Since Lilypond is a nontrivial system layered on TeX (itself a nontrivial, hard to parse, system), if you have a Lilypond file, you can more or less give up on getting it into another music layout system without retyping it. That's, for all intents and purposes, proprietary.

free software formats are not proprietary by definition

Posted Jul 14, 2005 12:27 UTC (Thu) by nix (subscriber, #2304) [Link]

By that definition, every nontrivial compiler and translator is `proprietary'. Even Perl and Python are `proprietary' by that definition, and so is PostScript and PDF, even though they have publically available, freely usable specs.

I'd venture to suggest that this is a definition that is quite different from that used in any variant of English.

free software formats are not proprietary by definition

Posted Jul 14, 2005 20:19 UTC (Thu) by dvdeug (subscriber, #10998) [Link]

If it has publically available, freely usable specs, then it's not proprietary. PostScript and PDF are clearly not proprietary, and I don't know how you could get that from what I wrote. (I.e. "the fact that only one program reads/writes this format does matter", etc.)

The line is not entirely clear, but you completely avoided my examples. No program besides Lilypond can read in Lilypond files, and no program besides POV-Ray can read in POV-Ray files. Both have very complex syntaxes that would be hard to implement, and both are evolving systems forcing you to chase a rapidly moving target. In both cases, backward compatibility has been broken and probably will be broken again. (ISO standards usually wait at least 5 years between major new versions of a standard, and standards that update faster, like Unicode, are completely backwardly compatible.) So it's hard and probably not fruitful to reimplement them.

I fail to see how a free software format is fundamentally different from a closed source format. You can always reverse engineer a closed source format; many free software licenses have sufficent restrictions you may not want to reuse the code; and much free software code is too hairy or just has the wrong design to just be pulled out and dropped in a new program.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds