7 ms·
This is not a persuasive argument because, by your logic, function implementations are also mathematical formulas and everyone agrees that they are copyrightabl
by throwaway8581 6y ago
This is not a persuasive argument because, by your logic, function implementations are also mathematical formulas and everyone agrees that they are copyrightable.
- cjbprime 6y agoThe copyrightable part of them is the creative decision making used to organize the workings of the function itself, not the formulas. Two functions could have identical algorithmic performance, but be stylistically and semantically different, have been written independently, and neither would infringe on the copyright of the other.
- throwaway8581 6y agoAn API design is also a creative and highly stylistic work. Anyone who has ever designed a large API, or suffered a poorly designed one, can attest to that. A bad design can work just as well as a good design. Also, you are distorting the argument by making it about one method signature instead of thousands of interconnected types and methods that work together to present an ergonomic interface for the developer.
- tantalor 6y agoThe quality of good/bad or ergonomic is insufficient to meet the threshold for copyright protection. A table of baseball batting averages or telephone numbers is not copyrightable, no matter how good or bad it is organized.
- throwaway8581 6y agoAn API design is plenty creative. The bar for what is creative enough to get copyright protection is extremely low, basically zero. An alphabetized phone book is literally the example people have to use for something that isn't. There's a reason the Supreme Court didn't adopt the argument you are pushing and instead ruled on fair use grounds: It's a bad argument because a large API is clearly a creative work.
- mantap 6y agoArguably API design is the most creative aspect of programming. The space of possible interfaces is infinite, whereas function implementations are heavily constrained by the interface and often there is only a handful of ways to write an implementation for a given interface. Two equally good programmers may come up with radically different interfaces. Whereas if given an interface and instructed to implement it, they are likely to converge to a similar implementation.
- tantalor 6y agoNo, definitely not. Computer code is not a formula. A formula is an idea. It describes the nature of something computable. It does not explain how to compute. For example: https://en.wikipedia.org/wiki/Euclidean_algorithm https://en.wikipedia.org/wiki/Euclidean_algorithm The programmer must understand the formula in order to write computer code that implements it. The result is a creative/expressive work which is copyrightable.
- throwaway8581 6y agoYes, but neither is an API signature a formula. I was assuming the logic of the person I was responding to, to show that it could not be right.
- marcodiego 6y agoConsider the following: gcd(X, Y) = X if X == Y or gcd(X - Y, Y) if Y < X or gcd(X, Y - X) otherwhise. Is this a formula? Should this be copyright-able?
- tantalor 6y agoOf course not, this is math; it is not copyrightable. It would have made perfect sense to Euclid. Some computers can understand this and execute it as if it were computer code. That's amazing! Kudos to those compute language designers and compiler authors. But their ingenuity does not suddenly grant copyright protection to anything their clever compilers can now understand.
- marcodiego 6y agoAny computable function can be written the way I wrote the function that is equivalent to Euclid's algorithm. Does it means no computable function is copyright-able or not copyright-able if written that way?
- throwaway8581 6y agoExactly. That argument would never fly in a court. I’m always amused when software people think they have some legal checkmate like “any digital work is somewhere in the infinite digits of pi therefore cannot be copyrighted.” That’s not how law works.
- asimpletune 6y agoFunction implementations are definitely not mathematical formulas. To see what I mean, check out any HN discussions on TLA+ syntax. It’s when you see an actual mathematical syntax that you realize how different programming really is. Not try to be tedious here, just pointing out that actually programming is different than math, even for a language like Haskell.