News for hackers. Stuff that matters.
Re:Google’s Supreme Court faceoff with Oracle was a disaster... by AnthonyMouse on Thursday October 08, 2020 @06:51PM (#24724787)
> What is the difference between an API (interface) and implementation? The algorithm.

Not the algorithm. The algorithm is essentially the recipe. The algorithm is merge sort, or depth first search. It's the contract the API gives you, more or less. "This function does merge sort." But there are unlimited possible implementations of merge sort and each one is copyrightable. And one implementation doesn't infringe the copyright of the other ones, even when they're the same algorithm, but you have to write your own. Copyright doesn't protect function, it protects works of authorship.

Re:Google’s Supreme Court faceoff with Oracle was a disaster... by mantap on Thursday October 08, 2020 @09:04PM (#24725660)
I don't agree that the steps of an implementation are copyrightable. Different versions of an algorithm are different algorithms. One merge sort algorithm may perform much better than another despite both being merge sort and having the same asymptotic complexity. You could patent a particular version of merge sort.

Copyright protects how code is written not what it does. And the how applies just as much to interfaces as implementations.

Re:Google’s Supreme Court faceoff with Oracle was a disaster... by AnthonyMouse on Thursday October 08, 2020 @10:49PM (#24726240)
> Different versions of an algorithm are different algorithms.

Splitting hairs like that doesn't change anything because it's still not the algorithm which you get a copyright on. It's the work of authorship implementing it.

But you can certainly produce multiple implementations of source code that are not only functionally equivalent in practice but actually generate identical machine code.

> Copyright protects how code is written not what it does. And the how applies just as much to interfaces as implementations.

The issue is that the interface is strictly the what it does part. Given the implementation, or the need for compatibility with one, the API is purely a factual description of the call spec. You can't rewrite it or it changes the what, which means there is no room to change the how, and the code correspondingly required shouldn't be copyrightable because it's purely functional and leaves no room for alternative compatible implementations.

Re:Google’s Supreme Court faceoff with Oracle was a disaster... by imtringued on Friday October 09, 2020 @08:01AM (#24729014)
Copyright protects your code as it is. The work itself is protected. Nobody can copy it and hopefully Google didn't copy anything.

It doesn't protect against reinvention because it's easy to bypass copyright through clean room designs which is probably what Google did.

Re:Google’s Supreme Court faceoff with Oracle was a disaster... by FartyMcFarter on Thursday October 08, 2020 @08:35PM (#24725513)
> "This function does merge sort."

This is not the most common type of contract in APIs. More like "this function sorts", or perhaps "this function sorts in O(N*log N) time". Sorting can be done with many different algorithms.