3 ms·
>Google did not take software (other than rangeCheck), they took interfaces. Are you contending that interfaces and API's are not software and do not have soft
by kadendogthing 8y ago
>Google did not take software (other than rangeCheck), they took interfaces.
Are you contending that interfaces and API's are not software and do not have software licenses around them?
Because that is a severely mistaken belief on both a technical and legal level.
- AnimalMuppet 8y agoOn a legal level, no, that's not a mistaken belief. Prior to this case, that was in fact the legal consensus. Given this case, it's only a mistaken belief if the Supreme Court decides for Oracle (or declines to take the case).
- kadendogthing 8y ago>On a legal level, no, that's not a mistaken belief. Yes, on a legal level.
- geofft 8y agoCan you explain why?
- geofft 8y agoYes, that is exactly my contention. An interface is no more software than a recipe is food, than a credit card statement is money. From a technical perspective, interfaces in, say, C are mostly compiled out. There is no place in a (stripped) binary where you can point to a structure definition. There is a place you can point to names of functions that are yet to be dynamically linked, but only their names, that place is different from the program code (text section) itself. None of this is to say interfaces are not an important part of software engineering. Interfaces, APIs, internal zero-cost abstractions, tests, comments, design documents, threat models, bug triage, commit messages, code reviews, operational techniques, runbooks, monitoring and alerting systems, end-user documentation, etc. are all important work products in the discipline of software engineering. They're also all (IMO) something different from the software itself.
- kadendogthing 8y ago>An interface is no more software than a recipe is food, than a credit card statement is money. I really don't follow this analogy. And neither do many other license agreements, and the courts in the current case. Please explain to me the fundamental difference between an interface and what you consider software. Because you provided some weird analogy to essentially beg the question in an indirect manner but provided no substational statement qualifying the two as different. > There is no place in a (stripped) binary where you can point to a structure definition. Yes there is. In every implementation and runtime. From GCC to .NET. An interface in all its various forums as we understand interfaces are placed in binary. From object implementations to ABI's and API's. What rock did you crawl out under?
- geofft 8y ago> Please explain to me the fundamental difference between an interface and what you consider software. "Software" is code. An interface is the expectations of code. In particular, if software X implements interface A, it is possible to write a compatible drop-in replacement of X using software Y, which does not incorporate any portion of software X, is it not? GNU libc and Apple libc both implement the UNIX libc interface. If you claim that an interface is indistinguishable from software, is there a portion of the GNU libc software that also present in Apple libc? Where is it? Can you point to it? (The source code of both is public, so this should be easy for you to do.) Google gave another example in the blog post: the interface of keyboard shortcuts. If I implement a text editor that uses Ctrl-X for cut, Ctrl-C for copy, and Ctrl-V for paste, have I copied the software of another text editor that uses that interface? > An interface in all its various forums as we understand interfaces are placed in binary. From object implementations to ABI's and API's. An API, an "application programming interface," is distinguished from an ABI, an "application binary interface," precisely because it does not mandate what appears in the binary. If you think that there is in fact a way where you can point to a structure definition in a compiled C object file, please identify where it is in this object: https://godbolt.org/z/SVhsJk https://godbolt.org/z/SVhsJk
- icebraining 8y agoI agree with you: the interface is represented in actual binary format. But Google didn't copy that either. Dalvik doesn't even use the same binary format as Oracle's JDK.