4 ms·
Regarding the legal digression: 1. "We've always had the right to re-implement interfaces" is a red herring. At one point one could have as well said "we've al
by throwawaykf05 12y ago
Regarding the legal digression:
1. "We've always had the right to re-implement interfaces" is a red herring. At one point one could have as well said "we've always had a right to own slaves." Also, re-implementing APIs may be valuable, but there may be even more value in re-inventing APIs instead, many of the reasons for which are mentioned in TFA itself. Case in point, being locked out of Java, Microsoft went ahead and built (by most accounts) a superior programming ecosystem, including a better API.
2. Not a lawyer, but from my limited understanding: Copyright law as currently defined is, IMO, not a good protection mechanism for code, resulting in cases like this. Whatever arguments you could make to exempt APIs from protection applies equally to code. In general copyright cannot protect anything "functional" in nature, but all code is functional! For instance, the exemption from 102(b) highlighted in TFA for "methods of operation" applies equally well to code. What is code if not a method of operation of the hardware it runs on?
Copyright only applies to the creative aspect of anything, including written code, and as such APIs can have as much (or more) creative input as any implementation. In fact, often (and hinted at in TFA), if the API, or indeed any spec, is defined well enough, it's implementation becomes straightforward and requires little inherent creativity! Yet that code automatically qualifies for copyright.
(Note that copyright will only protect the expression of an idea, not the idea itself. So when discussing copyrighting of APIs, remember that we are not discussing protecting, say, the concept of opening a file, but protecting the specific expression "new File(fileName)" or "File.open(fileName)" or "open(fname, 'r')". While this is a simplistic example, think of how this permeates the rest of the APIs.)
3. The case law for exemptions for interoperability in interfaces (Sega etc,) is, as far as I can tell, for systems to interoperate with each other. APIs on the other hand, are mainly for humans to communicate with each other when building systems that interoperate. Bloch even calls it out multiple times when he harps on the importance of documentation. As such, APIs are primarily a means of expression between humans - from those who provide the interface, to those who use it. So from a copyright perspective, I don't see how binary interoperability between systems, which is purely functional, can compare to textual expression between humans.
In my mind, points 2 - 3 mean that Judge Alsup got it wrong and the Federal Circuit got it right. If this is something to be fixed, I'd say the real problem is the use of copyright law to protect code.
- npsimons 12y agoCase in point, being locked out of Java, Microsoft Was this really the case? As I understood it, Microsoft created C# because Java was too open and wouldn't keep people locked in to Windows. Especially since even GNU got Java, I don't see how Microsoft was "locked out" of it.
- crpatino 12y agoBack in the 90's Microsoft tried it's "embrace and extend" dirty trick on the nascent Java environment (have a look at Wikipedia's entry on the infamous J++: http://en.wikipedia.org/wiki/Visual_J%2B%2B http://en.wikipedia.org/wiki/Visual_J%2B%2B They ended up severely burned after that, none the less because they got the anti-monopolty demand during the browser wars.
- npsimons 12y agoBut that's not being locked out of Java. On the contrary, it's the exact opposite and business as usual for Microsoft: take a perfectly good cross-platform, open standard, and mess with it until it locks out everyone else, so your customers are stuck with using your inferior products.
- crpatino 12y agoThe locking out came when Sun sued Microsoft on copyright infringement (or trademark infringement, I don't recall), then they were forbidden from continuing to enhance and offer the product, but end up still providing minimum (security) support to the existing use base. C# is the salvage of that wasted effort, plus a number of lessons learned and improvements that MS was able to implement and market under a different name.
- derefr 12y ago> if the API ... is defined well enough, it's implementation becomes straightforward and requires little inherent creativity! I think APIs are not like other specs in this regard. Take, for example, Amazon S3: it has a simple, obvious API that makes guarantees that have completely non-obvious implementation constraints, and no "one true path" toward satisfying them.