4 ms·
True, but there's many parts that you do have to copy into your source code: * magic numbers at the start of the file format * all sorts of enums that you jus
by candiodari 8y ago
True, but there's many parts that you do have to copy into your source code:
* magic numbers at the start of the file format
* all sorts of enums that you just have to know, names and numbers and the correspondence between them
* names of data types and classes are often needed
* there are often many "standard" things that will be in both the original source and the duplicate because it's the industry standard (things like bold text in any word format or parallel constraints in cad files). They will mostly match in all programs of the same time
And that's just the beginning. You could make an argument that all of those fall under copyright. And they shouldn't. So it really isn't that far from an API.
- treis 8y agoIf you copyright all those things then you aren't copyrighting the file format. You're copyrighting a bunch of code you wrote to read/write the format. Which (virtually) everyone agrees is something subject to copyright.
- monocasa 8y agoIf you copyright the magic numbers and xml tag names, how can anyone write a competing implementation?
- treis 8y agoYou can't copyright something as simple as a number or tag names.
- monocasa 8y agoThat's literally what this case is about, the tag names on functions. The appeals court already threw out one de mininis argument.
- treis 8y agoThe point is that file formats are qualitatively different than APIs. If I have a doc file that is: <doc> <author> ..... Then in my code I have a parse method: Def parse_doc(xml) self.Owner = Person.new(xml[:author]) .... End And a corresponding write method. My code is original and contains nothing written by whoever created the file format beyond short and simple tag names. It's much different than copying a class structure and method signatures.
- monocasa 8y agoOther than the tags, the Harmony code was completely original too, with the exception of the nine line range check code that was the only literal copying Oracle could find.
- candiodari 8y agoHere is the only piece of code Oracle accuses Google of copying, out of slightly under one million lines of code: private static void rangeCheck(int arrayLen, int fromIndex, int toIndex { if (fromIndex > toIndex) throw new IllegalArgumentException("fromIndex(" + fromIndex + ") > toIndex(" + toIndex+")"); if (fromIndex < 0) throw new ArrayIndexOutOfBoundsException(fromIndex); if (toIndex > arrayLen) throw new ArrayIndexOutOfBoundsException(toIndex); } Note that of course "rangeCheck", "arrayLen", "fromIndex" and "toIndex" are part of the function signature, as is "ArrayIndexOutOfBoundsException" and "IllegalArgumentException".