Hacker News new | past | comments | ask | show | jobs | submit login
Google’s Supreme Court faceoff with Oracle was a disaster for Google (arstechnica.com)
643 points by randtrain34 on Oct 8, 2020 | hide | past | favorite | 748 comments



I'm not sure why so many people here seem to be surprised by this, I got the exact same impression from the hearing.

The problem for Google on the copyrightability front is that "compilations" of non-copyrightable items can be copyrightable even if the underlying items themselves are not, if the "selection, coordination, or arrangement" of those items involves sufficient creativity to be considered an "original work of authorship".

For example, individual recipes are generally not copyrightable, but if you compile a set of recipes and publish them in a cookbook, the cookbook itself becomes copyrightable.

As applied to Java, individual method signatures like min and max might not be copyrightable, but someone had to go in and organize those individual methods into classes, and organize those classes into packages. That act of organization likely implies that the Java API (taken as a whole) constitutes a copyrightable work, even if the individual method signatures are not.

What's worse for Google is that code has always been considered copyrightable so arguing that APIs are non-copyrightable is essentially carving out an exception for a specific type of code.

As is common when HN discusses legal matters I see a lot of people blaming the judges for not understanding tech, but the problem here isn't really the judges so much as the law itself. We should not be surprised if Oracle ends up winning here, at least on the question of copyrightability. Google may have an out related to fair use, but that seems like a long shot as well.


Having read multiple perspectives, some pro-Google and some pro-Oracle, I cannot reconcile this sort of argument with the Baker v. Selden precedent. [1]

Perhaps my understanding of APIs is different because I'm an engineer and not a lawyer, but how is this not an open and shut case?

The cookbook analogy is not applicable for the same reason one could not apply it in Baker, accounting methods are not of themselves copyrightable creative works. (They may be patentable, but I believe patentability is NOT at issue here.)

Selecting and arranging recipes requires creativity. I do not believe API code of a math library is in any way the same level, having designed hundreds of APIs and several SDKs myself. Perhaps creating a specification upon which the API design based upon is, but that leads right back to Baker. What am I missing here?

[1] https://en.wikipedia.org/wiki/Baker_v._Selden

Edit: And if you think about it, an API code is really just a set of templated forms for conveyance of data between systems. In this sense it is really no different from the accounting ledger templates in Baker.

Second edit: It would be worthwhile to enlighten the judges on the early history of computer programs and their ties to recipes which should make the cookbook analogy and its potential misapplication here even more obvious.

Third edit: Another line of enquiry would be to discuss differences between API contracts and APIs. They are not the same, though often confused, even by practicing software engineers.


> I cannot reconcile this sort of argument with the Baker v. Selden precedent.

Contemporary judges, including on the Supreme Court, aren't interested in reconciling Oracle's argument with Baker v. Selden; there's no love for Baker. Courts may pay lip service to the notion that ideas can't be copyrighted, but the prospect of ruling as a matter of law that specific, concrete categories of works are categorically not copyrightable (especially if they're not patentable) seems illogical to them. Previous hard exclusions, like those related to automobile designs, textiles, and databases are already on the way out, unfortunately, just like the idea that entry into the public domain is a one-way street. The case law has been slowly moving in this direction for at least 20 years, but it's too painful for many to admit despite judges (e.g. Ginsburg) being crystal clear about the direction they want to take things.

Judge Alsup's original opinion declaring APIs not copyrightable is brilliant and the best argument anyone could possibly make. It is the best argument, period, IMO. But the basic premise is just anathema to the majority perspective on courts' role regarding the application of copyright law.


I really struggle to see what was "brilliant" about Judge Alsup's opinion. After 30 pages of very careful analysis of the case law, his actual holding (at p. 35) simply begs the question. He states:

> Much of Oracle’s evidence at trial went to show that the design of methods in an API was a creative endeavor. Of course, that is true. Inventing a new method to deliver a new output can be creative, even inventive, including the choices of inputs needed and outputs returned. The same is true for classes. But such inventions — at the concept and functionality level — are protectable only under the Patent Act.

This mixes up the functional aspects of designing methods with the stylistic aspects of API design. Consider something like a 3D Graphics API. Some decisions are functional--for example, minimize call overhead or maximizing batching opportunities. That should not be copyrightable. But a lot of other decisions are stylistic. They make the API more elegant, or orthogonal, or intuitive, but are not functional in and of themselves. For example, how to structure groups of functions for dealing with various kinds of buffers. Insofar as those stylistic decisions are expressed in literal code, that's the domain of copyright.

> The method specification is the idea. The method implementation is the expression. No one may monopolize the idea.

This is ipse dixit. How you view the "idea" depends on your generality. Direct3D and OpenGL have different ways of expressing the concept of creating a Z-Buffer. "Creating a Z-Buffer" is the "idea." There are myriad method specifications that can express that idea.

> To carry out any given function, the method specification as set forth in the declaration must be identical under the Java rules (save only for the choices of argument names). Any other declaration would carry out some other function.

This is glossing over a major logical leap. It assumes you already have a method with a given signature, and writing the declaration is a mechanical process of specifying what signature corresponds to the method implementation. But what if you design the API by writing the declarations first, and filling in the methods afterwards? (Which is very often how its done!) You can write a method to do a particular thing but give it many different specific signatures.


> This mixes up the functional aspects of designing methods with the stylistic aspects of API design.

Yes, it does mix them up. That's exactly what the merger doctrine is intended to do: the expressive character "merges" with the functional character.

From an abstract standpoint it seems that it gives short shrift to the purpose of copyright. But it's necessary if you want to maintain an effective distinction between ideas (including systems and processes) and creative expressions in determining copyrightable subject matter. In practice, if you look hard enough there's almost always some amount of creative originality in any piece of work, no matter how utilitarian it is; originality that by necessity must be copied. (Though Google didn't do itself any favors by stipulating to literally copy+pasting the Java API.) The whole point of the merger doctrine (at least an assertive application of it) is to prevent a court from looking too closely at certain classes of works which, through custom and experience, should be considered as having a principally functional character.

And that's why Google was bound to lose on this particular argument, because the experience and wisdom that begat the merger doctrine--that without a robust merger doctrine the distinction between idea and expression cannot be sustained in practice--has been forgotten. As time marches on earlier precedent has receded into the darkness and Feist becomes the first word on the matter; and all Feist really cares about is creative originality. The entire software industry, AFAICT, universally supports the notion that APIs, per se, shouldn't be copyrightable. (Contrast with software patents, where a substantial fraction do disagree.) But show me an actual implementation or API specification where you could with any degree of confidence [in litigation] separate the expressive from the functional character in a way that preserves the principle and allows you to reimplement the API with minimal risk. Ultimately it's really only viable if you have a special rule for APIs.

Of course, we still have Fair Use, similarity, and other defenses. But those are far more subjective, involve a substantial amount of litigation, and are generally high risk defenses. Without a bright line rule then as a practical matter people should and will be risk averse. Even if a court might judge a particular work functional, it'll never get the chance to say so.

The whole expression-idea dichotomy is a complete fiction. It's certainly not a law of nature. The idea of copyright is rather artificial as well. So it shouldn't be surprising that we will often face such dilemmas and inconsistencies where theory and practice meet. The purpose of the merger doctrine is to give "idea" its due when otherwise "expression" would almost always win out, despite what would be optimal for the promotion of new works. Theoretically the legislature could carve out exceptions, but legislatures suck at that sort of thing, despite what they often teach in law school. More often its the courts, who wrestle first-hand with the ugly technical details and the real-life interests at stake of applying (over years, decades, and even centuries) the abstract concepts, who are best positioned to carve out exclusions or to subtly put their thumbs on the scales to further the ultimate purpose of the law. But, again, this role of the courts is frowned upon today, at least in an area such as this.


> This mixes up the functional aspects of designing methods with the stylistic aspects of API design.

I think the disagreement here is as a frequent API author I don't see any stylistic aspect in the design of API code. API code as an artifact itself is purely functional. This distinction becomes important because of the case precedent at hand.

Prior to creating any API, one must have a specification of the system the API is meant to model and control. If one skips writing the specification, that doesn't mean there isn't one, it's just largely in the brain of the implementer and possibly underspecified or inconsistent in spots. Every unit of API code therefore has an implied specification, whether or not a documented, written specification exists.

The API code is simply a mechanical translation of the specification into machine readable form. Parameter names, method names, those do not matter to the technical function of the system they are there solely to enhance use. The specification is possibly a patentable invention. A book describing the specification to a human audience is possibly a copyrightable work.

API code is neither of those things, rather it is an embodied practice of interacting with that specification in a machine-readable form and therefore IMO [IANAL] not eligible for copyright under Baker.

> For example, how to structure groups of functions for dealing with various kinds of buffers. Insofar as those stylistic decisions are expressed in literal code, that's the domain of copyright.

These structures are not inherent to the function of the API code, except incidentally due to implementation details. The purpose of these structures is to model the system being interacted with.

I think part of the misunderstanding here is the contemporary expectation that all code is self-documenting. Which is an admirable goal, but it obscures some important nuances about what an API as opposed to an API contract actually is.

API code, particularly old or highly specialized API code, has a TON of undocumented behavior, quirks, etc that exist. Where do they exist? Besides in the heads (optimistically) of the implementers, it also exists in the specification the API code together with its implementation translate.

> But what if you design the API by writing the declarations first, and filling in the methods afterwards?

Presumably it's the human and not the computer writing the API code so the human has some notion of what the API code is representing. The act of writing this code is translation. Just because the original is not always captured does not mean that it doesn't exist. It must exist for there to be API code in the first place.


Are there some cases you can cite where this movement occurred? They don't need to be software related. I'm VERY curious about this trend.


Off the top of my head:

* Star Athletica LLC v. Varsity Brands Inc., 137 S. Ct. 1002 (2017)

* DC Comics v. Towle, 802 F.3d 1012 (9th Cir. 2015)

* Golan v. Holder, 565 U.S. 302 (2012)

One of the most important cases for contemporary copyright law was Feist Publications, Inc., v. Rural Telephone Service Co., 499 U.S. 340 (1991). It was a nominal a win for the defendant, but in fact the opinion set a very low bar and effectively condemned the types of bright-line subject matter exclusions that a robust merger doctrine demands, such as in Baker v. Selden.

IIRC, Alex Kozinski wrote some opinions that best reflect the majority perspective today, but I can't find any good citations right now. His arguments are persuasive, but sort of miss the point. Baker v. Selder and the merger doctrine are classic common law solutions to statutory rights that breed complex litigation and inhibit competition. They're not supposed to be intellectually pure or rigorous defenses of legislative powers. Quite the opposite. But courts are far more conservative today and not inclined to exercise their judicial powers this way, with the notable exception of the First Amendment. In fact, certain First Amendment defenses to infringement are slowly becoming more viable, where once upon a time they were dismissed out of hand.


What are your thoughts on SAS Inst. Inc. v. S&H Computer Sys. Inc.? Does it fall into the grouping above in your opinion? I find it to be a very quirky decision in light of the merger doctrine principles you wrote about, unless I'm missing something.


Very interesting... and somewhat unexpected especially re First Amendment, thank you for these!

Star Athletica LLC surprised me in particular. Stripes and chevrons!


I'm not going to argue whether I think APIs should be copyrightable, but I believe creating a good API is a work of creative design, and is artistic

I design an API for graphical coding and spend significant creative energy choosing the right words, calling conventions, result types to not only make something intuitive, but emotionally pleasurable to code with

Sometimes I'll spend days writing out possible forms of the API — changing words, tense, syntax, until it looks and feels "right." These aren't arbitrary or purely functional decisions

Do I want my users to "read" text from a file, or "open" the file? Do I want them to handle keyboard events in a simple global function or assign callbacks into a keyboard handler under each character name. How are those callbacks shaped? What's easy to understand?

APIs aren't just restricted simple functions and types. Some may involve the creation of a custom DSL to make it easy to declare functionality in part of your system, or clusters of protocols that work together in very specific ways so users can implement a complex system atop them


> I'm not going to argue whether I think APIs should be copyrightable, but I believe creating a good API is a work of creative design, and is artistic

I disagree. I think the specification can be, but the API code itself is a mechanical translation of the specification into computer code. Note that abstractions, names, etc are conceived in the specification and are then translated into computer code. Even if you skip the specification step, as sometimes is done, you're then dealing with an implicit, ad-hoc specification.

Edit: To clarify what I'm saying, the "creative design" aspect of what you're talking about and that I'm in no way denying, is meant to be protected via the patentability and not the copyrightability of the end product. The creativity is in the behavior not in the mechanical translation of the behavior for computers to use.

> APIs aren't just restricted simple functions and types. Some may involve the creation of a custom DSL to make it easy to declare functionality in part of your system, or clusters of protocols that work together in very specific ways so users can implement a complex system atop them

Indeed. Yet you're still describing behavior here. A DSL is an example of a specification of one language in terms of another. This is a creative work, I strongly agree! The difference is where does the creativity reside? I don't believe it's in the API code, but in the specification whether written or unwritten and therefore implied.


To be clear I am on the Google side of this argument

But certainly the API code contains naming, which is a creative aspect of API design, and in this case naming is used by developers to code against either Oracle's Java implementation, or Google's. In order to allow this Google had to copy the naming created by Oracle for their version of the API in order to attract the large pool of developers who liked and were familiar with that design.


With respect to naming, I think the details of the Baker case make it clear that names are not copyrightable. Nevertheless I agree that naming is a creative aspect of API design. It's not a creative aspect of API code though! There it is just an affordance.

The names that we given our APIs are inherent to their behavior and not necessarily the code. Some languages, such as Swift, even mangle API names when they are used so that their names are non-sensical without de-mangling. So why is the name important? It's important for us to understand what the system is doing, but not to the function of the system itself. This might not seem important for us when doing our work, but in the case of copyrightability it's an important fact based on precedent law.


I'm not sure I understand your point about the difference between the API code (where the names are mangled and meaningless) and the API design. Surely the API code is irrelevant here because it is not the part that humans interact with?

In this case the naming is an important factor, as that is the competitive advantage leveraged by Google in copying Oracle's Java API. They were able to tap into a developer resource who was familiar with the style, naming and conventions of Java

The API is the interface between the human and the code, and so copying a familiar interface design can be an advantage when building a platform


> difference between the API code (where the names are mangled and meaningless) and the API design.

API Code = header file or interface files or source code artifacts you need to include in order to make use of the system underlying the API.

API design = a behavioral specification which the system represented by the API implements

> In this case the naming is an important factor, as that is the competitive advantage leveraged by Google in copying Oracle's Java API.

My point is it's an important factor in the design specification, not the code. This makes it an invention. Inventions cannot be copyrighted per Baker; they can however be patented.

> They were able to tap into a developer resource who was familiar with the style, naming and conventions of Java

The Baker case specifically addresses this point by saying embodied practices cannot be copyrighted. Java isn't a book, it's an invention so the proper avenue for protection is a patent and not copyright.

> The API is the interface between the human and the code, and so copying a familiar interface design can be an advantage when building a platform

Again this would be arguable as a patent infringement, but here we are discussing copyright and not patents. What you're describing applies to design patents IMO. [IANAL]


Thank you for the details! I think I understand what you mean now


> I think the specification can be, but the API code itself is a mechanical translation of the specification into computer code. Note that abstractions, names, etc are conceived in the specification and are then translated into computer code. Even if you skip the specification step, as sometimes is done, you're then dealing with an implicit, ad-hoc specification.

I think that's a distinction without a difference; you might as well say that a story is a creative work but translating that story into symbols written on a page is purely mechanical.


The words on paper (or any other medium) are protected under copyright. The story isn't. Otherwise someone could just make a theoretical book that contains all possible English sentences and thereby make it illegal to speak English.

People don't seem to grasp that there is a distinction between semantics and representation. You can represent the number 85 in many different ways. In binary, in decimal, in hexadecimal. People can copyright a representation of a number but not the number itself. If you were the first human to invent numbers as a concept, you could indeed patent numbers.

Maybe it helps if we compare this to hardware instead. You can design a CPU. The design digital files are under copyright and if you want they can also be a trade secret. However the physical hardware (i.e. the thing whose representation is your digital design files) is not protected by copyright. If you give someone access to design files e.g. via GPL (or in this case by providing the Java standard library). Then any reader of the design files is allowed to look at the arrangement of transistors and then create their own proprietary design files even though your chip design is under GPL. Copyright doesn't protect semantics. It only prevents 1:1 copies of media. When you look at the min function and see a description of its behavior that is semantics. As it stands right now you are allowed to replicate those semantics. There is no monopoly on finding the smallest of two numbers. With the existence of software patents you could in theory patent these semantics.

Now lets get to the actual problem in question. Oracle is providing users with a representation of its java API via javadoc and the standard library deliverables at least under GPL (I am merely assuming this). What does this mean in practice? Well, first of all everyone has access to the representation of the API even if they don't intend to copy it. But as we already established, Google did not copy the java libraries (unless they did which is obviously a copyright violation and they should lose the trial because of that). They merely took the semantics of the java API and built their own independent implementation of the Java standard libraries. APIs cannot be protected under copyright because the semantics of the API can be copied without triggering copyright protections the same way copyrighting your hardware design files does not prevent someone making a copy of the physical manifestation of your hardware. In the hardware world this is solved by patents which do indeed grant a monopoly on semantics. In the software world this should be solved by patents as well.

TL;DR it is possible to create identical hardware without violating copyright of the design files, it is possible to create an identical API without violating copyright of the original source files


> The words on paper (or any other medium) are protected under copyright. The story isn't.

That's the opposite of what you're claiming in the rest of your post.

> However the physical hardware (i.e. the thing whose representation is your digital design files) is not protected by copyright.

That's absurd; if you can copy the physical layout then you can copy the design, so copyright protection for the design would be meaningless.


So about general computer programs does your argument mean, that the UML diagramm should be copyrightable but not the program, since it isna mechanical translation?


No.

Unlike patents, which may confer proprietary rights in relation to general ideas and concepts per se when construed as methods, copyrights cannot confer such rights. [1]

[1] https://en.wikipedia.org/wiki/Idea–expression_distinction


I don't buy your translation argument. We have similar transations going on in the case of music for example.


It's not (just) my argument, it's a century old concept in copyright law.

https://en.wikipedia.org/wiki/Idea–expression_distinction#Me...


I think your definition of "creativity" is too narrow.

Which is perhaps not surprising, since you say you're an engineer. ;)


I think you're misunderstanding what I wrote. The creativity that people commonly associate with an API is in the behavior of the API, not in API code. API behavior is no doubt a creative work. If you consider the API to be nothing but code, then your definition of an "API" is too narrow.

Nothing I've said should be construed as denying the richness and brilliance found in the design of software and software-based abstractions.


> I'm not going to argue whether I think APIs should be copyrightable, but I believe creating a good API is a work of creative design, and is artistic

But that's not what it's about. Lots of things are a work of creative design but not copyrightable. Like a recipe for chocolate chip cookies.


Yes and I am on the Google side of this argument. I just wanted to point out that API design is a very creative area of programming


But if you compile a bunch of recipes for chocolate chip cookies and publish it then it is


The compilation is. The recipe still isn't.


The Google v. Oracle argument hinges on Structure, Sequence, and Organization[1]. Things like the actual package structure arguably involve creative decisionmaking, and are not strictly analogous to something like accounting methods. For example, even if the idea of a max() function that takes two integers and returns the larger of the two is not copyrightable, the specific name "java.lang.Math.max()" might still be. Especially if you're talking about not just one function, but some enormous number of methods in some large number of classes across 37 different packages.

[1]: https://en.wikipedia.org/wiki/Structure,_sequence_and_organi...


> Especially if you're talking about not just one function, but some enormous number of methods in some large number of classes across 37 different packages.

See my other reply down thread, but my own reading of Baker seems to indicate this specifically is not a factor. 37 packages vs 1 method should make no difference. Copying one ledger template or copying hundreds is not a violation of copyright in the same way, because copyrights don't extend to methods of practice.

I'll have to read up on the SSO stuff as it appears there are more relevant & recent precedent cases there.


The 2014 decision, for one, hinges on it being a whole package structure and not just one method:

Google copied the declaring source code from the 37 Java API packages verbatim, inserting that code into parts of its Android software. In doing so, Google copied the elaborately organized taxonomy of all the names of methods, classes, interfaces, and packages — the "overall system of organized names — covering 37 packages, with over six hundred classes, with over six thousand methods." Copyrightability Decision, 872 F.Supp.2d at 999. The parties and district court referred to this taxonomy of expressions as the "structure, sequence, and organization" or "SSO" of the 37 packages.

The Baker ruling is specifically addressed in that one, and they call out exactly how it is relevant to Oracle v. Google: The Baker precedent says that the parts of a design that are strictly essential to its function are not copyrightable. But the parts that involve some art - such as - according to this opinion - the taxonomy introduced in a package structure - are copyrightable.

In other words, you can think of SSO as shorthand for, "The things that aren't covered by the Baker precedent."

We also have, in the same opinion:

When assessing whether the non-literal elements of a computer program constitute protectable expression, the Ninth Circuit has endorsed an "abstraction-filtration-comparison" test formulated by the Second Circuit and expressly adopted by several other circuits. ... This test rejects the notion that anything that performs a function is necessarily uncopyrightable.

(Disclaimer: This is not meant to imply that I think that Judge O'Malley's 2014 opinion is the final word on the case. I'm just picking some highlights from an opinion on this case that might shed some light on how the Courts are approaching the issue.)

(https://www.leagle.com/decision/infco20140509135)


I'll have to read on this further. Thanks for the references.

> The Baker precedent says that the parts of a design that are strictly essential to its function are not copyrightable.

Since all parts of the API code are strictly essential to its function than they are not copyrightable, right? The parts that are not essential to its function lie in the behavior of the system in question instead of the API code, this behavior is codified in the specification of the system. The specification of the system isn't the same as the API code. I think this is a very compact form of what I was trying to convey in my other replies on the thread.


So, going back to the max() function example: I believe, based on the way the courts are looking at it, that the parts that are essential to its function are the fact that it takes two numbers and returns the greater of the two, and perhaps also the fact that it is named "max".

Its being placed into class named java.lang.Math, though, is not. That is a product of the way it is arranged, which is a matter of design, not of necessity. It's hard to imagine any particular reason why a function would need to have "java" in its name in order correctly calculate the maximum of two numbers.

The crux of the case, then, is the copyrightability of those design decisions about how the API members are arranged. The set of specific functions it performs is, as per Baker not the focus of the argument.

To take a hypothetical that cuts much closer to the accounting analogy: imagine if H&R Block came out with tax preparation software with exactly the same capabilities as TurboTax. That would, I believe, be fine, in and of itself, because the functionality itself is not copyrightable. However, if the interface to their tax preparation software were arranged identically to TurboTax's, to the extent that a set of automated UI tests written against TurboTax would also work with H&R Block's app, then we would likely be looking at a case of copyright violation.


> ts being placed into class named java.lang.Math, though, is not. That is a product of the way it is arranged, which is a matter of design, not of necessity. It's hard to imagine any particular reason why a function would need to have "java" in its name in order correctly calculate the maximum of two numbers.

But if you want to be interoperable with programs that expect to be able to find the max of two numbers using the specific name "java.lang.Math.max", then the name _is_ part of the function. It's kind of like an electircal outlet. The shape of the outlet doesn't really matter as far as delivering electricity, but if you want people to be able to plug in their existing devices, it needs to be in a shape that is compatible with those devices.


That 2014 opinion has a whole section explaining why the interoperability argument doesn't work here. I also summarized it a bit elsewhere in this thread.

To add more to that, the opinion spends a while talking about why the precedent in the ruling in favor of Activition over making unlicensed games for Sega consoles doesn't apply here, and that's helpful for understanding why arguments about interoperability aren't going well over in the courts. In short, the Court recognized a clear distinction between making things to run on someone else's platform, and making your own platform that is designed to be incredibly cosmetically similar to someone else's, but not actually interoperable with it.

Incidentally, I'm looking to that detail for hope. Most my anxiety around this case concerns its potential implications for the legal standing of projects like WINE. But those projects are unambiguously good faith efforts at interoperability. If the Court ultimately rules against Google, but bases that ruling on the opinion that Google's claims about interoperability were smoke and mirrors, then that would seem to imply that they are specifically ruling against what Google did, and not what open source projects are typically doing.


What you should really worry about is who owns the C language API (Nokia Bell Labs probably???)

You see, in the US, derivative works are a thing. All languages that derive their APIs and perhaps even syntax from C would be derivatives. There's interesting legal arguments to be had there if APIs are ruled to be copyrightable....


Compatibility seems more like an fair use argument and has been argued in the past for hardware in order to allow fair use access to copyrighted material. There is however a distinction between being compatible and being market substitute for the original work, with the later being much more problematic from a copyright perspective.


> It's hard to imagine any particular reason why a function would need to have "java" in its name in order correctly calculate the maximum of two numbers.

That's not the full scope of it's function, at least in a technical sense. It's also meant to be a utility system-level method and in Java standard library utility methods follow a certain organizational scheme so as to designate their system-level status. This status implies certain aspects of behavior not codified in the API name. Therefore this sort of organizational scheme can be argued to be of necessity and not merely an arbitrary design decision.

I think the common gap in many comments here (not necessarily yours, but in sibling postings of your original reply to me) is of an understanding between engineers that mostly use APIs and ones that write them. I'm in the latter category, so my perspective differs. APIs do have explicit contracts that are reflected in their parameters, names, etc. They also have an implicit contract, equally critical to their actual functionality, which needs to be accounted for when in use. Many aspects of organization, etc are firmly in this category and I believe no experienced API author can credibly argue otherwise. Thus behavior like this

> a set of automated UI tests written against TurboTax would also work with H&R Block's app

is of necessity to a properly functional API satisfying an implied API contract. A better example would be H&R Block and TurboTax disputing their workflow for a particular tax form because the workflow is a commonly practiced one by accounting professionals. The software workflow codifies an existing practice. By the Baker standard that appears to me not to be a copyrightable item. API code, in my view, is not dissimilar.

Judge Thomas had an interesting exchange re football playbooks with one of the lawyers. In his example, wouldn't it make more sense to state that the proper protection for a football playbook and its associated techniques to be a patent and not a copyright? The truly valuable creativity is embedded in the practice of football tactics and not in the markings of a manual.


>That's not the full scope of it's function, at least in a technical sense. It's also meant to be a utility system-level method and in Java standard library utility methods follow a certain organizational scheme so as to designate their system-level status. This status implies certain aspects of behavior not codified in the API name. Therefore this sort of organizational scheme can be argued to be of necessity and not merely an arbitrary design decision.

I think the key word in your argument is 'implies' and you didn't use the word 'requires'. If the authors of the API are implying the nature of these sets of functions by organizing them under 'system', they are doing so to convey information and an opinion as to the nature of the function. The fact that java.system.out is STDOUT, could be also put into java.io or java.system.unix.out, java.logging.out etc. The 'system' is arbitrary, its not 'required'. For example, the out function does not inspect its package name to determine that this out file outputs to STDERR.


> I think the key word in your argument is 'implies' and you didn't use the word 'requires'.

You can make this same argument for the function name or the parameter names. Nothing about the implementation of the max function requires it be named max to work, it just needs to link to a function pointer or some equivalent construct that acts in a way as defined by a specification for what max should do. A name like max is helpful for use though. So is arranging max, min, and other standard math functions in the same module. Treating method names as different from other forms of organization is inconsistent. They are all forms of organization.

You've also raise some points re interoperability, but I'm not really arguing about that. My own argument is more of a conceptual one based on the difference between an API and an API contract as well as on the role a system specification plays in API design & use. You could probably extend this concept to the interoperability question and I see no reason why it won't make sense, but that's not what I'm doing here.


> So, going back to the max() function example: I believe, based on the way the courts are looking at it, that the parts that are essential to its function are the fact that it takes two numbers and returns the greater of the two, and perhaps also the fact that it is named "max".

> Its being placed into class named java.lang.Math, though, is not.

Its not essential to the function of the library function.

It essential to the function of the API, which is to interface between the code in the library and consuming code, including (in the case of the APIs used in Android) consuming source code (though not complete existing applications, for various reasons that Oracle wants to be given the weight of negating the idea that interoperability is the purpose at all, despite the fact that this is simply false) designed for the existing Java APIs.

> However, if the interface to their tax preparation software were arranged identically to TurboTax's, to the extent that a set of automated UI tests written against TurboTax would also work with H&R Block's app, then we would likely be looking at a case of copyright violation.

The problem with that analogy is that it is self-evident that being mechanically identical is not a functional requirements (though it may be advantageous) for a human-software interface to work, because humans are intelligent actors that can figure out a UI, within some bounds. On the other hand, a client code unit consuming an API cannot intelligently "figure out" a different API than the one it was designed for: the API is, to the extent that it is intended to support the same functionality, either identical or nonfunctional.

Well, the other problem is that the actual legal precedent on look and feel (while not necessarily decisive because the Supreme Court successfully dodged the issue) goes the other way, anyhow. But even if you were right that an identical interface would be infringing as copying expressive components not essential to functionality for a UI, the analogy fails for an API because of the different requirements for functionality.


Its being placed into class named java.lang.Math, though, is not. That is a product of the way it is arranged, which is a matter of design, not of necessity. It's hard to imagine any particular reason why a function would need to have "java" in its name in order correctly calculate the maximum of two numbers.

It's absolutely essential for interoperability to preserve package layout, class/method names, and argument order. For any Java code you want to run on your Apache Harmony based mobile OS, you have to have the Java package names.


That is true, but it's irrelevant. Oracle is not suing app developers for writing Java code to run on an Apache Harmony based mobile OS. It is suing Google for proceeding to base their mobile OS on Apache Harmony after they backed out of licensing negotiations. As was observed during the hearing, everyone else who made a mobile OS was able to do it without copying someone else's API structure, so the idea that the API structure is essential to the functioning of a mobile OS is simply absurd.

There's a whole section in that opinion I linked above titled, "Google's Interoperability Arguments are Irrelevant to Copyrightability," that's worth reading for a deeper treatment of the issue. In particular, Judge O'Malley (quite reasonably) calls bullshit on the very premise that Google copied the Java APIs in order to achieve interoperability, pointing out that Google did specific things to prevent such interoperability (as an aside, we now know that their desire to do so, and Sun's unwillingness to agree to that, is a major reason why they could not come to terms on a licensing agreement), and was unable to produce any examples of a pre-existing Java program that also runs on Android.


Huh. I actually was about to suggest that the Java Hello World should work, but a quick perusal dismisses that.

Why would Google bother keeping the JVM class hierarchy if they were implementing a different VM to run against anyway? That just seems to be asking for trouble. I can sort of see some merit to Oracle's argument now. It would be one thing if JVM byte code was treated as an Intermediary representation that then compiled to Dalvik... but it isn't even really that.

Damn, Google stepped in it. Hard.

Edit: Further research indicates Java Byte code is an intermediate representation compiled to Dalvik; so technically the Java Hello World would work coming out in Dalvik (or Android Runtime). So... Back to being confused again, because clearly, even if Google did copy pasta the Java APIs the end machine they are driving is drastically different; I.e., System.out.println() would generate no visible output on Android.

So I'm really back in Google's camp, Oracle is trying to copyright a steering wheel.


"Hello, world" is a rather poor example, because there's little practical value in a mobile application like that. The real value comes from being able to reuse many existing Java libraries.


Hello World! In a Turing space is all you need to implement every other program. Arguments that "there exists no program" come with an inherent verifiability criterion of " well here's one." The thing that Oracle is pissy about is that things get transpired out of Java Byte code, into Dalvik or ART.

Oracle wants patent like protections for the output of Java, and overall API structure in all languages. They want copyright on a meta-pattern. Just trying to imply skulduggery to "look, they joined our API structure, and didn't even do a good job of it, so they should have to pay us for infringement" is a transparent farce. It's an entrenching power grab.


I've had a chance to read your materials. Here's a question:

Using the AFC test [1], which seems common throughout the case law cited, how does one distinguish a design decision from a standard programming technique [2] in the context of a programming language's standard library API? By virtue of terminology, it's a standard. Is it defensible because it is a design decision concerning a programming language implementation? Then how does that square with computer languages not being copyrightable? What argument can one make so it can pass the filtration step of the test?

[1] https://en.wikipedia.org/wiki/Abstraction-Filtration-Compari...

[2] Computer Associates Int. Inc. v. Altai Inc.

https://web.archive.org/web/20120310144346/http://ftp.resour...

"in many instances it is virtually impossible to write a program to perform particular functions in a specific computing environment without employing standard techniques." 3 Nimmer § 13.03[F], at 13-65. This is a result of the fact that a programmer's freedom of design choice is often circumscribed by extrinsic considerations such as (1) the mechanical specifications of the computer on which a particular program is intended to run; (2) compatibility requirements of other programs with which a program is designed to operate in conjunction; (3) computer manufacturers' design standards; (4) demands of the industry being serviced; and (5) widely accepted programming practices within the computer industry."


No we wouldn't. Courts rejected these look and feel claims in Lotus v. Borderland.


> Its being placed into class named java.lang.Math, though, is not. That is a product of the way it is arranged, which is a matter of design, not of necessity. It's hard to imagine any particular reason why a function would need to have "java" in its name in order correctly calculate the maximum of two numbers.

> The crux of the case, then, is the copyrightability of those design decisions about how the API members are arranged. The set of specific functions it performs is, as per Baker not the focus of the argument.

To me, many of the analogies being bandied about don't really capture the distinction you're making. The football playbook for example. Rather than considering the playbook as a description of the game, and thus thinking of what Google did as analogous to copying the playbook, it seems to me that what Google did is analogous to copying the playbook's legend that describes the meaning of the Xs, Os, and arrows that comprise the playbook diagrams, as well as the playbook's table of contents, but none of the actual play diagrams.

To alter the metaphor a bit, Let's say that an author swipes the table of contents for the Lord of the Rings, and nothing else, and writes their own story that conforms to the LotR plot only to the extent that the ToC requires it. Characters and location names that appear in the ToC are used, but nothing else about them is the same. The page numbers don't even have to match as the new work is half the length. We also omit a few things from the ToC, like the several afterwords and appendixes, as well as anything that mentions Tolkien by name. Finally, the work itself isn't called "The Lord of the Rings", but "Doom of Shadows", or whatever.

The work isn't a parody or a satire, nothing is the same except to the extent necessary to make the identical ToC work (in terms of the name, order, and organization of the chapters).

To me, this is a good analogy. The two works are "compatible" in the sense that the ToC is an interface like an API, the ToC and the organization of the book were obviously copied verbatim, but nothing else was.

In this analogy (which presupposes that there are other works that use the ToC as an API), the same sort of questions from this case can be asked: 1. Is the ToC copyrightable per se (since there is obviously some creativity in naming, ordering, and grouping the chapters, but the ToC has slo), and 2. even if it is, is copying it to serve as the outline of a new work fair use?

Does the answer change if the book isn't fiction, eg. a cookbook (dish categories and recipe names, but not the actual recipes) or a textbook (only structure and organization of the subject matter copied, not the actual text or excercises)?

To me it seems fairly obvious that the correct answers are 1. mmmmaybe for the fiction example though I think not, but definitely not for the cookbook or textbook, and 2. It is absolutely fair use for all categories of works, even fiction


The arguments and return value of Min and Max are strictly essential to their function. Their inclusion as top-level items in a Math package is not.

One could imagine alternate taxonomies where, e.g., the Math package is divided into Arithmetic, Trig, Comparison, and Advanced sub-packages. Or where they are placed into an Operators package insted of Math.

For example, Rust puts the Max function into the cmp (Comparison) crate of std. This associates them with comparison & equality rather than trigonometry and calculus like Java does.

This is the type of subjective decision-making that qualifies something as original and non-trivial.


But if you want to run third party Java code you have to preserve package locations and method names to the letter.


> “ Selecting and arranging recipes requires creativity. I do not believe API design of a math library is in any way the same level, having designed hundreds of APIs and several SDKs myself.”

I have designed hundreds of APIs and SDKs myself as well and I could not disagree with you more.

API design is about deliberately and creatively considering the domain model of your user (whether that domain is Int or Float for a user who is a low level system programmer or the domain is CheckingAccount and SavingsAccount for a user who is a banking application developer, or anything in between or beyond). You creatively set up APIs so that composition of the API primitives allows direct expression of solutions in the user’s domain.

This is exactly like arranging recipes in a recipe book, to organize sections for different styles, meals or amount of prep time, holiday themes, etc. That is exactly software API design to a tee.

This article highlights it for me:

https://blog.keras.io/user-experience-design-for-apis.html


The difference is that Baker didn’t involve literal copying of the accounting tables. Baker is treated as a merger case, but it’s more a case about the difference between copyright and a method patent. Baker claimed that copying the general structure of the tables was infringement. The court essentially held that the structure that was copied was the structure dictated by the method itself. And Selden couldn’t copyright any table that had the same structure because that would give him a monopoly on the method.

Here, the Java APIs were copied literally. For example, say you’ve got a function to append an item to a list:

Append(item, list) Append(list, item)

If you changed the order of the parameters, you wouldn’t be literally copying, even though it’s the same basic signature. That’s the Baker case. You can’t monopolize the method of appending an item to a list by extending copyright to all possible permutations of the limited ways to write the signature.

But what happens if you do literally copy? That’s this case. Then, the question is whether these choices of where to put the parameter reflect any creativity.

I happen to think they do—I strongly prefer the first form, which is how it’s done in the Common Lisp standard library.


Then, the question is whether these choices of where to put the parameter reflect any creativity.

Though the choices are creative, it's necessary to replicate them exactly to produce a functioning interface for existing Java code. It's like a design for an electrical connector; maybe patentable, but it's essential to the function so shouldn't be copyrightable.


Are google deliberately not arguing the "APIs should be patentable but not copyrightable" angle because they think that would make the situation even worse than it already is?


Patents are opt in while copyright is opt out. If APIs are copyrightable Google will never get access to the Java API, ever. If someone gets a patent then it will expire eventually. Of course Google wants to go back to the status quo: APIs not being protected by IP rights.


Is this actually the status quo? There are patents on APIs around, and since they were granted, it would seem that USPO, at least, doesn't think that APIs are inherently unpatentable.


> Then, the question is whether these choices of where to put the parameter reflect any creativity.

Interesting. This argument seems to imply that languages are copyrightable based upon creativity in ordering, punctuation, use of certain expressions such as `&`, etc. How is that different from your example? In fact a computer language itself is nothing but an API to a human-readable specification for machine behavior. I can see the specification being a creative work and hence being patentable. I don't see the same for the API code.

I'll have to think more about it. I can't offer a more substantive counter-argument now.


Can you clarify how you think Baker applies here? The underlying point from that case is that an accounting method is an idea and copyright protection does not extend to ideas, only specific expressions of that idea. I'm not sure the situation here is all that similar.


> Can you clarify how you think Baker applies here?

"The conclusion to which we have come is, that blank account-books are not the subject of copyright; and that the mere copyright of Selden's book did not confer upon him the exclusive right to make and use account-books, ruled and arranged as designated by him and described and illustrated in said book." [1]

[1] https://supreme.justia.com/cases/federal/us/101/99/

My reading is that the mere use of an API is a method of practice. It does not matter if the API is simple or complex, in the same as it didn't matter if a single page or multiple pages of account templates were used.


> My reading is that the mere use of an API is a method of practice.

The problem is Google didn't merely use the API, it reproduced the API entirely and necessarily copied several thousand lines of code in the process. Code itself is generally copyrightable so it is difficult to argue that the specific type of code that makes up the Java API declaration is exempt from this.


Apologies, I didn't express myself well when writing that. I meant that all API code is embodied practice. Thus API code itself is in no way different from ledger templates at issue in Baker.

Reproduction of an API in its entirety is no different from reproduction of an embedded practice. Any arguments I've seen so far that argued for parts of API code not being embedded practice were not taking into account how API code is used by software engineers.


The ledger templates in Baker are the result of following the instructions from the book. Isn't the correct analogue to the API code the instruction book rather than the resulting ledger templates?

Baker says that if you write a book that contains instructions on how to do something, you might own the copyright to that book, but your copyright doesn't extend to the results of other people following your instructions and creating their own versions of that thing. In the actual case it happened to be ledger templates, but it could have been anything else.

For example, if you write a book that describes in detail how to draw an owl, you own the copyright to that book. If I buy your book and then follow your instructions to draw my own owl, I own the copyright to that drawing, not you. Your copyright over your book doesn't also grant you the copyright to my owl drawing just because I followed your instructions.

If Oracle was only alleging that Google's implementation of Java (their version of the ledger templates/owl drawing) infringed on Oracle's copyright of its Java API (the instruction book), I could see how the reasoning in Baker might apply. But here they're alleging something further: that the API (instruction book) itself has been copied.


> Isn't the correct analogue to the API code the instruction book rather than the resulting ledger templates?

I would say it's the latter and not the former. APIs aren't instructions in and of themselves, they are instruction identifiers. And the instructions they identify correspond to interactions in a working system. If one wanted to recreate the working system, they'd be hard pressed to do so without recreating instruction identifiers. This isn't just an interoperability issue, but also because experienced practitioners have certain expectations re instructions semantics. Those semantics are often unexpressed directly and come from for example their organization into a given module.

> But here they're alleging something further: that the API (instruction book) itself has been copied.

This is where I'm really puzzled. The API is not the instruction book. The API is a method of interacting with an invented system. You cannot use the API in isolation from the system, by itself it's largely useless. You can't take the API, read it, and then be able to use the system. You need the API to use the system as well, by definition it cannot be used without an API. You could say that the instructions and the ledger templates are fused and inseparable here, but that's only in cases where no other documentation exists which is not the case for the majority of system on the level of Java.


> accounting methods are not of themselves copyrightable creative works.

True. Neither are 'ways of calling library functions" copyrightable.

But in the case of Java API what was copied was the actual Java-code in which the APIs are expressed.

Because the APIs are "fed" to the compiler as Java source-code, it is clear what was copied was not just the "way library-functions are called".

What was copied was Java SOURCE-CODE which allows a Java compiler to ENFORCE and INTERPRET such calling conventions.

Even if the API was rewritten in another programming language it would be a copyright violation if large parts of the structure of the API meaning how the methods are organized into classes and interfaces and how they refer to each other, was copied. That would clearly be a work of art that deserves copyright protection, in my view.


From the Baker opinion:

"The conclusion to which we have come is, that blank account-books are not the subject of copyright; and that the mere copyright of Selden's book did not confer upon him the exclusive right to make and use account-books, ruled and arranged as designated by him and described and illustrated in said book." [1]

I believe based on this reasoning, copying APIs or copying code is a distinction without a difference, so long as it's in the context of calling library functions.

[1] https://supreme.justia.com/cases/federal/us/101/99/


Are you saying code which calls library functions should not be copyrightable?

The Baker opinion can of course be used as argument pro-Google. But it is also just an "opinion". Each case must be decided on its own.

I believe there is a big difference between scale and structural complexity with the (inter-connected) Java API and some text-book examples of accounting layouts. At some point quantity becomes quality.


I believe he is saying, and I would tend to agree, that it does not matter if Google literally copy/pasted the Java header files or if they had merely copied the API (ie. the same structure, sequence and organization) in a different language; for example by creating a Go package having exactly the same package structure and providing the same functions as the Java standard library.

In both cases, they would have "copied" the API and both seem to me to be exactly the same case as in Baker/Selden.


Baker case subject-matter was "... certain forms or banks, consisting of ruled lines, and headings, illustrating the system and showing how it is to be used and carried out in practice".

So that case was about illustrating and explaining a method of doing accounting. There was no textual matter copied.

In Oracle vs. Google I believe the source-code of the APIs was copied.

Even if one would consider a way to do accounting an "API" an explanation and illustration of an API is not the same as the "API".

Explaining or illustrating a "structure" is not the same as copying that structure. Note that copyright applies to actual "works of art", not to abstract "methods". An API (as referred to in this case) is not an explanation of a way of doing things but an actual constructed artifact, source-code.

Think about books. Their content is copyrighted. You can not copy their content. But nothing prevents you from explaining and "illustrating" the content of a book, as long as you don't copy significant portions of the structure and ordering of its verbatim words.


I think people get thrown off because an API is describe through lots of text and can be huge, where as other things are just a layout. The recipe book itself is copyrightable but the language used to describe the recipe isn’t.


Actually the language used to describe the recipe might be. it's just that the recipe itself is not, the fact that you mix 2 cups of this with 1 cup of that and bake at so many degrees. So language that's a plain listing of that in a standard format isn't copyrightable, because it's just a straightforward way to list the uncopyrightable recipe. But if you use especially creative and unique language to describe a recipe, that particular language might be copyrightable. The recipe as a recipe is not; the language used to describe it can be, if it's an unusual or creative way to do so. But someone can most definitely always use their own language to express the same recipe -- the same ingredients in the same amounts combined in the same ways, is not copyrightable.

This has until now seemed like it should also mean that the API as API is not copyrightable, and a straightforward implementation of something like `min` is also not, as it's just the only reasonable way to implement `min`. But an especially clever or creative algorithm to implement a part of an API might be.


The language would be English not the text itself. An api is an language on how to communicate with something. The language itself shouldn’t be copyrightable but any documentation is copyrightable.


I am a software engineer and it is certainly NOT open and shut for me. APIs are code definitions just as are interfaces, custom types, classes, and so forth.

I don’t think APIs should be treated differently than other code only because you need it to be so for your convenience. If APIs should be treated differently they need to be defined separately and licensed differently. Other languages and platforms makes this very clear by externalizing most APIs from the language and then adding support for the API to the language as though it is a foreign technology, because it’s definition and license are separate.


>Other languages and platforms makes this very clear by externalizing most APIs from the language and then adding support for the API to the language as though it is a foreign technology, because it’s definition and license are separate.

What? No. Most modern languages do the opposite. Usually everything is defined directly in the standard library and syntax is often merely sugar to call specific functions in that standard library or to refer to specific definitions in that standard library. Primitive numeric types like int, short, long are no longer hard coded directly into the compiler. Instead they are defined in the standard library and the compiler is just employing optimizations where possible to make them behave like primitive types.

Although Ceylon is dead I like to use it as an example. Almost everything was defined in the standard library. Even keywords in java like public, abstract, static are merely just annotations in Ceylon that were defined in the standard library.


> externalizing most APIs from the language and then adding support for the API to the language as though it is a foreign technology

That's true, but only in the case for the language's standard library. But what about the API of the language's top-level constructs? A class must have an initializer, for instance. Or protocol / interface has the notion of required as well as optional methods. Why is the latter (language APIs) not copyrightable but the former (standard library APIs) is? What is the substantive difference between them?


Yes, there must be some few primitive APIs within a given language. An example is base types and their most essential methods for internal constructs that aren’t meant to be exposed.

Unfortunately, Java is just such a perfect for this legal fight. It is proprietary and exists in this nebulous universe of wanting to make everything Java. It’s like Microsoft of the 90s.


> the cookbook itself becomes copyrightable.

But what is discussed here is not the cookbook but just the table of contents. The actual recipes are different.

Making another cookbook with chapter 1: salads, chapter 2: soups etc. is common practice. The question is how much detail you are allowed to copy in order to allow for interoperability.

For instance, a dinner might call for the Oracle potato salad of Section 1.3 and Oracle tomato soup of Section 2.2. If your cookbook has your recipes (not Oracle's) in the same Sections in your book, that is useful for your readers/chefs, since they can easily switch their menus to your book.

Are you allowed to do that? That is the question.

> arguing that APIs are non-copyrightable is essentially carving out an exception for a specific type of code.

Disagree. APIs are talking about code but not code by themselves alone. Just like "The potato salad recipe is in Section 1.3" talks about a recipe but is decidedly not a recipe by itself.

If the law currently thinks that should be copyrightable, then the law should be changed.


>> the cookbook itself becomes copyrightable.

> But what is discussed here is not the cookbook but just the table of contents.

You probably can't copy that either. That's like Oracle's example of making a new Harry Potter book with all the same chapter titles.

I don't know if there are any good examples of APIs one can make based on books..


I mean you very much can copy

Chapter 1: Introducing the main character .. Chapter 6: Introducing side character Chapter 7: Arrival at the main story place .. Chapter 17: The final chapter

In fact there are whole classifications of literature that identify basic storylines, tropes, structure etc. . The reason you couldn't copy the harry potter chapter titles exactly is because they contain specific titles, e.g. "the boy who lived", but "<my own catchphrase for main character>" as the first chapter title is again very, very common.

Also, the argument is about reuse/interoperability. Recipes are something you use and the naming is functional and it is important that it is similar enough. I am not aware of harry potter chapters being used like that, but if authors start talking about "The sorting hat" chapter as a term of the art , then yes you should be able to use that term. Similarly to how you can introduce a weapon in your novel without paying royalties to Chekhov.


Picking a random bit of the API, ContainerOrderFocusTraversalPolicy::getImplicitDownCycleTraversal feels to me more like "the boy who lived", rather than "Introducing Side Character" -- I don't think anyone could reasonably claim you would end up at remotely the same thing, unless you were word-for-word copying thousands of lines of API.


I mean, I see your point, but you kind of have to to achieve the intended purpose.


> Also, the argument is about reuse/interoperability. Recipes are something you use and the naming is functional and it is important that it is similar enough. I am not aware of harry potter chapters being used like that, but if authors start talking about "The sorting hat" chapter as a term of the art , then yes you should be able to use that term. Similarly to how you can introduce a weapon in your novel without paying royalties to Chekhov.

I agree very much. I just don't think books are very useful for expressing those ideas. Interoperability is rarely an important consideration when writing a book.


Sure, if google renamed all the classes/methods, it would make a lot of difference.


I wonder how much you can game this.

Rename java.lang.String to google.java.lang.String and make google's dex compiler automatically look in the google namespace by default.

Not allowed? How about we just hash the Java API names and then let the compiler automatically apply a mapping from hash to google name.

In the worst case Google is probably still allowed to ship a tool that renames uses of the java api directly in the source code and switches it over to whatever Google's naming scheme is. If this wasn't allowed it would be equivalent to making it illegal to not use the Java api because doing the same chance by hand would is not meaningfully different.


>> the cookbook itself becomes copyrightable.

> But what is discussed here is not the cookbook but just the table of contents. The actual recipes are different.

We should be very cautious about trying to tackle the subject in this way. Illustration by analogy can be useful for explaining subtle concepts, but argument by analogy will only introduce more confusion.


Not really. A lot of people consider good APIs a work of art, independently of the implementation.


And? That does not address the question and note how you used "work of art" instead of code.

The fact is that lots of things can be "work" but that we as society do not want to bestow copyright for them. Again, the question is not "did someone put in work to make a good API?" but "are APIs something that should be copyrightable?".

Going with the recipe analogy: Society might be willing to give you some kind of recognition for "Joe's sandwich with this detailed recipe", but it is not going to give you an exclusive monopoly over "any and all dishes consisting of (bread, topping, condiment, vegetable)". Copyright is intended to reward creation, not to stifle any sort of however far away competition.


The whole point is that a "work of art" is by definition copyrightable. That's the whole Oracle line of argumentation.

You may disagree but here they are before the supreme court to rule about this. So the only thing I'm confident about is that it's not trivial question.

As said by others fair-use is a totally other point and if granted could offer Google some relieve.

Oracle must win on both points.


I think the CEO of Sun knew this..

"Google's lawyer, Robert van Nest, asked Schwartz whether, during his tenure at Sun, Java APIs were considered proprietary or protected by Sun."

"'No,' Schwartz said in explaining the nature of open software. 'These are open APIs, and we wanted to bring in more people...we wanted to build the biggest tent and invite as many people as possible.'"

https://www.cnet.com/news/former-sun-ceo-says-googles-androi...


Whether it’s copyrightable or not is a legal question, and Schwartz isn’t a lawyer. And the answer has to be the same for everyone, not just Sun. Now, that might be an “implied license” or “estoppel” argument—even if it’s copyrightable, you can’t enforce it now because you led everyone to believe they could use it for free.


What lawyers think matters little. What judges think, well, that is what matters.


Yes, of course. My point is that Schwarz isn’t an expert in copyright law, nor can his individual opinion be dispositive on a question of law that affects everyone.


Judges are merely lawyers who have pupated.


What's this?

ATTORNEE is evolving!

ATTORNEE evolved into JUDGEON!


Schwartz's beliefs and statements don't apply. Schwartz didn't write the controlling law.


Schwartz's was the CEO of the company that held the "copyright" should one exist at the time of the alleged "infringement"

Thus Schwartz's beliefs are and should be relevant


But, Oracle isn't Schwartz. Swartz isn't suing.


Under what legal basis?


Estoppel was mentioned elsethread.


I wouldn’t be surprised if Oracle wins on copyright (I think it is almost impossible for Google to count to 5 on their merger doctrine argument) but I disagree that fair use is a long shot.

The justices that brought up the case’s procedural history were all unanimously skeptical that the Federal Circuit correctly set aside the fair use verdict in favor of Google. I think the most likely outcome of this case (especially with the absence of Justice Ginsburg) is a remand to the Federal Circuit with instructions to pay more attention to the trial court’s findings.


I agree. Personally, I espouse the "copyright should not exist at all" viewpoint. However, I think in the current legal framework, APIs are clearly copyrightable. However, re-implementing the APIs should obviously be allowed under fair use.

Remember that copyright exists solely for the purposes of increasing the production of otherwise-easily-copyable works that take time to create but then are "worthless" (i.e. the marginal cost of each additional copy is ~0 or negligible).

From the Constitution itself:

"[the United States Congress shall have power] To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries."

I can see how one can argue that software itself - the actual code - will benefit in the same way (though the myriad successful open source projects and SaaS platforms seem to suggest it's not necessary......). However, I think it's pretty dang clear that limiting the copying of APIs will broadly lead to less software being created. It's well established that, for software, ideas are cheap, and that competitive advantages primarily come from excellent execution and excellent VC funding. If someone re-implements your API and your business folds, it's not because your API was your secret sauce and they stole it. It's because their re-implementation - which, by definition of an API, must be "the exact same thing" - was better than yours. They produced a better product, and the market rewarded them for that.

So, for a legal framework whose purpose, as outlined in the constitution, is to promote the arts and sciences, I think it's pretty clear what the path forward is.


> copyright should not exist at all

Copyright is not just about software.

Imagine a world in which you write a novel, let's call it Harry Potter, and publish it. And then I see people liking it, so I publish it too, but I can sell it cheaper because I don't have to recoup the costs of having written it.

Or imagine you write and record a song, let's call it Revolution. A shoe company can use that exact recording in an advertisement without paying you.

I respect the radicality of your position, but I hope you understand you are proposing to burn the creative arts to the ground.


Destroying copyright would make some business models go extinct.

However, society should use IP laws to maximize the societal goods of creation, not to keep the entrenched players' businesses profitable.

There are hundreds of ways to monetize creative works. It's laughable to think that creativity will cease if we don't allow 70 year rent-seeking on the products of that effort.

I think 90%+ percent of "societally useful" IP revenue would be preserved if copyright terms were only 1 year. If it was eliminated entirely, artists would move to crowdfunding and commission based methods of getting paid for creation.

I think the first half of last century's music industry is an interesting example: back then the vast majority of artists rose to prominence by playing already-popular songs before transitioning into their own songwriting. How much is creativity squelched by the current system where licensing is at the arbitrary discretion of the IP owner, and how should society weigh this against the potential reduced economic incentive to create works if cultural products become freely distributable?


I think what you'd see instead is a widespread destruction of some kinds of creative industries, combined with a retreat to technology platforms that enforce copyright with technological rather than legal means. See: the video games industry and the domination of consoles, the iOS App Store.

Video games are protected by copyright but it doesn't have much teeth, modulo occasional arrests of crack authors. What happened was not that people gave up on charging for video games, but rather it created a market for sufficiently secure platforms that piracy was very hard.


The greatest way to support art is UBI. Why should creativity be subject to the arbitrary whims of the lowest common denominator? For every Harry Potter there are hundreds of authors who can't even make enough to write full time. And some of what we consider to be quality literature would never be commercially successful in a modern context.


Some of the greatest works of creative art in human history were created with no copyright. I respect that copyright makes it possible for creators to get paid, but that's not the same as "creative endeavor would vanish without copyright".


I make money on copyright and I would still be for - at least - significant shortening of the terms.

10 years from creation = automatic and free. More than that for an exponentially rising yearly fee. 11th year 100 dollars, 12th year 200 dollars, 13th year 400 dollars etc.

There would be another advantage, a searchable database of copyrighted items older than 10 years.


Don't assume that those who are against all copyright hold this position in isolation from other politics. Some of us think that much of the economy needs to change in significant ways, and copyright would be just one aspect of that.

And there are changes that aren't even all that radical, that are enough to make a counterpoint here. For example, with a sufficiently generous UBI, a lot more people would be able to pursue arts for the sake of arts. One could reasonably argue that removing the profit motive would not only not break such an arrangement, but improve the quality of the output.


The creative arts existed long before copyright was a thing


The reason we have copyright protections to begin with is to reward and incentivize creation of new creative works with intellectual property protections. If you spent a large amount of resources in creating the library of Java code, why should only the implementation be protected? They've spent a lot of resources to come up with which methods to create, what to call them, how to describe them, how to organize them, how to connect them with one another, etc. That is a creative effort. They then invested in making the platform popular. If this wasn't protected, you would have zero incentive to build high quality libraries or to invest in making the platform popular if someone else can just come along and copy it.

I don't see how this type of creative expression is any more or less worthy of protection than any other code.

There are some other silly things mentioned in the proceedings. One is about monopolies, clearly that's wrong because there are multiple platforms and Apple and Microsoft clearly didn't need to copy these Java libraries. The QWERTY keyboard analogy is also not a good one since there's a clear difference between something that is written and consists of tens of thousands of pieces vs. a relatively simple organization of characters that's also not written (it's physical). So that would probably go under a design patent. Another is about transformative use. There were cell phones using these Java libraries before Google decided to use them as well -- the Jasper S20 using the SavaJe OS for instance. Also the doom and gloom that the industry will break is absurdly doomsday. Simple libraries or SSO wouldn't constitute the level complexity and creativity of Oracle's Java libraries.

Google could have invested in creating its own libraries and only using the 57 or so classes that make up the Java language, made its own methods, classes, and packages. But that would have been a large effort to design them, get them battle tested, and to attract a developer community around it. It was easier to cheat to get ahead and ride the coattails of Oracle's community that were familiar with the Java libraries they had created. Google knew what they were doing was wrong at the time, but the cost to get to market meant it was worth it. Google didn't stop there, they continued to copy the changes that Oracle did to its libraries and copied new packages that Oracle created.

Finally, Google had the option to take the community license, but they didn't want to contribute back. I say, hard cheese Google, pay up.


Couldn't edit my comment above to add: The interoperability argument is also disingenuous because Google didn't copy all of Oracle's Java libraries. It only copied the ones it deemed necessary to provide sufficient coverage for the needs of the Android platform and that developers of Oracle's Java community were familiar with. As the justices pointed out, it's a one-way interoperability.


> If this wasn't protected, you would have zero incentive to build high quality libraries or to invest in making the platform popular if someone else can just come along and copy it.

I guess I must be hallucinating all those S3-compatible libraries and services.

> As the justices pointed out, it's a one-way interoperability.

It makes a large majority of the same code work on both. That's not one-way. Porting in either direction is vastly improved versus them making their own APIs.


Fair enough. The decision to allow someone else to copy the code should be up to the owner and not be given away.

Also copyright protections aren’t given up because it makes a third party’s life easier. That’s also what was said during the hearing.


> Also copyright protections aren’t given up because it makes a third party’s life easier. That’s also what was said during the hearing.

Yeah but if your mandate is to promote the arts and sciences then you desperately want interoperability to be easy and encouraged.


Open Office supports only so much of Microsoft Word .doc, antiword [1] supports even less. Should we consider them disingenuous?

[1] https://en.wikipedia.org/wiki/Antiword


There is more to IP rights than copyright.

>why should only the implementation be protected?

Because copyright only protects authorship. You are the owner of your own creative works but you are not the owner of other people's creative works. What Oracle wants is to prevent independent reimplementation of Java libraries which is clearly a case of patent law not copyright law.

The Java standard library casts a "shadow". That shadow is the API but the standard library is not the API. Someone who only looks at the shadow can rebuild their own version of the standard library without directly copying the standard library. This is called clean room design and it is done all the time. Patents are the primary way of preventing clean room designs by competitors.

The fact that people on HN are insisting on bloating copyright even further makes my blood boil. IP law already created lots of solutions for all these problems. Stop trying to shoehorn everything into copyright.


As I said, Google could have created new packages with the same functionality, but they didn’t. They copied Oracle’s Java libraries exactly. Even if you reimplement the implementing code, you’ve still copied a lot from the creative expression. One could argue that there’s more effort needed on part of designing the libraries than their underlying implementation, which would be much more straightforward.


It’s mind blowing to me that Google was too cheap to buy a license or buy Sun considering the strategic importance of the platform.


IIRC it wasn't purely about money.

Sun had a mobile platform at the time, J2ME. If you wanted to use Java on mobile, it had to be J2ME. There was no option back then to just pay money and pick'n'choose which bits of Java you wanted. In fact there still isn't, the Java guys are zealous about compatibility.

And J2ME was in turn a slow, multi-vendor, standards oriented kind of thing with multiple implementations. It was (a) very limited, (b) very buggy, (c) very poor developer UX. The issue wasn't Java itself but rather the huge variety of bugs and missing APIs between different phones. See the issues Android faced with fragmentation and multiply it by a million. In fact it was an attempt to fight fragmentation that led Sun to take the hard-line "our way or the high way" approach!

Additionally, J2ME was not open source but Google or rather Andy Rubin felt strongly that Android had to be open source under non-GPL licenses because mobile vendors hated the GPL. They could just about tolerate Linux but that was the limit. So Google was going to go to Sun and say, hey, please release one of your own profitable Java products under an open source license, so we can make more money out of Google Maps? No way.

Could Google have made Android using J2ME? Maybe. Perhaps? But it'd have been a huge ball and chain around their ankles and Android would have been radically different, likely different enough to have killed it. For instance J2ME had a simple GUI library but it was limited by the need to run on feature phones. They'd have never been able to make it as advanced as the Android GUI toolkit was, and competing with the iPhone? Forget it.

To some extent this situation was inevitable. From a technical perspective using the Java platform worked out very well for Android. But given Sun's business model at the time and the history of J2ME there was no way to take it to the next level. In hindsight we can say that Google could have replaced the entire revenue stream of J2ME, but what company wants to replace a many-vendor many-customer ecosystem with a single revenue source? Nobody would do that!


> Could Google have made Android using J2ME?

They could have yes, with Java SE actually

> The SavaJe OS was a monolithic OS-and-Java platform, an implementation of Sun Microsystems' Java Standard Edition, as opposed to the more limited Micro Edition usually offered on mobile phones.

https://en.wikipedia.org/wiki/SavaJe

Also the Nokia and Sony-Ericson extensions to J2ME were quite good, while keeping compatibility with J2ME related specifications.


The standard GUI toolkit for Java SE at the time was Swing. That would never have been appropriate for mobile, but they'd have had to support it anyway. Also the Android team believed that HotSpot wouldn't work on heavily RAM constrained phones, hence Dalvik. Were they wrong? Doubt it.


HotSpot wasn't the only game in town for embedded, and Dalvik was much worse than what Nokia and Sony-Ericson had on their own (not HotSpot based) implementations.

So much that they eventually rebooted the whole thing with ART.

Apparently Swing was appropriate for SavaJE, go figure.


Could they have implemented J2ME as spec'd, and add proprietary APIs on top of that? I remember that Sun balked when Microsoft did it, but that was back in 1990s. Was it still a limitation when Google started working on Android?


Oracle had asked for a sum that was super reasonable and Google decided to roll the dice instead. Incredibly foolish. In the grand scheme, what's a $10B fine on a business worth hundreds of billions. Google had to get to market fast and it was an existential threat.


>Personally, I espouse the "copyright should not exist at all" viewpoint.

Well, the original lawmakers agree. They set a 14 year maximum. In other words: They acknowledged the necessity of copyright but they think it should only be temporary and not exist.

The problem is that it is too damn long nowadays.


It should also be noted that the original copyright terms were devised for a society in which there was, for the most part, no practical way to move information faster than people. A copyright holder today can start extracting profits from that copyright much faster, and on a much larger scale, than anybody could have in the 18th century. So the terms should be shorter, if anything.


> They produced a better product, and the market rewarded them for that.

You could make that same argument about patents in general, couldn't you? If you invent something, say, a new battery, and somebody else copies it, doesn't have your R&D-costs invested and prices it accordingly lower than you, the market will "reward them" by buying from them instead of you, they're getting the same thing after all.

We do want some stability though, if you invest money to create something and somebody immediately copies it, you're not going to invest money again. We want you to invest money to advance humanity with new technology and knowledge though.

Since there's no re-implementation without looking at the original, it feels sufficiently close to taking your buddy's homework and saying "no worries, I will change it a bit" and you'll have Math.add(a, b) and while they wrote return a + b;, you'll write return b + a;, you're not copying after all.


> say, a new battery

It would be more about copying the batteries terminal structure, such that you could build products compatible with the battery or a battery compatible with the products. It snot about copying the battery, its about supporting interoperability. That's what is at risk here. Sixty seven different kinds of outlets, or arbitrarily expensive ones where the "design" itself is licesned, instead of the code.


> its about supporting interoperability

I think this is a very important point. I haven't read all of the briefs in this case, or looked at the arguments presented at the hearing, so I don't know if Google's lawyers stressed this point, but they sure ought to.


Google would lose if they would continue hammering the interop point and the justices would dig deeper. Google only copied a selective set of Oracle's Java libraries. If they were about interop, they would have copied all of them. So no, Google didn't copy the libraries because of interoperability reasons. Google copied them so they would get access to the large developer community and ride the coattails of the successful investments into the Java platform that Oracle made. As one of the justices said, it's a one-way interoperability.


> Google copied them so they would get access to the large developer community and ride the coattails of the successful investments into the Java platform that Oracle made.

I like this framing and think it’s entirely correct, but I don’t agree that it necessarily dooms the interoperability argument.

Google wasn’t trying to achieve compatibility with existing code (for which, you’re right, they’d have needed to take the whole set) but rather compatibility with existing developers. Arguably, that is still interoperability.


I see your point. But because it would be interoperable with the developers and not the end users, so it’s still no dice for Google. The QWERTY keyboard is a good example of interoperability with end users (but not of copyright itself). So the courts would not give weight to that aspect.


> If you invent something, say, a new battery, and somebody else copies it,

You should distinguish the concepts of copyright and patent. A hardware design, like a battery, is not copyrightable in general. The technical drawings or a written description can be copyrighted, but the abstract technology and process cannot. Under copyright laws, it's illegal for me to duplicate your documents, but there is nothing to stop me from reverse-engineering or duplicating the same process or hardware [0], and I'm also allowed to write about this technology in my own words. Only patent laws can grant a period of exclusive control of an abstract technology to its inventors.

[0] If I obtained your documents illegally, it would be trade secret infringement, which is an independent issue from copyright nor patent.


Sure, patents are a different thing, but they serve a similar purpose. "If you don't have to to the research and invest in creating the technology by copying, you can do it cheaper which the market will reward" is what both copyright and patents are created to change.


They don't serve a similar purpose.

Copyright protects authorship.

Patents protect against reinvention.

It's clear that Oracle needs a patent unless Google outright stole the standard library.


News at 11, they did.

In seriousness, they didn’t copy the libraries just once, but at least 3 times over time as Oracle continued to make investments in changes and additions to the libraries.


> I think the most likely outcome of this case (especially with the absence of Justice Ginsburg) is a remand to the Federal Circuit with instructions to pay more attention to the trial court’s findings.

I think that's somewhat unlikely; I think its somewhat more likely that the court concludes that the Federal Circuit erred in using de novo review, but instead of remanding to the Federal Circuit for reasonableness review reconsiders the jury verdict on the bases of the trial record itself (especially if by doing so it can uphold the trial verdict and kick the copyrightability issue down the road to another case.)

While the Supreme Court will dodge hard issues where it can, it doesn't tend to do it in a way which leaves a good chance that the same issue will come to them again in the same case. When they dodge, they like to make sure the issue stays dodged, at least for the immediate case. There's way too much risk that the Federal Circuit would reach the same answer if told to use a reasonableness standard of review (I don't think it should, but absent reaching the answer itself, the Supreme Court can't be sure of that), which would leave the copyrightability issue to come before the Court again before this case would be finalized.


I gave more weight to a remand than SCOTUS upholding the trial verdict itself primarily because the court is currently shorthanded. I agree that the court prefers to punt for good !


> I gave more weight to a remand than SCOTUS upholding the trial verdict itself primarily because the court is currently shorthanded.

I think you are correct that it is more likely for that reason than it would otherwise be, though I still think its less likely than a more permanent punt on the case (that would still leave the issue live for a future case.)

But that's just my intuition.


>I wouldn’t be surprised if Oracle wins on copyright (I think it is almost impossible for Google to count to 5 on their merger doctrine argument) but I disagree that fair use is a long shot. I wonder about the differences (which definitely do exist) between Oracle's Java API and the OpenJDK Java API.

While they really have to be substantially similar to allow interoperability, OpenJDK is open source (GPL) and Oracle's Java is not.

That brings up a couple questions which don't directly bear on the case just heard by the Supremes, but are (IMHO) relevant to potential second-order consequences of a ruling for Oracle:

1. Given that the OpenJDK API is substantially similar to the Oracle Java API, could Google avoid repercussions by switching to the former from their "adaptation" of the latter?

2. Should an API be considered eligible for copyright, wouldn't that enable opportunities for language and library developers to restrict others from developing competing (via performance or utility enhancements) languages/libraries by forcing anyone who wished to implement enhancements to either purchase a license or flat out deny them the ability to do so (assuming the product --including the API isn't open source)?

3. If (2) is the case, what does that mean for incremental improvements of languages and libraries?

I'm not a java dev or a copyright expert, so pardon me if I missed an important point.


>2. Should an API be considered eligible for copyright, wouldn't that enable opportunities for language and library developers to restrict others from developing competing (via performance or utility enhancements) languages/libraries by forcing anyone who wished to implement enhancements to either purchase a license or flat out deny them the ability to do so (assuming the product --including the API isn't open source)?

It would be a software patent except not by name and it would last significantly longer. I can already see both software and hardware patents being abandoned if this court sets a precedent that APIs can be copyrighted. The next day people will want to add everything patents do simply because copyright has a longer duration and it is effective immediately.


They already switched to OpenJDK a while ago. I think this case covers historical damages back from before they did that.


You might be right. It seems like Google's most realistic path to victory here will be based on arguing over the legal technicalities related to the standard of review.

I wonder if they win on that front if the Court will be able to dodge the question of API copyrightability in general.


If the court decides that the lower court was wrong to have disregarded the jury’s decision they’ll definitely decline to answer the question about API copyright. The court pretty much always gives the narrowest ruling possible.


> As applied to Java, individual method signatures like min and max might not be copyrightable, but someone had to go in and organize those individual methods into classes, and organize those classes into packages. That act of organization likely implies that the Java API (taken as a whole) constitutes a copyrightable work, even if the individual method signatures are not.

The problem with this theory is that class and package declarations are still just recipes. There is a recipe for making chocolate chips. Then there is a recipe for making chocolate chip cookies where one of the ingredients is chocolate chips. It's recursive but it's not fundamentally different. Saying you can copyright a recipe for chocolate chip cookies because it's just organizing the recipes for chocolate chips and butter and brown sugar is pretty ridiculous.


You’re misunderstanding your cookie analogy. You can’t copyright a single recipe that contains components of other recipes, but if you had written a book titled “My grandmas chocolate chip cookies from scratch”, where the first recipe is for homemade chocolate chips, the second is for how to grind your own flour for dough, and the third is for combining the previous two into a cookie, then yeah you can copyright that particular set of recipes. But someone else can use any one of your recipes independently without worrying about infringement.

Think of it like you put in the effort to curate a collection of recipes that work well together, and that curation is what’s copyrightable.

I don’t know what will happen with the law, and if APIs like this will be deemed a “curation”, but it makes a lot more sense to me from that perspective.

Ex.

Anyone can have a `Math.remainder` function, but the curation of an entire `Math` library might be copyrightable, since the effort was in collecting all of the correct things that work well together, even if they aren’t individually copyrightable.

A mega-recipe containing other recipes would be like making a `Math.AddAndThenMultiply`, which even if someone else had created the Add and Multiply methods, you aren’t stealing their API curation of methods, you’re just combining logic/algorithms (ingredients) from multiple methods (recipes) into a bigger method (mega-recipe).


> You can’t copyright a single recipe that contains components of other recipes, but if you had written a book titled “My grandmas chocolate chip cookies from scratch”, where the first recipe is for homemade chocolate chips, the second is for how to grind your own flour for dough, and the third is for combining the previous two into a cookie, then yeah you can copyright that particular set of recipes.

Suppose I want to compile the big book of all known recipes. Then it will contain every recipe in your book, in its entirety, as well as every recipe in every other book. But if I can put the entire contents of your book in my book then what is it that you're really claiming to protect? The order the recipes appear in the book, i.e. the order the classes appear in the file? Which isn't generally regarded as part of the API.


With the recipe analogy, I would say that the API would be the books table of contents. The recipes themselves are the implementation. So the question is, should the book’s toc be copyrightable? That is, is it lawful to write another book with the exact same toc, but with different recipes/implementations...


A ToC doesn't actually work like an API.

A ToC cares what order it's in. You can't move Chapter 4 to before Chapter 2 or the implementation has to change. By contrast, the order of functions within a class, or classes within a package, isn't really part of the API -- they're most often in alphabetical order, which is totally mechanistic, and changing the order doesn't change the API.

A ToC is also not a rigid formal specification (like a recipe), but that's the core of what an API is.


> A ToC doesn't actually work like an API.

> A ToC cares what order it's in. You can't move Chapter 4 to before Chapter 2 or the implementation has to change.

This isn't true.

  Table of Contents

  Foreword.................i
  Introduction............ii
  Preface................xvi
  Chapter 1................1
  Chapter 2...............17
  Chapter 3...............30
  Chapter 4...............51
  Chapter 5...............58
  Chapter 6...............76
Compare:

  Table of Contents

  Foreword.................i
  Introduction............ii
  Preface................xvi
  Chapter 4...............51
  Chapter 1................1
  Chapter 2...............17
  Chapter 3...............30
  Chapter 5...............58
  Chapter 6...............76
Note that real-world tables of contents behave in the second way. It's not at all uncommon to see chapters listed in order, followed by other materials (commonly illustrations) which are listed last in the table of contents while being physically interspersed among the chapters.


To clarify what I meant. I don’t think the order matters. What would matter is the chapter and section titles... they are the package names and method signatures.


I think OPs idea was where is the smallest unit. A recipe for chocolate chip cookies is a curated collection of recipes for each ingredients, chocolate chip being one.


You seem to have misread what was being said, because you seem to be arguing against something that was explicitly stated to not be the case:

> individual recipes are generally not copyrightable, but if you compile a set of recipes and publish them in a cookbook, the cookbook itself becomes copyrightable.

(emphasis mine)

The law understands that the whole is more than the sum of its parts. And Java adds up a lot of parts. It's also an interesting model case because it's inherently so very open, without (particularly pre-Jigsaw) a clearly demarcated dividing line between "API" and "implementation." Alito's not unreasonable to suggest that a Supreme Court ruling in Google's favor might raise difficult questions about how copyright law applies to software in general.


> Alito's not unreasonable to suggest that a Supreme Court ruling in Google's favor might raise difficult questions about how copyright law applies to software in general.

That's true, and while I have a very clear way I would like the Court to handle that personally, it's probably a good reason for the Court to look for an excuse to punt hard on copyrightability if it is open to them (and the procedural issue on fair use seems to offer that opportunity) and let the Circuit Courts (and I don't mean the Federal Circuit dubiously interpreting some regional circuit’s law) develop this issue more before resolving it at the Supreme Court level.


> The law understands that the whole is more than the sum of its parts.

My point is that "the whole" is the implementation of the Java standard library and the API is really still just the recipe.

> It's also an interesting model case because it's inherently so very open, without (particularly pre-Jigsaw) a clearly demarcated dividing line between "API" and "implementation."

The line is clear even if the language puts them both in the same file.

  public class Foo {
    public static void Hello(String[] args) {
        System.out.println("Hello World");
    }
  }
"public static void Hello(String[] args)" is part of the API. "System.out.println("Hello World");" is the implementation of that function.


You're drawing lines in places that best serve your position, rather than considering the whole landscape.

"Whole" in the sense of "the whole is more than the sum of its parts" is not generally understood to imply the maximal possible scope in any given context. It's simply meant to meant to talk about how the identify an aggregation (of no particular scale) relates to the identities of its individual components.

Similarly, the API/not-API distinction is one that has to be made in contexts beyond just the relationship of function signatures to function implementations. Foo was declared as a public class, but was it meant for public consumption? Or is it intended for internal use, and was only declared public because, for practical reasons, it couldn't be declared package-private?

Moreover, there are certainly rational distinctions that could be drawn, but that does not mean that they are legally relevant. The issue at hand really doesn't have anything at all to do with how programmers understand things. The law is not what we think is right, the law is what is written in the books.


> "Whole" in the sense of "the whole is more than the sum of its parts" is not generally understood to imply the maximal possible scope in any given context. It's simply meant to meant to talk about how the identify an aggregation (of no particular scale) relates to the identities of its individual components.

Which is how I'm using it. An API that consists of two functions and one that consists of a billion functions have completely different scales but each whole unit has an API portion and an implementation portion. And the API portion is the recipe. It's a purely factual description of what the implementation is expected to do.

> Similarly, the API/not-API distinction is one that has to be made in contexts beyond just the relationship of function signatures to function implementations. Foo was declared as a public class, but was it meant for public consumption? Or is it intended for internal use, and was only declared public because, for practical reasons, it couldn't be declared package-private?

That doesn't affect whether the API parts of it are API parts, only whether the API is regarded as internal or not, which shouldn't be relevant to copyright. Internal APIs shouldn't be copyrightable either.

> The issue at hand really doesn't have anything at all to do with how programmers understand things.

It better, or you're in real trouble, because then all you have are meaningless zeros and ones.


An API is an invisible thing. It's not in the code. It has absolutely nothing to do with code. You can create an API without any code at all. Therefore copyright does nothing because there are ways of copying an API that do not violate copyright.

Compare it to x86. It's just an "API" as well. Someone can write a specification or reference listing all opcodes and even though that reference is licensed under MIT or GPL you are still not allowed to make your own x86 processor because there is an IP tool specifically designed for this case. It's called patents. Just because you are not violating Intel's copyright doesn't mean you aren't violating Intel's patents.

Google probably didn't violate copyright and probably didn't violate any patents. So it is pretty much clear cut. Oracle failed to patent its API and therefore Google is allowed to use it.


> you are still not allowed to make your own x86 processor

AMD, Cyrix, Transmeta

I'm 99% certain that, if Intel had legal grounds to keep them out of the market, they would have done so. I'm 100% uncertain what's different between that case and this one.


>Alito's not unreasonable to suggest that a Supreme Court ruling in Google's favor might raise difficult questions about how copyright law applies to software in general.

Which in of itself is a long avoided question that sorely needs to be addressed.


And should be addressed by the legislature, not the judiciary.


Yes, but the judiciary gets to decide whether a tortured application of a law is absurd.


>The law understands that the whole is more than the sum of its parts.

No it doesn't. If that was the case then you could just do piecewise reinvention and then later on recombine the result.

Grasp the difference. Copyright prevents 1:1 copies, not against reinvention, patents do that.


Isn't that exactly what the article is saying about the justices worrying it could "undermine copyright of computer programs"? What is the difference between an API (interface) and implementation? The algorithm. And algorithms are not copyrightable.

A lot can be interpreted into the law when it is beneficial for everybody to do so. But interpretation has its limits. Some laws must be made explicit by the legislature.


> 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.


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.


> 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.


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.


> "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.


You can copyright recipes but it's functionally useless if you want to protect against reinvention. Someone can make cookies based on your recipe and then make them again without looking at the recipe and then finally write their own recipe and still not violate copyright. You could repeat this for every single recipe in the book and then create an almost identical book with exactly the same recipes in the same order. There would be some minor differences because your memory is off and you have some creative freedom to design the book any way you want. However you wrote that book yourself and therefore it is yours.

Is there still a way to protect your cookies? Yes, it's called patent law. It's explicitly designed to prevent reinvention.


Perhaps I should not have used the recipe analogy as it might be causing unnecessary confusion. But I don't think the situations are all that similar. If an individual recipe is non-copyrightable because it describes a "process, procedure, or method" then a mega-recipe created by combining other recipes together will still be non-copyrightable for the same reason. That's not quite the same thing as curating a set of recipes into a cookbook and thereby exercising creativity in the "selection, coordination, and arrangement" of those recipes.


> Perhaps I should not have used the recipe analogy as it might be causing unnecessary confusion.

It's hard not to use it when it's the one from the case law.

> That's not quite the same thing as curating a set of recipes into a cookbook and thereby exercising creativity in the "selection, coordination, and arrangement" of those recipes.

Exercising creativity can't be the hook if recipes have that and aren't copyrightable. You exercise creativity in choosing whether to specify chocolate chips or peanut butter chips or licorice bits etc.

APIs have hierarchy, but recipes have that too. You make butter from milk. You make cookies from butter. You make cookie crumb topping from cookies.

It's all already there in a recipe without reaching the result you want. You choose chocolate chips over peanut butter chips. You combine them with cookie ingredients to make cookies and brownie ingredients to make brownies. Selection, coordination, and arrangement. But the end result is still just a list of facts about how to make those cookies/brownies.

So why look at those things sometimes but not others? Because sometimes it applies to a work of authorship, but sometimes it applies to function, and you can't copyright function. So the functional part shouldn't count.

And that's what an API is. It's a formal functional specification. It's a list of facts about how to call those function implementations. It's the exact piece you don't get credit for.

Anything required for interoperability, is functional.


> Exercising creativity can't be the hook if recipes have that and aren't copyrightable.

Sure, creativity is a requirement but it isn't the only requirement. But think about why a cookbook of selected recipes is copyrightable even if the recipes individually aren't.

> And that's what an API is. It's a formal functional specification.

The problem for Google is the Java API is also code, which is generally copyrightable. You seem to be saying that since this particular code happens to form a specification it should be treated differently under copyright law, but I'm not sure the court would find that argument very convincing.


Microsoft should get in on this, then. Because the Java and C# Math classes are virtually identical, aside from method case.


> As is common when HN discusses legal matters I see a lot of people blaming the judges for not understanding tech, but the problem here isn't really the judges so much as the law itself.

Or to state it more plainly: the problem is legislators not understanding tech, and not updating our laws to account for the way computers and the internet have transformed society over the last 40 years. This was a similar gripe in the Net Neutrality arguments on HN. It's truly insane that regulatory bodies are using public utility laws from 1934 - before even the mass adoption of television - to create the rules that govern the internet.


>This was a similar gripe in the Net Neutrality arguments on HN. It's truly insane that regulatory bodies are using public utility laws from 1934 - before even the mass adoption of television - to create the rules that govern the internet.

I have no issue with updating (or even replacing) the Communications Act of 1934, since much has changed in the last 24 years (the last time the act was updated).

But claiming that the Communications Act of 1934[0] originally enacted in 1934, is a public utility law that's over 80 years old isn't accurate.

In fact, has been repeatedly modified and updated, the last time in 1996.

You could certainly argue that 1996 was a long time ago too (almost 25 years), but arguing that the law applied was, in its entirety, 80+ years old is uninformed at best and disingenuous at worst.

[0] https://en.wikipedia.org/wiki/Federal_Communications_Commiss...

Edit: Fixed typos.


However, when legislators try to do their job there is ample outcry that big government is infringing on the rights of people and companies to do free commerce. What gives?


> As applied to Java, individual method signatures like min and max might not be copyrightable, but someone had to go in and organize those individual methods into classes, and organize those classes into packages. That act of organization likely implies that the Java API (taken as a whole) constitutes a copyrightable work, even if the individual method signatures are not.

As an IP-minimalist, I'm surprised anyone can look at the mental gymnastics that people go through in order to draw some arbitrary line between acceptable and unacceptable copying, and come to any other conclusion than "this whole system is ludicrous".


The cookbook analogy falls apart as soon as you question whether creativity is implied. Sure, there is some creativity in putting "cookies" and "bundt cake" together in the Dessert chapter. Is there really any creativity in putting "log" and "pi" in the Math package?

APIs aren't cookbooks, they are toolboxes, and Oracle is claiming to own the idea of putting your Flathead next to your Phillips


Is file format copyrightable? That's a cookbook how to extract data.

Is binary API copyrightable? That's a cookbook too.

Is API as build target copyrightable? I just want this code to run.

Is processor ISA copyrightable?

I have to put gas in tank, oil in engine, water in cooling system for car to run. I have to press clutch, turn a key for engine to start. Is this copyrightable?

Every thing is creative. There are many ways to make same thing. Sometimes we care not about creativity but compatibility. Qemu runs x86, ARM. Open Office opens Microsoft Word files. Google Cloud Storage is interoperable with Amazon S3 [1]. I can construct my own client.

And yet we have PNG, OGG, AV1, RISC-V — there are some issues with MP3 (patent), GIF (patent), H.264 (patent), x86 (patent), ARM.

[1] https://cloud.google.com/storage/docs/interoperability


> Is {X} copyrightable?

Evidently yes, to the extent that {X} includes subjective properties that go beyond the fundamental function of {X}.

To use file formats as an example, the fundamental function of an archive file format is to bundle a set of otherwise-independent files together. A basic archive file format that simply concatenates file contents together (and I guess the necessary header to identify the boundaries between them) wouldn’t be copyrightable. But a more advanced format that includes an index of included files might be, since the addition of the index is a product of some artistry by someone who thought it would be a helpful convenience for users. [1]

Extended to the car example, “putting gas in tank” wouldn’t be copyrightable because no tank can function without gas. But improvements to the method of transferring that gas might be. Engaging a clutch is fundamental to the operation of a transmission and not copyrightable, but a clutch that is specially-designed to require less force might be.

The key is an interesting case though... I suppose I’d have to say that mechanism would have been copyrightable, since one could start an engine in ways other than a key (maybe a crank or a push button), or perhaps because the idea to couple the unlocking mechanism to the engine start signal was a clever idea rather than a fundamental necessity.

[1]: To my understanding, this is exactly the situation with “tar” and “zip,” though fortunately for us the “zip” format was contributed to the public domain rather than copyrighted.


Are you sure you've described copyright and not patent?


No.

I thought copyrights protect literary and visual illustrations, but not any underlying processes, mechanisms, or artifacts they describe (patents protect those). My understanding of copyright law is surely flawed, and perhaps the “original work” standard means that only descriptions of systems are copyrightable and not the systems themselves.

In that case I agree that my examples fail. Keys and clutches are mechanisms and filling gas is a process, and those aren’t copyrightable (but they are patentable). The file format example fails too, because the concept of laying out data in a particular way is a mere idea, and ideas aren’t copyrightable either (they are also not patentable, though a description of the format is copyrightable and a specific process for reading or writing the file might be patentable if it were nontrivial).


I've specifically mentioned GIF, MP3 protected by patents. MP3 patents encoding-decoding.

> GIF images are compressed using the Lempel–Ziv–Welch (LZW) lossless data compression technique to reduce the file size without degrading the visual quality. This compression technique was patented in 1985. [1]

x86 protected by patents:

> Partly. For some advanced features, x86 may require license from Intel; x86-64 may require an additional license from AMD. The 80486 processor has been on the market for more than 20 years and so cannot be subject to patent claims. The pre-586 subset of the x86 architecture is therefore fully open. [2]

One can build/emulate 80486 but not x86-64, SSE, AVX, VT-x etc.

[1] https://en.wikipedia.org/wiki/GIF

[2] https://en.wikipedia.org/wiki/X86


If I'd publish a cookbook with the same chapters and recipe names as a different cookbook, but every recipe my own creation from scratch; I wouldn't consider that copyright infringement.


Perhaps it shouldn't, but under current law it probably would be. Justice Roberts asked a very similar question during the hearing:

Roberts: Let's say someone copies the headings in your brief and they copy the organization in your brief, which sections you put first and how you organize them. Would your argument say that's perfectly fine so long as they write their own text?

Google's lawyer didn't really have a great response to that. He said "no but computer programs are different" but really didn't provide a compelling argument for why.


The response to that was that (paraphrased) "headings aren't functional", which really is the whole point.


Can you even create a recipe from scratch after you've learned the recipe from somebody else, will it not always be a derivative work at best, and a copy at worst? Sure, you can add or remove an egg, or change the order or when to add salt or pepper, but an omelette is an omelette.


By that reasoning, everything I will ever create is a derivative work. Which philosophically might stand up to scrutiny, but hopefully doesn't make me a walking infringement.


No. Copyright only protects your works from copying. It doesn't protect against reinvention which is why we have patents.


Maybe, but imagine the original cookbook as a website with hundreds of pages of recipe titles and descriptions, each with a link to the body of the recipe. Someone clones those hundreds of pages, replacing only the domain name in the links. Now is it copyright infringement?

Can designing an API be a different job from implementing a design? If so, then maybe the work product of the designer is copyrightable on its own.


No, I'm not imagining it as a website. An API is literally just a table of contents.

meat.beef

.. BeefAndPotatos

.. BeefAndCabbage

fish.cod

.. CodWithPeas

.. CodWithChips

This is literally an exact representation of what an API looks like. You go to a recipe and you execute it expecting a result. And you get one, the implementation of it is up to the author of the book.


> An API is literally just a table of contents.

An API is more like a set of mechanical gears that just happen to be shaped a little like words. If I change the names of things in a table of contents to synonyms, I can still use it to find what I am looking for. If I change the names of things my implementation of an API, it no longer functions as an interface for the things that worked with it previously.

An API, despite looking like works, is not a literary expression of a process, it is a machine for executing the process itself, and its shape, is essential to its function.


I do really like the TOC argument. If I were to take the TOC from another book. Copy only the TOC, write all the chapters and sub-chapters without having even read the other book (only the TOC).

Suppose then, than I publish the book explicitly as a replacement for the other book. Not as in "this is the same" but as in "if you find a reference to a chapter in the other book, you can also just look here". Would that be copyright infringement?

What happens if I do this to a technical document (think a 3gppp spec) where the TOC runs for 10 pages for a 300 page document, with headings nested 5 deep?


> An API, despite looking like works, is not a literary expression of a process, it is a machine

If this argument is valid, it means that APIs are not copyrightable, they are patentable, because copyright is only for expressions of ideas, not for machines; patents are what apply to machines. And Oracle has already lost on the question of patent infringement in this case (back in 2015, IIRC).


I've been saying for years that Oracle's objective here seems to be acquiring what is effectively patent protection with copyright duration.


As a machine, it would be patentable if the machine was made of something other than abstract concepts.


>As a machine, it would be patentable if the machine was made of something other than abstract concepts.

Processes, whether they're made up of abstract concepts or not are patentable[0]:

"Processes are patentable under the U.S. Patent Act if they meet certain criteria. A process patent is a form of utility patent that covers methods of changing the functionality or characteristics of a material during a particular use. The patent-holder is granted exclusive protections and rights to that process for 20 years.

When one patents a business method or, in some cases, a computer program, this is a form of patenting a process. It's now possible to patent subscription-based services, targeted advertising networks, online auction sites, portal sites, email systems, and even discussion forums.

As our society has evolved, intellectual property (IP) issues have evolved along with it. What constitutes IP these days is so much more than the newest machine or physical invention. Today we have genetically modified seeds, new strands of DNA, computer software, chemical formulae, and more. As these issues become more complex, patent law has to evolve to address new concerns. For example, one can now patent business models and software through the U.S. Patent and Trademark Office (USPTO)."

[0] https://www.upcounsel.com/can-you-patent-a-process


> An API, despite looking like works, is not a literary expression of a process, it is a machine

That is incorrect.

> . If I change the names of things in a table of contents to synonyms, I can still use it to find what I am looking for.

If I change the name to be something you cannot refer to, you cannot.

> If I change the names of things my implementation of an API, it no longer functions as an interface for the things that worked with it previously.

This is irrelevant to the API. The API does not make a guarantee about functionality. If I have an endpoint /foo and later /foo increments an internal counter by 1, the API remains unchanged. Documentation supplements and is not part of the API per se, which is an important distinction. The fact that Documentation and an API are being referred to in conjunction, was a failure that software will suffer for more than the lifetime of my children.


> This is irrelevant to the API. The API does not make a guarantee about functionality.

The only purpose of an API is providing mechanical access to functionality.


That's what I said. However, that is not how the original case was presented and has affected the course. The API "describes something" has been convoluted with the API itself.


>As applied to Java, individual method signatures like min and max might not be copyrightable, but someone had to go in and organize those individual methods into classes, and organize those classes into packages.

An API doesn't require an implementation and copyright is handed out automatically. Could I then write and run a generator that just starts spitting out endless variations of possible APIs (combinations of dictionary words?). Does that mean I would end up holding the copyright for most of the 'common sense' APIs people would want to use for software projects?


No, that doesn't feature sufficient creativity.


That's patent law. Copyright law is automatic and will always be granted which is why it's absolutely stupid to add patent law features to copyright.


Saying an API is copyright means no Linux, no alternative compilers or runtimes, etc. Clearance Thomas saying it’s copyrightable because it’s like having another football team playbook is incorrect. It’s equivalent having the copyright on diagraming a play. An api doesn’t include implementation.


API itself is already a specific compilation (of function signatures). But it's still meta information, not actual information on the implementation of the functionality. Making API copyrightable is absurd and harmful, same as it's absurd to copyright abstract concepts.

European judges got that right.


Exactly this, the meta information point is spot on.

IIRC there is durable precedent that mechanical collections of information w/ no creative "touch" are ineligible for copyright. I wonder if that can be extended to the meta information definition you came up with.


In your analogy, I view APIs as the equivalent of the ToC of the cookbook rather than the cookbook itself. Unless it still holds that Table of Contents are copyrightable as well (I honestly don't know), the argument won't hold.


I understand that applying utilitarian principles to a strictly deontological framework like the law is pointless, but the API issue is a situation where, regardless of the precedent or ideas about authorship, the adverse impact of a ruling in favor of Oracle on the broader tech sector seems like it should be the cardinal consideration.


This entire topic was discussed during the oral arguments. Google can not prove these adverse effects that they continue to claim will happen.

They have had 6 years to do so and yet they can not state a single instance.


Because all of the copyright Trolls are waiting for the court to rule API's are copyrightable.

Although it would be HILARIOUS if Amazon Sues Oracle on day one after the ruling for their copying of the S3 API.

That said there are ALL KINDS of interop code that is at risk with the ruling, only people with their heads in the sand and do not understand the industry at all believe that nothing negative will come about if this ruling stands


> That said there are ALL KINDS of interop code that is at risk with the ruling

Yes, there are parties that stand to lose a lot in the short term from a decision for Oracle.

But would it be so bad in the long term if proprietary vendor-specific protocols were put at a disadvantage? Maybe back-to-basics open protocols (or at least protocols formally contributed to the public domain) would resurge, and interoperability would actually _increase._


Yes because the entire history of software industry shows what the problems are with Vendor Lock-in and how it will be abused

Oracle is a case book study if it, that is their entire business model


>Because all of the copyright Trolls are waiting for the court to rule API's are copyrightable.

This isn't how the courts work and it's sad that Google has pushed this nonsense for the past 6 years.


>For example, recipes are not individually copyrightable, but if you compile a set of recipes and publish them in a cookbook, the cookbook itself becomes copyrightable.

Recipes that contains more than just the basic list of ingredients and instructions can be copyrightable. Include a picture, illustration or a bit of creative text and copyright will apply on that. That's the true reason why cookbooks fall under copyright (while the actual list of ingredients and instructions do not, which people do lift out of cookbooks for example).

Even when applying copyright to an "arrangement" of items that are not copyrightable, as in a database, there needs to be creativity expressed, otherwise it will not qualify for copyright.


While that might be true, it's not really relevant to the underlying point, which is the selection and arrangement of non-copyrightable material can result in a copyrightable work. You can replace recipes with any other example if you'd like.

> Even when applying copyright to an "arrangement" of items that are not copyrightable, as in a database, there needs to be creativity expressed, otherwise it will not qualify for copyright.

As the Supreme Court said in Feist: "To be sure, the requisite level of creativity is extremely low; even a slight amount will suffice."

This is not a very difficult threshold to meet (and Google has already conceded it has been met.)


> What's worse for Google is that code has always been considered copyrightable so arguing that APIs are non-copyrightable is essentially carving out an exception for a specific type of code.

Not exactly; an API can be completely re-implemented from scratch and still be compatible. If it was just about the API code, there wouldn't even be a case.

The idea that an API could legally be an "original work of authorship" makes a lot of sense; but the technical implications could indeed harm the industry overall.

Essentially what this means is: I build a system, you're not allowed to build a compatible system. Yet another reason why open source is the only way forward.


>The idea that an API could legally be an "original work of authorship" makes a lot of sense; but the technical implications could indeed harm the industry overall.

It doesn't make sense because an API doesn't exist in the work. Copyrighting APIs is functionally useless because you can have multiple works with the same API without violating copyright through clean room designs. Therefore whatever protection you want should cover more than one work. Copyright only covers the works you create yourself. It doesn't cover works that other people create even when they are directly inspired by your works. We have patent law for this.


Someone could also argue your analogy with a cookbook is wrong, because if we talk about headers and APIs, it's more like Oracle claiming that their stove's interface to the pot is copyrightable.

How is heat transferred to the pot? From the stove to the pot, this is the API, and how it's implemented doesn't matter. Oracle claims that this specific thing, that you turn on any button and make it heat up is copyrightable.

But we all know that a stove is useless without that API. We would have to buy a whole new kitchen equipment for all stoves that we are going to buy.

A further question is: When will it end with copyright claims? I mean, at somepoint somebody will claim that the effing powerplug is also copyrightable. But we all know that nobody (speaking of % of the population) even has the skills to connect a device without a power plug without potentially harming themselves.

All technology is useless without APIs. Nonetheless I think that copyright laws is essentially full of flaws here, because if we focus on speech alone (of which most copyright laws are based on), someone might even argue that specific words are copyrightable if they are "uncommon enough".


Tortured analogies like this is why the whole software industry is going to be making a surprised pikachu face when Oracle wins (see my comment a day or two ago on the prior story for substantially similar sentiment).

Heat transfer to a pot is not an API, not even remotely close. It's a physical fact that has been observed since the stone age. The Java API is huge. It's not a mere physical fact, nor even a collection of method prototypes. It's everything covered in the JavaDocs: what happens in error scenarios, thread safety rules, how objects are combined to get different effects, what you can subclass and what's not, what security permissions things need. It's enormous and every decision in that was a 'creative' decision, in some sense.

From a plain reading of copyright law it's obvious APIs far smaller and simpler than Java should fall under copyright. The idea APIs don't is a convenient consensus-quo for the software industry that benefits competition and should probably be preserved, although there is the counterbalancing factor that the non-protectability of APIs probably has invisible side effects we can't see (e.g. under-investment in API design). But the Supreme Court won't or shouldn't care about any of that because it's a political debate. The question before them is about what the current law says, and on that, Oracle probably have a point. Also, it's going to be even more fashionable to hate on Oracle if they do win, but the current situation has always been legally fragile. Sooner or later someone would have observed the apparent skew between the software industry's approach to copyright and what the law really says. We may be at least somewhat grateful that it's a fight between two well resourced firms and not e.g. a patent troll firm type of situation, where the defenders are threatened and have to pay up because they're too small to fight it.


Well, if Oracle wins this court battle, the effect will be disastrous because Microsoft is then legally able to sue everybody that uses their NT kernel API, including Oracle.

The whole software industry would have to change, and the potential pitfalls of buying software without an open source license would be too great a risk for pretty much everyone that developed any software for any proprietary environment.

I mean, using a proprietary GPU could be enough to get sued because you are rendering things on the screen, right?


No they wouldn't. MS would only be able to sue people who reimplemented the NT kernel API for their own projects, which is basically just Wine and ReactOS, but those projects have no money.

This case is not about using APIs to build apps. Standard software licenses clearly allow that. The case is about reimplementing them.


>From a plain reading of copyright law it's obvious APIs far smaller and simpler than Java should fall under copyright.

You do realize that copyrighting APIs is functionally useless? There are ways of copying APIs that do not violate copyright. Reinvention is still possible precisely because of things like javadoc or the fact that Oracle doesn't have copyright ownership of code that uses the Java API. There is an endless list of loopholes that this protection is useless.

>The idea APIs don't is a convenient consensus-quo for the software industry that benefits competition and should probably be preserved, although there is the counterbalancing factor that the non-protectability of APIs probably has invisible side effects we can't see (e.g. under-investment in API design).

It has more to do with the fact that we already have patent law that was explicitly created for cases like these. Two inventors build the exact same thing. The first inventor should have the rights to the invention.

>But the Supreme Court won't or shouldn't care about any of that because it's a political debate. The question before them is about what the current law says, and on that, Oracle probably have a point.

Can you point me to software patents that protect the Java API?

>Also, it's going to be even more fashionable to hate on Oracle if they do win, but the current situation has always been legally fragile.

Clean room designs are the status quo in the hardware world. There is zero fragility. It's done all the time.

>Sooner or later someone would have observed the apparent skew between the software industry's approach to copyright and what the law really says.

They already did so to the point that patents have existed before copyright.


There are ways of copying APIs that do not violate copyright

Are there? That's exactly what's being litigated.

Two inventors build the exact same thing

Patents don't cover APIs, by the nature of their form as a patent typically must make a narrow list of claims. To patent the Java API would presumably require making the entire specification a set of claims, which the PTO wouldn't accept.

You could argue APIs should be patentable but not copyrightable. That'd be weird though. Copyright is clearly the better fit, if you want APIs to be protected works.

Clean room designs are the status quo in the hardware world. There is zero fragility. It's done all the time.

No. The hardware world is the exact opposite of what you claim. ARM sells ISA licenses exactly because in the hardware world the Oracle side won out a long time ago: if you want to implement the ARM instruction set you need to pay ARM for the privilege. And if you want to use ARM's implementation you need to pay them even more. AMD can only make Intel-compatible chips because they have an architecture license for complex historical reasons, and so on.


> Corona Data Systems, Eagle Computer, and Handwell Corporation, were successfully sued by IBM for copyright infringement in 1984, and were forced to re-implement their BIOS in a way which did not infringe IBM's copyrights [1].

> To develop a legal BIOS, Phoenix used a clean room design [2].

I think there was some creative process in designing BIOS.

There is no difference between binary and text format, it is just a serialization. WASM text format and binary format. Java source and bytecode.

API documentation is certainly copyrightable, even text definition file. A lot of creative process goes to putting braces, spaces, commas, naming

    static double min(double a, double b)
versus

    static double
    min (double x, double y)
both would be valid reimplementation of java interface.

Yes, problem is copyright law.

[1] https://en.wikipedia.org/wiki/Clean_room_design

[2] https://en.wikipedia.org/wiki/Phoenix_Technologies


>API documentation is certainly copyrightable, even text definition file. A lot of creative process goes to putting braces, spaces, commas, naming

Yes but it is useless. You can e.g. copyright an electronics schematic. People aren't allowed to copy it and sell it but they can build the device that is being described by the schematic and then they can create their own schematic based on the device they have created. That's why we have patents.


One solution might be for the Supreme Court to acknowledge that APIs are copyrightable, but that re-implementations are always fair use.


I think the question is whether the utilitarian need to copy that arrangement for compatibility reasons is enough to argue fair use.


> As is common when HN discusses legal matters I see a lot of people blaming the judges for not understanding tech, but the problem here isn't really the judges so much as the law itself.

Yep I second this. I think there’s a parallel “legal news” community somewhere pointing at us here going “those nerds don’t understand how law works” :)

What we should _all_ be doing more actively, imo, is nudging our representatives to update the law to create legislation that answers definitively “whether APIs are copyrightable or not”. Albeit, that is a much more difficult and slower process.

Well, you know what they say about democracy as a form of government though: “something something yeah, it kinda sucks but it’s the best we’ve got something”


I am surprised that Google's legal team would forward such lame arguments. There are much better lawyers out there with a much stronger ability to convey complex topics to non-technical people in a way that illustrates the point under consideration.


Such as?


Well I found Justice Breyer's argument, in the article, which compared APIs to the QWERTY layout of keyboards much better than Googles.

Imagine if you copyrighted the six sided bolt head? Or the TORX screw. Making screw drivers or wrenches that loosened or tightened them would be copyrightable. How about copyrighting which side of the street people drive on, or the width of driving lanes. Do we get to charge a "usage fee" for cars that adhere to the lanes available on freeways?


>What's worse for Google is that code has always been considered copyrightable so arguing that APIs are non-copyrightable is essentially carving out an exception for a specific type of code.

Congress would have made that exemption when they made the law in the first place.

>A “computer program” is a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result.

This is an important fact people keep forgetting. Asking the Court to bluntly create legislation is never ever going to happen.


When you can wrangle the analogies in reasonable ways in either direction, why not wrangle them in ways that make the tech industry sane, rather than insane?


>What's worse for Google is that code has always been considered copyrightable so arguing that APIs are non-copyrightable is essentially carving out an exception for a specific type of code.

That's another aspect. API isn't code, only implementation produces executable code, API only helps ensure that those chunks of code fit together, like book's spine holds pages together and in order.


If APIs are like book spine I don't know why teams are spending so much time designing and thinking about their APIs. Just slap on a "book spine" and get to writing code you procrastinating devs.


I think the fact that you can copyright which recipes are in a cookbook is on the level of an API, which is why I think its absurd the government grants exclusive ownership for such a thing. I don't know how we got to this point where we think any of this is a natural or sane state of affairs.


Yes and we should not forget that min and max are not just methods with names, they have a contract too and should behave in a certain way. For these examples thus might not seem like a big deal, but the contract must apply for all methods, even non-trivial ones.


Yep. "It would set such terrible precedent for the industry that nobody even thought to ask the question before" doesn't imply it's not what the law says.


Naive question: how and why is this different from the various precedents which allowed "clean room" reimplementation of an interface/API?


That is precisely the question, is a clean room reimplementation copyright infringement? And of course, this is Google doing a clean room implementation of the famously litigious Oracle's code, so we get basically laboratory conditions.


Interesting point. If I implement, say, the List interface for a class in my program, have I violated the API copyright?


Maybe instead of comparing to cookbooks we should compare an API's to technical standards? (think ISO)


Are anthologies of poems copy writable? I thought not.


>Are anthologies of poems copy writable? I thought not.

Then you thought wrong[0]. While the poems themselves may be copyrighted by others, the editor (presumably getting license/permission from copyright holders of said poems) organizes the poems in the anthology. The resulting work is copyrightable in its own right.

Check out the link below and the copyrights on each anthology.

[0] https://www.theguardian.com/books/2018/oct/03/top-10-poetry-...


Different from this case, anthologies imply curation which is a legitimately creative act.


"copy writable" ?

what does writability has to do with anything?


so iterate this 50 more years (rules inevitably are both applied and no longer applicable) and law/society collapses


There's nothing precluding the legal analysis you've outlined from stemming from a poor understanding of the underlying technology. Just because the legal reasoning is internally sound doesn't mean the resulting narrative makes any sense when applied to reality, and it hardly is the only possible internally sound judgement. There is plenty of room for arbitrary semantics (and I would argue actively harmful and ignorant semantics) to dominate the resulting judgement.


Should Oracle win this case, I predict that Free Software licenses will emerge as the clear market choice. Licenses that enshrine interoperability along with the freedom to modify or reimplement in part or wholesale will suddenly provide significantly more value over non-Free software which will be a proprietary minefield and the value will not be for technical but purely from legal liability. Anyone setting out to do something new would be wise to build on top of software they are at least assured will not be used against them in court should they find success building ontop of it.


The Google lawyer should be fired. I can’t believe you’d put the best of the best in front of the SC and the guy didn’t even sound like he could describe what an API actually is in non-technical terms. I don’t see how he represented the best legal representation Google could buy.


Indeed. This was bad representation to the point that I'm wondering if it was intentional. Google might have recently realized that, as a monopoly, fighting for API freedom perhaps isn't in their best interest.


If they wanted to lose, wouldn't it have been much easier (and possibly cheaper) to settle?

I can't imagine Oracle would have a problem with getting to say they were right, and getting a boatload of cash, without all the bother of the Supreme Court.

And doesn't intentional bad representation have weird and costly externalities, like reputation damage for the lawyer?

I love the image of Google and Oracle behaving like gangsters, but I'm having trouble imagining it being this sloppy.


A Supreme Court ruling is a lot better than settlement if they've decided they want to pivot to sueing independent implementations of their APIs. I wouldn't find it compelling to follow if Google took the other side of a settlement they were involved in to go and pursue others. Maybe they settled because they figured out they could make more money that way, regardless of the question of law.


Interesting! Leaves me wondering, what independent implementations of Google APIs are out there?


One of the more important in my opinion is the microG project (https://microg.org/), a free re-implementation of Google’s proprietary libraries for Android that many apps on the Play store depend on.


> If they wanted to lose, wouldn't it have been much easier (and possibly cheaper) to settle?

Well, it would certainly be much safer not to present such a comprehensive written argumentation and hope that you can somehow sabotage all that (and all the written arguments from friendly amici, etc., by a clumsy presentation at oral argument.) I think "highly successsful Supreme Court lawyer doing his best has a bad day at oral argument, perhaps in part due to the unusual format" is more likely than some kind of "deliberately throw the case by trying to screw up oral argument" thing.


Google would permanently lose the tech world if they don't appear to fight this battle. Give away the whole concept of API's free of copyright? The reputational damage would be immense and probably spell the beginning of the end for Google.

I had the same thought (that Google is intentionally throwing the case) when I read over the Google lawyer's approach, there's no way the guy is that out of touch.

The Google of today is not the Google that started this case all those years ago and the Google of today is working alot harder to create its own walled gardens. They have alot more to gain from suing the pants off anyone who tries to interoperate with them, than they stand to lose from a few $billion payoff to Oracle.


That would have been an expensive realization, but it sounds like a reasonable explanation.


> This was bad representation to the point that I'm wondering if it was intentional. Google might have recently realized that, as a monopoly, fighting for API freedom perhaps isn't in their best interest.

Is your speculation that Google had this sudden realization between the filing of the various written arguments (including the standard of review for fair use memo on August 7) after fighting this case for years (all of which they've had a similar position), or do you think their written arguments are consistent with this theory?


4D chess time: Google wants to steal market share from Oracle, and Oracle offered a perfect opportunity by trying to shoot itself in the foot by making Java forks risky (thus ending innovation from the open-source world). I expect Google to invent a new bytecode language that looks and feels like Java, but isn't Java. Oh and it'll come with a promise not to sue if you copy the API, not like that big bad Oracle.


was thinking exactly same thing


???

Dunning-Kruger effect, exemplified in this thread


> Dunning-Kruger effect, exemplified in this thread

How does the effect where everyone feels they are slightly closer to about the 70th percentile in performance at a task than they are (and more the farther away from that their actual performance is) have any bearing here?

Or do you mean the D-K effect of popular legend where people who are completely incompetent think they are hypercompetent, rather than the actual effect of that name?


>Indeed. This was bad representation to the point that I'm wondering if it was intentional. Google might have recently realized that, as a monopoly, fighting for API freedom perhaps isn't in their best interest.

That might well be true. However, I'd be more inclined to apply Hanlon's Razor[0] to this, as it's usually closer to the truth.

[0] https://en.wikipedia.org/wiki/Hanlon%27s_razor


He also argued that there was only one way Oracle's Java libraries could have been designed, which is clearly false, and the justices picked up on that.


After a (long) while it became clear it meant "there is only way that we might make the full use of the current pool of Java programmers", which is an odd argument to advance — why would they be entitled to draw from that pool of programmers. I think it would have been more compelling if he had focused on the interoperability with the ecosystem of Java libraries.


And the justices picked up on that. I thought they did a good job assessing the case from both ends. At first I thought the justices were against Google and pro Oracle, until I saw them address the Oracle lawyer and it was clear they were asking good questions on both sides.


really astonishing. wonder what google saw in him. the oracle lawyer was far more prepared and technically cogent.


His claim that there is no creativity involved in designing an API is plainly absurd as well, and from the transcript I don't think the justices bought that at all. And I agree with the Justice Department lawyer that the "no other way to do it" argument he pushed at the beginning is circular.


Yes. They have had -years- to come up with a defense and a crack legal team and then this guy shows up. Maybe they wanted to lose?


Giving a lawyer an unwinnable case does not take away from the fact that he is one of the most successful SC lawyers in the world.


This case is not unwinnable. And lawyers can specialise in specific areas. This lawyer seems unprepared at best, and simply not appropriate for this at worst.

I'm not saying he's a bad lawyer, I'm saying he's not the right lawyer for this case.


>I'm saying he's not the right lawyer for this case.

Feel free to name anyone who has a better record in front of the SC.


How do you know the Google lawyer isn't representing the wishes of his client? A little voice in the back of my head wonders if maybe google's position has changed over the years...


Hanlon's razor may apply here: "never attribute to malice that which is adequately explained by stupidity"

albeit in a different form.


I find Hanlon's razor a wishful thinking at best. I do not think there is any evidence backing it up.


Google... really isn't that good at what they do besides sell Ads. They're just big so whatever they choose becomes the standard because 'doing what google does' not only won't generally get you fired but also impresses people who don't actually have to build difficult things. It's a testament to the power of an entrenched market position.


My least favorite part of the arguments was when the US government representative used the existence of open source licenses that explicitly allow copying declarations to claim that it's not commonly believed that such rights don't exist.

"There is a prevalent practice of licensed copying of declarations and often that is done through what is called open-source licensing" ...(6 minutes later) "sometimes, often the license terms don't include the payment of money, they simply include a requirement like whatever improvements you make have to be given back to the programming community. Have to be made known to other potential programmers. But the copyright holders authority to impose and enforce those licenses obviously depends on the proposition that the code is copyrightable to begin with. And so those licenses would be a pointless gesture otherwise and the very fact that they are offered with such frequency tends to dispel the idea that there is a common understanding in the relevant community that this material is not copyrightable at all."


> licenses would be a pointless gesture otherwise and the very fact that they are offered with such frequency tends to dispel the idea that there is a common understanding

This reasoning would also make valid those silly "I hereby declare that my photos on Facebook are my property, with all rights reserved etc etc" posts.


He's right. The entire premise of open source licensing is that the work is copyrightable, so it uses the copyright system to enforce the authors distribution requirements.


I don't have to believe in Santa Claus to appreciate Christmas presents.

I don't believe that software should be subject to copyright so I put the GPL on my code to protect it from those that do. Fight fire with fire, eh?


The GPL, in particular, goes further than just refusing to exercise your copyright over a piece of software. The GPL restricts the usage of your software, most notably by forbidding its use as part of any proprietary software. Without copyright no one would have to respect that restriction.

The situation you are describing is closer to a project with an "unlicense," e.g. SQLite, which explicitly makes the project public-domain and places no restrictions whatsoever on its use.


It still seems like an overstatement to argue that use of open source licenses indicates a belief that method declarations are copyrightable.


Open source licenses have often included terms that were for other jurisdictions, or because the status of something is actually unknown, or just in case some future law changed the accepted belief.


Yes, the GPL actually depends on strong copyright.

who knows, maybe strong APIs will prevent embrace/extend/extinguish?


it's a good point though


I agree that part of the reason open source software is so popular (particularly for programming language implementations) is so that there is no ambiguity about the fact that people can make adaptations/alternatives without worrying about copyright lawsuits. However it seems very perverse to use the fact that so many people think it would be a bad idea if these interfaces were constrained by intellectual property laws to justify constraining them by intellectual property laws.


Glad to see this take, it was in line with what I was thinking. Namely, that APIs have always been an extremely poor excuse for true openness, more or less a way to get that half-freedom of "letting other people do your work for you" without always being required to give back.


AWS licenses it's client library as under the Apache License. (https://github.com/aws/aws-sdk-java/blob/master/LICENSE.txt) Doesn't that mean anyone can build an interoperable service? I can then benefit from other cloud providers implementing the same API. I don't need access to AWS' source code, I wasn't going to deploy a private cloud anyway. All I want is robust competition.


This has already happened to an extent. For example, there are bunch of API compatible implementations of s3, both oss and proprietary and most of them suggest you use the AWS sdk as a client.



Wow, that's wild to read. In comparison (and complete lack of contrast) to:

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/am...


What the hell kind of comparison is that? You linked a human-doc-writer written documentation to auto-generated Java SDK documentation...


To me it's not related, the SDK is under the apache licence but it's just an implementation of the API, the API itself is not defined or under the copyright of that SDK.


Yeah, I think this is what Digital Ocean does? I believe the AWS S3 Python library works out of the box for DO.


I would guess that it doesn't work out that way. The Apache license has the patent clause, but it doesn't have a comparable "API copyright" clause. Though perhaps another consequence of an Oracle win is that we end up with an Apache3 license.


I don't follow. If someone can determine the API by referring to code released under the Apache licence, what copyrights could they be infringing by building a different implementation of the API using the Apache-licensed code as a reference?

For a copyright infringement to have taken place, there generally needs to be an unauthorised instance of recording or of duplication, of some copyrighted work.

I put generally as, I believe, precisely recreating someone else's photo can still count as an infringement of their copyrights, despite that you haven't copied the image itself in the usual sense of making duplicates. Singing someone else's song can also infringe on their copyrights over the song. I don't think this would apply here though.

(Disclaimer: I'm not a lawyer, I could well be missing something obvious.)


The same sort of API copyright that Oracle is trying to establish in this case.

How things actually shake out would depend a lot on the specifics of the Court's ruling, and I am not a lawyer either. But, if the court rules that Oracle owns a copyright to the Java APIs, and that this means they can prevent others from implementing their own versions of those APIs, and this right remains in effect even though they release a full implementation of them under GPLv2, then I can't see any particular reason to expect that things would work differently for Amazon's APIs and Apache2.


The difference is that the way Google used the APIs is not compatible with code use under the GPLv2 (in particular, they didn’t GPLv2 license it). If the original code implementing the APIs is Apache licensed however, you have a very free hand in changing the original code so you probably wouldn’t care about your working being considered a derivative of it. I’m not sure that absolves you categorically but it definitely sounds like a better position to be in.


But the API must be defined in the client library, and that has been released under an open source license.


They've given a license to use and extend the copy-written software, including its method signatures.


Oracle has done that, too. They release the full JDK under the GPL.

The law around these sorts of things can get pretty hair-splitty. My guess is that the situation here is that Amazon client libraries and OpenJDK are distributed with a license to create derivative works that are based on their respective products, but that these licenses do not necessarily grant a license to create a new thing that works the same out of whole cloth. Should Oracle win the case, that would seem to imply that the Court believes they do not. Alternatively, the fact that open source licenses do not appear to have even been brought up in the course of these hearings would perhaps imply that the existence of open source libraries that implement these APIs is legally irrelevant.


OpenJDK did not exist when Android was developed and initially released. Google did move to using it 2016 and may not have liability after that date.


Andriod was First released in Sept 2008,

OpenJDK was first released May 2007...


Perhaps more legally relevant, Android's first public beta dropped in late 2007. But still, technically after OpenJDK's release.


It's copyright, not copywrite

https://en.wiktionary.org/wiki/copywrite


Using a client is different than reimplementing compatible classes.


The idea is that a client generally contains a copy of the API (it's calling it so it should).

So you get a copy of the API with Apache license and are free to build your own implementation of it.


Yes, but we'll get a major bit rot problem with existing programming languages and probably even file formats (PDF anyone?). And that's before we get to open-source drivers for mainstream hardware, whose APIs are surely not soon going to be released from copyright?


Maybe after the dust settles. But you can bet lots of people will reenact the SCO saga, and now they won't have to lie on every claim.


I would love to see IBM try to sue Oracle for the entirety of its history of database revenues over its use of their SQL API...


I would like to see Amazon sue Oracle for their S3-compatible API for Oracle cloud.


SQL is an ISO standard. IBM would only have grounds if any part of Oracle's implementation implemented a proprietary portion of an IBM database implementation. This is the positive thing about standards, it removes ambiguity around what people can/should implement and present to users of the systems.


The IBM implementation of SQL far predates the ISO standard. Does something being standardized somehow relinquish the copyright? The idea of APIs being copyrightable is new, has IBM somehow relinquished its copyright claims for SQL to ISO? This article discusses the possibility at length https://arstechnica.com/tech-policy/2020/03/before-it-sued-g...


I think you have to have demonstrated that you have taken steps to protect your copyright. I’d imagine submitting to a standard would relinquish that. Patents on the other hand ...


You absolutely do not have to protect a copyright. Even if a book is out of print, you can't start selling it--or even giving copies away for free. However, although IANAL, I assume that submitting something to a standards body and having it accepted allows those standards to be used in accordance with the terms of the standards body--which BTW may not require that use be free in all cases.


> Even if a book is out of print, you can't start selling it--or even giving copies away for free.

That's not exactly true. You can't photocopy it and start printing your own.

But if you have legal copies of it, you can definitely sell them or give them away.


First-sale doctrine of physical artifacts. But not copies of those. Correct.


I have heard that a lot for trademarks, do you have reference for copyrights?


Yeah but what did Oracle copy here? They made the language compatible, but did they copy the API too? Cleanrooms have been a thing for a long time.


Also note that even for established patents, a ton of standards standardized patented technology, and implementing the standard requires a patent license! This is a huge part of how Qualcomm makes its patent revenue from 3G/4G implementors.


From what I heard, a large part of the politics in 3GPP standardization are about big companies wanting the prescribed methods to use their patents.


Or proprietary software could just publish their interoperable APIs under free license.


I look forward to all the unnecessary type casting we will get to do so public interfaces don't infringe. System.Out.Println(byte []) is my new favorite function on Android.


Would a tool to do this be illegal?


This tool would -- sort of -- implement an API.


Would make for an interesting case ...


When I learned that Java is open source, I had assumed that it was free. I guess I was wrong.


Google isn't complying with the GPL license, so it doesn't really matter that it's open source.

Also, I forget if openjdk or this infringement happened first, but if the latter was first than it wasn't open source at the time.


There's open source and really open source, it seems. Just wondering if the ruling will put a bomb under the Java edifice? Maybe it will even pave the way for Kotlin to become the dominant JVM language. One can only dream.


Yes, for the last decade or more commercial companies have been polluting the term "Open Source" to mean "this software takes away all your freedoms, but at least you can read our source code."

This is why the FOSS licenses enshrine Compilation, modification and redistribution also.


> Should Oracle win this case, ... Free Software ...

Hmmm... First Free Software project that will dye after this is WINE that implements Windows API ( https://www.winehq.org/ )


Not at all. Please read page 14 of the amicus curiae brief in support of Google by Microsoft (https://www.supremecourt.gov/DocketPDF/18/18-956/128381/2020...). Here is the relevant paragraph:

""" In another example from the 1990s, an open-source developer created a program called WINE, which al- lowed developers to enable Windows applications to run on computers that used the Linux open-source system, without explicit authorization from Microsoft. Gratz & Lemley, supra, at 611. To create WINE, the developer “use[d] the same hierarchy of function names” of various Windows APIs. Id. at 612. Years later, Microsoft created “the inverse of WINE,” reimplementing the structure of certain Linux APIs to create the Windows Subsystem for Linux, a program that allowed Linux programs to run on Windows. Ibid. The Windows-Linux experience shows that reuse of functional code is a “two- way street” that benefits both the original creator and the follow-on developer—and ultimately the consumer. """

Not to mention there's no monetary chest at the end of that fight (and the creation of WSL wouldn't bode well for them if they were to make a case at all).


Companies don't bother with principled consistency, and so I wouldn't expect any from Microsoft if this goes Oracle's way. It's totally possible that Microsoft thinks APIs being non-copyrightable is good for them on net, but that if SCOTUS decides otherwise that they might as well go crush WINE anyway since they now have the means.


What would the benefit to MS be to crush w WINE. They have made a big effort to rebuild their reputation with developers, and WINE doesn’t really hurt their bottom line. They have no incentive.


The risk of WINE or ReactOS becoming, or contributing to, competitors. Proton is a fork of WINE by Steam that is used to run Windows games on Linux, and it works very well. One day in the future it might make sense to go after Steam, or CodeWeavers.


You’re suggesting that Microsoft may choose not to crush WINE even if they had the right, because some other incentive holds them back. I think GP agrees, and is merely saying that Microsoft’s current philosophical beliefs would not likely be that incentive.


It will depend a lot on how wide a decision SCOTUS makes, and that fair use is interpreted in a very different way. Wine is not a windows replacement nor can Microsoft really show any negative impact on the market for windows license sales because of Wine. Wine (recursive backronym for Wine Is Not an Emulator) is "simply" a compatibility layer that convert between Windows ABI calls into native linux system calls. Wine is not an operative system replacement for windows, and wine user base compared to windows is comparable so tiny that any argument based on market impact should be taken with a lot of skepticism.

In addition I would be a bit surprised if wine has copied 11000 lines of header files from windows, arranged identically to Microsoft Windows source code.


Yet, if you pick the right lines out of the WINE source-code, it will look eerily similar to the Windows source-code. And not by coincidence: if Windows' code had looked different, WINE code would have looked different too. And the important thing is that the Windows code could easily have looked different. It was a creative process that led to what it was. WINE is a derivative work.

Copyright law needs to be clarified to allow this without licence. Just like you're allowed to refer to a competitor's brand if you follow the rules in trademark law. It's one of those things where you think legislation should be rushing to fix it to remove uncertainty. Instead, a good chunk of senators is comfortable letting the Ellisons of this world make other people's life harder in negative-sum games.


Wine allows running windows applications without windows lincense, directly taking revenue from Microsoft who arguably invested a ton in making documentation and developer tools to make those applications.

It seems you are arguing mainly because the user base is so much smaller it does not count. The law does not work that way.

Windows SDK contains tens of thousands of lines in header files for those DLLs Wine implements. Not saying Wine copied them outright, but the opportunity is clearly there.


"The fourth factor measures the effect that the allegedly infringing use has had on the copyright owner's ability to exploit his original work. The court not only investigates whether the defendant's specific use of the work has significantly harmed the copyright owner's market, but also whether such uses in general, if widespread, would harm the potential market of the original. The burden of proof here rests on the copyright owner, who must demonstrate the impact of the infringement on commercial use of the work."

It would be up to Microsoft to demonstrate that Wine impact the market for Windows license sales. I strongly doubt they can do that regardless how much they have spent on documentation and developer tools. Wine does not replace the need for an operative system, and if the usage ever become widespread enough to harm the market for windows then developers would just support programs natively for Linux, side stepping the need for wine.

Wine is not a market substitute for Microsoft windows, which is the first consideration that courts look at. Courts would then look if there is a potential existence of a licensing market (ie Microsoft licensing out the ABI) which again does not seems very likely. Failing those two tests it would be a rather uphill battle for Microsoft to demonstrate Wine impact on the market for Windows license sales.


Maybe just in the USA. But also Microsoft is on Google's side here. Also doesn't Microsoft's WSL also have this problem as a "reverse WINE" ?


Except Linux is FOSS so Microsoft has a license to do it.


Only under Linux's GPL license, WSL is most definitively not under GPL



Is it possible to make WSL a GPL software without making entire Windows a GPL software?


Yes, GPL defines some boundaries but as long WSL acts as stand-alone software and Windows doesn't link against it that's allowed.


And what about Xamarin?


Microsoft owns Xamarin (as of February 2016), so that would be weird :b

This would be somewhat concerning if we were talking about Ballmer-era Microsoft where they were going around extorting companies that used Linux. Although nothing was really stopping them then. They had a good system of picking companies one by one, being threatening and making them sign "licensing deals" without ever needing to go to court or publicly say which patents were being infringed. (Probably all FAT stuff. Google eventually had the good sense to stop using FAT on Android, but it was slow going because if you haven't noticed Google manoeuvres about as well as a freight train). With the amount they've changed under Nadella, I'm not sure present day Microsoft even could do that.

But for present-day examples we're going to need to search elsewhere.


What I meant is that Xamarin reimplements the APIs from iOS and Android.


Seems like you've discovered the philosophy of Accelerationism!

Sometimes it does feel that embracing awful system is the best way to topple it.


I don’t understand why software and other IP rights aren’t de facto open-source after 10 or 20 years, if nothing else for archive and legacy purpose, but also to encourage sustained innovation. I’m not even leftist; but even in the capitalist/libertarian theory, the state shouldn’t help guard private companies’ rights in software. If you publish it, the recipient has it, period. The state lending its judges to enforce exclusive rights for a few years is already a big extraction of collective resources for private interests.

Found the source of Windows XP? It’s alright, you shouldn’t be condemned for publishing it, it will only help with bugfixes and security, and as long as the owner refuses to sell it...


> I’m not even leftist; but even in the capitalist/libertarian theory, the state shouldn’t help guard private companies’ rights in software. If you publish it, the recipient has it, period. The state lending its judges to enforce exclusive rights for a few years is already a big extraction of collective resources for private interests.

How is software, something of which there is an infinite supply that doesn’t exist until someone creates it, more of a “collective resource” than my back yard, which was here before I was born and will remain here after I die?


Millions of people can use VI at once without any direct impact on Bill Joy or his even even noticing it.

Millions of people using his back yard at once would be an entirely different matter!


That means a good is non-rival. Why does that make it more or less “communal?” VI wouldn’t exist without Bill Joy, but his backyard would. Doesn’t that make VI more personal and less communal?


What is communal is the protection provided by the state. When the state has to protect houses, it’s an easy job, very deterministic, and costs are known. But states routinely refuse to protect large sums of money and require that you acquire your own protection. Something which is too costly for the commons or to vague to determine will be excluded from public protection. Protecting ideas is excluded for example, because they spread so fast that it is practically impossible to protect. I’m of the opinion that bytes are too costly/too vague to be protected by the state, and today is a good example since we had to use all courts up to the Supreme Court to rule on what sounds like a frivolous detail to most of the people. Ruling on whether an API is copyrightable is maybe a sign that the state attempts to protect too much and therefore can’t even distinguish between “too much” and “beyond” its scope.


Here, you make an argument is about enforceability that undermines your earlier note about "10 or 20 years". The obvious conclusion of your enforceability argument is that we should not have any form of copyright. That's fine, but it would be a tighter thread if you'd spent a few more minutes to form that argument originally.

The "collective resource" and "communal" concepts above seem to be improvised. If you want to succeed at introducing new concepts, they will need to be well-grounded.


> Supreme court judges just do not have the conceptual framework to properly adjudicate this. I don't think it's going to be possible to teach them the difference between interface and implementation within the parameters of these arguments.

I mostly agree with you, but let's give credit where credit is due. Justice Sonia Sotomayor, from TFA:

> "[...] since 1992, [courts have said] the application-programming interface, of which the declaring code is a part, is not copyrightable. Implementing codes are. On that understanding, industries have built up around applications that know they can copy only what's necessary to run on the application, but they have to change everything else. That's what Google did here. That's why they took less than 1 percent of the Java code... Everybody knows that APIs, declaring codes, are not copyrightable. Implementing codes are. So please explain to me why we should now upend what the industry has viewed as the copyrightable elements, and has declared that some are methods of operation, and some are expressions. "


It does go back to the compaq days when they clean room cloned the IBM PC.


This reminds me of the TV show Halt and Catch Fire, which kind of portrays something similar!


That show is a dramatization of that period in compaqs history.


Very interesting - can you link your source? I wasn't able to find that quote myself, and wanted to read more.



This might not just be a disaster for Google - it could be a disaster for software everywhere. If APIs become copyrightable, what happens to any open source software the implements a proprietary API?

Supreme court judges just do not have the conceptual framework to properly adjudicate this. I don't think it's going to be possible to teach them the difference between interface and implementation within the parameters of these arguments. And beyond that the conservative majority is predisposed to treat everything as property. This is not going to end well.


>>"that the conservative majority is predisposed to treat everything as property..."

This is misleading at best.

For example: RBG, despite her left-leaning reputation, was easily one of, if not the, most pro-copyright and pro-IP justices on the bench. (Relatedly, she also was pretty pro big business, which rarely fits the portrayed narrative.)

Not all areas of law, especially at the Supreme Court level, easily translate into right/left politics.

https://www.law360.com/articles/1312244/ginsburg-remembered-...

https://www.realclearmarkets.com/articles/2020/09/23/justice...


Everyone freaks out about social issues with SCOTUS (which is understandable), but their real impact is on economics. The destruction they've laid on the labor movement and help for big businesses is immense.

Just look at the commentary around overturning Chevron deference and non-delegation. Absolutely apocalyptic.


Is it would be positively apocalyptic to reign in the all-powerful unelected fourth branch of government the framers conveniently forgot to list in the constitution. Or to prevent Congress from creating executive branch entities that exercise the powers of all three branches of government. The SEC can make rules, sue you for violating them, and then adjudicate your violation, all under one roof. Pretty sure that’s exactly how Congress intended separation of powers to work!


>adjudicate your violation, all under one roof.

You still have Article III remedies in that case.

If the extreme version of non-delegation took hold, it would be the end of all rational regulation. Do you REALLY want Congress writing technical documents about effective isotropic radiated power? Or the shape of curb ramps?


I don’t see how having article III remedies addresses the separation of powers issue. It just means you can kinda maybe fix up the damage afterward.

I think it’s fair to ask how far a non-delegation principle should go. There is clearly a continuum between legislation and enforcement discretion. But does that mean we should have no non-delegation principle at all? Is there a definable middle ground between Congress leaving it to executive discretion address technical minutea and Congress delegating oversight over entire sections of the economy to unelected bodies that can serve as judge, jury, and executioner?

There are ways to maintain an administrative state without stuffing everything into the executive branch: https://www.theregreview.org/2019/12/18/rappaport-stronger-s...


They had a chance to end California's housing disaster in Nordlinger vs. Hahn but ruled in the favor of landlords and speculators. Justice Stevens even admitted that the law is unlikely to change under standard democratic processes.

https://www.law.cornell.edu/supct/html/90-1912.ZD.html


Could you explain what you mean here? I assume from your reply to 'rayiner that you are criticising recent decisions limiting Chevron deference and applying the nondelegation doctrine. It’s confusing, because big business won the case establishing Chevron deference. Whether the principle helps big business or not depends on big business’s relationship with the relevant regulator. Is the “apocalyptic” commentary describing the past effects of Chevron deference, the current effects of limiting it, or the potential effects of future decisions further limiting it?


I'm no expert on RBG, but I always pegged her as a Neo-Lib, rather than a Leftist.


Sure- but then you have to be careful defining labels.

Trying to peg a generic one dimensional (left-right) or even two dimensional (social/fiscal) political position on justices is difficult, even with loosely defined labels/ categories.

It's much easier to look at justices relative position/ rank on a per-topic basis.

Alternatively, and less useful to the general public, but very useful to SCOTUS junkies, is looking at cross tabs of how often a particular justice votes with others. Especially when they break from the publically perceived left/right voting block, which is more often than most think.

Scotusblog is full of this type of analysis for those interested:

https://www.scotusblog.com/category/empirical-scotus/

https://www.scotusblog.com/statistics/


And this is, in fact, precisely how the court is theoretically supposed to work. The two-dimensional partisan framing—which, unfortunately, is very real in other domains—is what's causing the court to break down.


Is the court breaking down?


Kind of, yeah. Supreme court justices aren't elected, are appointed for life, and collectively have veto power over basically any law, should they choose to break (or gradually discard) historical norms.

I think it's telling that neither Biden nor Harris was willing to rule out court-packing at the presidential debates, and at this point I think they're right to leave it on the table! But, it really would mark the beginning of the end of the Supreme Court. It's easy to predict what would probably happen the next time power changed...


I think it's telling that neither Biden nor Harris was willing to rule out court-packing at the presidential debates, and at this point I think they're right to leave it on the table!

The correct answer to that question was obviously, "Congress makes the laws, including ones about the number of SC justices, not the President."


“But if you were the president, and a law to add justices came across your desk, would you veto it?”


Plus the fact that Biden just this week claimed to be the head of the Democratic party.

Hard to make that claim if you're not helping set policy.


scotusblog is biased because they have/had a working relationship with Google.


Idk about Google... But they're biased for more reasons than that.

But they are still an excellent source, and are about as good as it gets compared to most (supposed) non-partisan media these days.

Fwiw, I also believe their bias to be almost entirely unintentional, which is way more than can be said for most sites. For topical seminars, where authors might actually argue for a side, they do a decent job of getting various opinions from multiple sources, even if it's not always exactly balanced 50/50.

And they disclose all cases in which someone might be involved.

Like anything else, you still need to consider the source when reading it.


This is really an important distinction. Social issues like gay marriage and things like this are completely orthogonal. The Democratic Party as a whole is very much neoliberal or liberal as opposed to left. Liberal judges are much the same.


The Democratic Party would be considered center-right in any other country of the world, but the USA.


The DNC would be center right in Saudi Arabia? By what metric?

What is with the ridiculous hyperbole that's so common when talking about America on the internet, especially by non-Americans? Talk about "American exceptionalism" - just in a different way.


I think OP implied "any democratic western nation".


Ah right, the soft ethno-nationalism of implying that the only 'real countries' are the western democratic ones.... great...


Indeed it's quite ridiculous. What they mean to say is that the DNC would be center-right in Europe, which is an incredibly Euro-centric way to look at the world. In reality, if you consider the actual bulk of the planet, which would include mainly China and India, the DNC and RNC dichotomy is rather unclassifiable.


Well, what's going on in America is being pushed down the throats of everyone in the world. You can hardly read an article without someone mentioning Trump and US politics in general. We may as well join in too!


If the House of Saud tried to impose Obamacare there would be a revolt.


Stay classy HN


> The Democratic Party would be considered center-right in any other country of the world, but the USA.

Any other Western democracy (including some Western-model democracies outside of the West proper), sure. But then the left-right axis is not really readily transferrable to outside of that domain, anyway.


It depends on how you define things. For example, do you measure by where Democrats end up in practice, or where they want to go? For example, the United States is to the right of Germany in terms of universal healthcare. But Medicare 4 All, where many Democrats appear to want to go in the long term--though they disagree about how quickly they want to get there--would be quite to the left compared to the multi-payor mandatory insurance system currently in place in Germany.

It also varies quite a bit by subject-area. In Germany, the constitutional court held (around the same time as Roe) that legalized abortion was unconstitutional, violating the fetus's right to life. Today, it is technically still illegal, but decriminalized up to 12 weeks. (Shorter than in almost every state in the U.S.) The abortion rate in Germany is much lower. The Democratic party's views on abortion would not be considered center-right in Germany. On gay rights, Germany got legalized same-sex marriage a couple of years after the U.S. And things like surrogacy, which gay male couples often rely on to have kids, is illegal.

Or, consider that Merkel, a member of the center-right Christian Democratic Union (CDU) has called for a ban on burqa. To my knowledge, even Trump has not said anything like that. Similarly, on immigration, while Merkel allowed Muslim refugees, her successor declared that a "mistake" which the country had "learned from." Democratic favorability to refugees would not be a center-right position in Germany.

In the area of religion, the U.S. is extremely left wing compared to every country but France. In the U.S., teaching religion (as such) is banned in public schools. In the U.K., Germany, Italy, and Spain (four of the five largest EU countries) it's actually required, either by statute or by the constitution. Children have a right to receive a religious education at the public expense in these countries.

In the area of taxes, the Democratic Party is center-right in some ways but quite left win in others. Merkel has championed Germany following along with Trump's corporate tax cuts. The Democrats' proposal to repeal that would not be a center-right position in Germany. The Democrats' proposal to tax capital gains as ordinary income is quite left wing. Most Western European countries, including Germany, have preferential treatment for capital gains taxes. In general, the U.S. has the most progressive tax code in the OECD: https://opportunitywa.org/u-s-federal-income-tax-structure-m...

But Democrats' tepid support for labor unions, for example, would be considered center-right or even right-wing in Germany.

On the whole, on social, religious, and immigration issues, the current Democratic Party is solidly to the left compared to western Europe. On labor issues, it's to the right. On corporate and investment taxation, it's solidly on the left. On healthcare, its to the right, but mainly for reasons that have to do with minimizing disruption to peoples' current private insurance. Where they want to end up, single payer public insurance, is solidly on the left.

Our next Vice President will very likely be a Democrat who, in 2019, supported single-payer public healthcare, treating capital gains as ordinary income, a 35% corporate income tax rate, a financial transactions tax, publicly funded abortion with no compromises such as waiting periods, Green New Deal, free healthcare for people who immigrate illegally, etc. If she actually believed those things, she would be a solidly mainstream left politician in most European countries.


Thanks for typing this all out. The idea that American liberals would be “right wing” in Europe is just plain wrong for reasons you’ve mentioned. There’s a lot of nuance lost and you can’t really compare the two. For instance Europe is full of Christian socialist parties: something unthinkable here in the states.


> But Medicare 4 All, where many Democrats appear to want to go in the long term--though they disagree about how quickly they want to get there

Democrats generally agree that there should be universal access to health care, and a mostly agree that that should involve a public plan (not just a private subsidy) available to at least some section of the population beyond the current Medicaid population.

There is not general agreement within the Democratic Party on universal single-payer as even a long-term goal. The currently dominant neoliberal faction of the Democratic Party supports a public option as a long-term component of healthcare policy to acheive universal access, but does not generally support single-payer as a goal, in either the near or long term.

> In general, the U.S. has the most progressive tax code in the OECD

As your own source notes, net of transfers and taxes, the US has one of the least progressive systems in the OECD.

> In the area of taxes, the Democratic Party is center-right in some ways but quite left win in others. Merkel has championed Germany following along with Trump's corporate tax cuts.

You seem to be really obsessed with the CDU as your measure of center-right parties, but AFAICT the CDU is to the right of most parties labelled center-right, not just in Europe, but even in Germany specifically (which has a fairly wide range of center-right parties.)

But, yes, its really only the dominant faction of the Democratic Party that is center-right, the "progressive" faction is center to center-left by European terms, and the whole (today, with the gains the progressive wing has made over the recent years considered) is probably more center than center-right; the "Democrats are a center-right" party was most true at the height of the Clintonian neoliberalism of the Democratic Party which as faded over the last decade or so and particularly since Bernie Sanders 2016 campaign reenergized the progressive wing, though it has still not become dominant.


> There is not general agreement within the Democratic Party on universal single-payer as even a long-term goal. The currently dominant neoliberal faction of the Democratic Party supports a public option as a long-term component of healthcare policy to acheive universal access, but does not generally support single-payer as a goal, in either the near or long term.

A big majority of Democrats support Medicare 4 All: https://www.kff.org/wp-content/uploads/2020/01/9394-Figure-3.... They support a public option somewhat more, but to me it seems more like they do so to soften the transition to a single-payer system. A “public option” wouldn’t be like the multi-payer systems of Germany, Switzerland, or the Netherlands. Since it would kill private competitors in the long run, it’s just a slower road to single payer.

Regarding taxes: netting transfers mixes up the tax system from the welfare system. As the article points out, our taxation is progressive but our spending is regressive. It’s a system designed to redistribute money from the rich to the middle class, not the middle class to the poor.

As to Germany, I use that as an example because it’s a large European country and I’m familiar with it. CDU has been moving left for the last 15 years: https://fivethirtyeight.com/wp-content/uploads/2017/08/hazar....

Like the above, various international party comparisons show Democrats moving left of center by 2012: https://fivethirtyeight.com/wp-content/uploads/2017/08/hazar...

As to social or religious issues, Italy or Spain would be more conservative in some respects. (Islam isn’t a recognized religion in Italy.)

The recent rise of progressives has moved Democrats sharply left in part because Europe has been moving to the right economically for decades. Low corporate and investment taxes and deregulation is gospel across the European center, but it’s disappeared among progressive Democrats. That wasn’t remarkable in 1975 but it’s remarkable today. Macron, for example, is campaigning on deregulation and a government takeover of Islam, and his major competition is to his right. Center left parties in France aren’t questioning the country’s fairly low corporate and investment taxes. Neither are those in Spain. Democrats (in particular Warren’s utterly cockamamie proposal) really stand out in that area as a throwback.

Green New Deal is a great example of this. It’s an FDR era jobs program. It stands in stark contrast to Europe, which is doing carbon pricing. Progressives seem to have developed an allergy to markets, and while the center isn’t there yet it’s not pushing back either.

I mean that’s before you get started on Sweden’s center-left party continuing to cut corporate taxes and partially privatizing social security.

Oh, I forgot about school choice. Democrats are far to the left compared to Europe in that.


> A big majority of Democrats support Medicare 4 All

Sure, a big majority of Democrats in the electorate do.

The description of the center or center-right nature of the Democratic Party is not a description of the party-in-the-electorate but the institutional party. In fact, it's frequently expressly contrasted with the views of the party-in-the-electorate to argue that the institutional party is a poor agent of its membership.

Turning to polls of the party-in-the-electorate to argue against the characterization is, at best, not understanding what the discussion is about and, at worst, the fallacy of equivocation.

> netting transfers mixes up the tax system from the welfare system.

In every state, taxes and the welfare system are already mixed up, and the division of function between them isn’t consistent fromm state to state. Viewing them separately miscasts differences in preferred vehicle with differences in preferred function. Or vice versa.


Both parties are liberal. Republicans deviate from liberalism when pandering to their religious base, and Democrats deviate from liberalism when adding to the social safety net and labor rights, pandering to their left base. Neither party takes their deviations from liberalism seriously, and both parties have an interest in not resolving those (wedge) issues to keep voters from drifting to the other party.


This is a strawman. The argument wasn't that no left-leaning people would treat things as property, but that most conservatives would. As such, you're not attacking the actual argument with your point.


It's not a strawman at all, as the original statement is clearly setting up the flip side of that argument - that left-leaning justices are less likely to do so.


Well, even then, showing one left-leaning justice with pro-property stances doesn't actually disprove that argument. Less likely things still happen some of the time.


Read Sotomayor’s and Kagan’s questions at 20-22, 52-58: https://www.supremecourt.gov/oral_arguments/argument_transcr...

I think the Justices were struggling a bit for analogies, but got the basic gist of the difference between implementing code and declarations.

The difficulty is that they have to think about this in terms of the relevant legal concept (merger) not the relevant technical concept (interoperability). You can copyright expressions of ideas, but not ideas themselves. Merger doctrine says you can’t copyright an expression of an idea if there is only one way to express the idea, because then the idea “merged” into the expression.

Do declarations merge into the idea of the implantation? In some sense clearly they don’t. If you have a set of functions that operate on an object, the convention in C is to put the object first and the parameters after. You “append, into this vector, this value.” In Common Lisp, it’s often reversed. You “append this value to this vector.” Both express the same idea—a command for appending a value to a vector—but there is a creative choice in the expression.

But you can think of the same idea at a lower level. “Calling a function named push to append an element to a vector where the first parameter is the vector and the second parameter is the element.” In that case, there is really one way to express that idea. Why would you think of the “idea” at such a low level? Because that’s what you’re doing when you’re interfacing with an actual API. The “idea” isn’t some abstract hypothetical function for appending, it’s the actual “push” function with parameters in the specific order.

The problem is that interoperability is not really something that goes to copyright-ability, but fair use, which comes after copyrightability. Dictating how you see the “idea” based on interoperability seems a bit like a phase ordering violation.


>> If APIs become copyrightable, what happens to any open source software the implements a proprietary API?

That has implications for language implementations too. Who would own the standard library for any given language? What about programs that call API functions? Are they derivative works too?

An API is necessarily functional first and foremost. It would cause chaos and some weird dystopian future if Oracle wins.


Another interesting take: Machine architectures expose an API, and it may become impossible for anyone but a chip manufacturer to distribute a compiler.


Machine architectures are very much copyrightable right? That's why Intel license x86 to AMD.

Thing is, for chip manufactures it makes no sense not to allow others to call this x86 API. Things could get dicier for other who try and virtualize a machine instruction set.


Isn't x86 licensing situation caused only by patents?


ARM has built a business around selling licenses for an instruction set, with multiple third parties implementing said instruction set in silicon.


ARM uses patents to prevent other implementations, not copyright law.


I don't see the similarity.

A compiler outputs machine code, it doesn't implement machine code.

Google's Java implementation implements Java APIs.


It might not matter to the law which side of an interface you're on, if your work is still clearly derivative (in the legal sense) of that interface design.


That sounds like a win for RISC.


It is usually in the interest of the designer of the API to have as many users as possible.

BUT in this case we are talking not of using part of an API (say the Math library to implement a physics engine is assembly and link it) but of reimplementing a whole language which has, as of today an when the events discussed took place (even if we agree to hate it) an owner.


>It is usually in the interest of the designer of the API to have as many users as possible.

When they first design and publish it yes, but Oracle didn't design and publish the Java APIs, they bought them after they had becomes very popular and widely used.

At that point they don't need to care about making it popular, it already is, all they care about is milking that existing ecosystem for every penny they can get. If future API publishers care about this they can just license out their API spec, but right now Oracle just wants to be able to squeeze whoever they can until the pips squeak.


I know, I know. But if the argument is abstract then we have to keep it so.


In a market-consolidating world this argument rapidly loses persuasive power.


> Who would own the standard library for any given language?

Require copyright assignment or a guarantee for royalty free use by any implementation. Standards committees already have to deal with hidden patent dependencies someone might sneak in so this would just be another bullet point on paperwork that should already exist.


The standard library is owned by the people creating it, and of course your work using the standard library is a derived work of that standard library.

For example, glibc is owned by GNU, and it is licensed under the LGPL, so you are allowed to dynamically link it without having to release your own code under the GPL (or compatible). This is all happening today.

The only projects that will be more seriously affected by this decision are WINE and similar - projects that are copying the API but not the implementation. Even here, it is very likely that WINE could win on Fair Use, since their copying is obviously done for interoperability.

Also, APIs are obviously creative human works, and their purpose is first and foremost usability for the end-user.


Making a drop-in replacement for interoperability for any library or API could fall victim under the current law.


But now if I write my own libc implementation, someone (who?) could come after me for violating their copyright on the libc api.


> who?

That's an interesting question. Perhaps K&R? Or maybe their employer? Or perhaps by now the copyright may be with ANSI/ISO?

But this does raise an interesting point, about who would own copyright on something that was not believed to be copyrightable for much of its history.


The current owner would probably be Micro Focus, from acquiring Attachmate from acquiring Novell from acquiring Unix System Laboratories from AT&T.


Hot stock tip!


The C standard library's API would belong to AT&T. Same with Unix syscalls. Glibc would be infringing.


> Supreme court judges just do not have the conceptual framework to properly adjudicate this.

It's why silly (and inadequate) analogies emerge:

"Justice Clarence Thomas compared Google's copying of the Java APIs to a football team taking a rival's playbook."


What really sucks is this was a perfect time for a lawyer to use Justice Thomas' analogy to better explain the difference. I would have tried something like:

"Close your honor, but let me expand on this further. Imagine instead that your opponent publishes their calls and they are regularly available to all individuals of the general public. However, while they may describe a call for going long, they do not give any specifics if the receiver starts from the left, center, right side of the field, how fast he should go, who should block for him, etc. They essentially are just assigning a call to a general concept of 'go long'. Now as a competitor team, I look through their publicly available calls and say "Hey, thats a good idea, we should have a call for 'go long' as well". However, in practice my team does start from the left, and then cut in the center of the field to receive the ball. This may, or may not be totally different then what my opponents choose to do when they call "go long" The additional benefit is if I transfer a new coach onto my team, he can use the call "go long" and even though the team accomplishes the goal, possibly by a different route, he can make the call to accomplish essentially the same thing."

Note: Not a huge sports guys, so perhaps my football analogy broke down a bit there, but hopefully you get the idea.


I think the playbook is just a bad analogy because it misses that point of what an interface is. It's the means of connecting two dissimilar mechanisms. A translation layer.

I'd have argued it's more like copyrighting doorknob placement (opposite hinge, at hand height) and operation (twisting) on doors vs. patenting a novel mechanism inside the doorknob.

A football playbook is more like the blueprints of the inside of the doorknob. Of course it's patentable if playbooks are patentable (I presume they are if considered works of choreography as in a dance).


I think the QWERTY analogy quoted in the article is perfect. QWERTY is on typewriters, computers, and smartphones. Same interface, completely different implementations. And this is technology that everyday people are familiar with.


It has always seemed to me that a good analogy for the API situation would be the design of typefaces (as distinct from a particular implementation of that design through, for example, instructions in a font file), which receives special treatment in US law and is not subject to copyright in that jurisdiction.

As far as I can see (but please note that I am not even in the US, never mind a legal scholar) the relevant US law is 37 CFR § 202.1 about “Material not subject to copyright” (https://www.law.cornell.edu/cfr/text/37/202.1). This enumerates several cases that are explicitly excluded from copyright protection. One is “typeface as typeface”, which was apparently interpreted as described above in a litigated case (Eltra Corp. vs. Ringer).

An argument has certainly been made, though I can’t immediately find the original source, that this exclusion is justified because of the utilitarian nature of a typeface design: allowing one party to control all use of it would be against the public interest, because ultimately that principle could allow for all printed communication to become controlled.

It seems to me that APIs fulfil a similar purpose. They are not useful in themselves, lacking a corresponding implementation. They are, however, an essential basis for standardisation, interoperability and communication between practitioners.

Under 202.1(b) of the law cited above, another class of works excluded from copyright protection is “Ideas, plans, methods, systems, or devices, as distinguished from the particular manner in which they are expressed or described in a writing”. I wonder whether a similar argument about the utilitarian nature of APIs as a specification distinct from its implementation could be made based on that.


Or compare APIs to the car interface: steering wheel + pedals. If one car manufacturer was able to copyright them, then what are other manufacturers supposed to do? The second one can use joystick for steering, and maybe a lever for braking and acceleration. The third one has to invent something even weirder.

Everybody loses: manufacturers, because they can't easily create competing products, and users, because they have to re-learn driving every time they change car brand.


But we are talking about copyright, not patents. So to stretch your analogy. Imagine I'm a door manufacturer, or maybe a manufacturer of tools for construction so that professionals can make their own doors. I create some kind of stencil that has the doorknob placement cut-out. And maybe a few variants with places for windows and such. The general idea of such a stencil might be patentable, even if the general standard dimensions are not. The tool is a unique idea (maybe). But we are talking about copywritten material. The specific stencil design, that you could photocopy is the thing in question.

And that is one of several arguments Oracle made, that api interface is a stencil.

I think I would agree the law supports that argument from what I know about it, copyright is pretty broad. But at the same time, I think that is perverse and we should change the law.


If I were Oracle's lawyer, I'd respond by saying that you can have the concept of "go long", but you can't literally name it "go long" because there was an act of creativity involved in mapping that name onto the concept of a receiver running far down the field. So you have to call it "go deep" or whatever.


It's not about the names though. It's that when you look at playbooks for both teams you see that the names of all the plays are identical, and under the same headings! And you come to the conclusion that the second team must have copied the names from the first teams playbook.

Such a thing might be considered fair use if the second team's argument was they indeed copied the playbook because they had a recruited some players from the first team and keeping the names the same made it easier for them during practice. But for now the judge is suspicious that they've come up with this explanation after the fact.


Yeah, I don't like it, but given my (probably poor) understanding of copyright, I don't see how Oracle is wrong here. It would be one thing if we were just talking about something like Math.max where there's really only 1 possible way to declare it; but it's the entirety of the API.


On a pure intelligence question the justices are likely top 1% or 2% among human populations. They also have disciplined minds that allow them to use their intelligence effectively.

It’s more likely the arstechniva writer failed to understand the point of the analogy.

Having just listen to the audio, it really annoyed me that Google’s lawyer kept saying “If we can’t copy this it would be impossible to write software.” And always left of the “in Java” part. Really fucking misleading.


> This might not just be a disaster for Google - it could be a disaster for software everywhere.

Not in the EU where there is precedence with SAP/R3 saying APIs are not copyrightable.


If you can't sell your products in the US, I think you're going to have a problem.


The tech world is in the US, not the EU.


Well the tech world in the US is about to end by all measures.


That's not really the court's responsibility. There is no legal definition of "interface" or "implementation". They're just trying to interpret a gray area in the law and it could come down either way.

Any real solution will have to be legislated.


> That's not really the court's responsibility.

Yes, it is.

> There is no legal definition of "interface" or "implementation".

There is a legal definition of what is included, and what is excluded, from copyrightability, and (though its quite fuzzy, in large part because it was trying to incorporate a fuzzy judicial doctrine grounded in the First Amendment into the statute) what is included, and excluded, from "fair use" even if it otherwise violated copyright.

The courts job is very much to test existing concrete things against those definitions.


"Any real solution will have to be legislated. " So true. Congress can amend the particular section of the code to explicitly exclude APIs from being copyrightable ... if they want to.


I thought Congress only existed to appoint judges.


Or approve executive appointees to create administrative law ...


Yes, this is, has always been, and always will be the case.


A certification group that allows a good marketing point could also achieve. Just making up a name, "Our APIs are certified by Open API Association" might encourage developers to develop with A given company's API.


So if Oracle implements a proprietary API in GPL software does that mean that all Oracle software is copyleft?


Little note: what you're really asking is whether the authors of GPL software would have grounds to sue Oracle for copyright infringement.

As another HN commenter put it to me when I made the same mistake: "The GPL is not viral." If one party breaks the terms of the license, then normal copyright goes into effect.


This is a great question. In the last ten years of this shenanigans I’ve not seen it asked. As an owner of GPL’d APIs, it’s food-for-thought.


> So if Oracle implements a proprietary API in GPL software does that mean that all Oracle software is copyleft?

No, not at all.

OTOH, it does mean if they implement a GPL interface in proprietary software it does mean that they are in violation of copyright (barring a fair use defense) and the GPL, potentially triggering the loss-of-license provisions of the GPL and other legal consequences.


Oracle will no longer be able to use an SQL based language as IBM will have ownership of the API.


I wish I could believe this is how it would actually play out in reality.


Supreme court judges just do not have the conceptual framework to properly adjudicate this.

Justice Breyer's QWERTY analogy was pretty good.

Also, Google's lawyer is supposed to supply that framework in oral and the brief.


If APIs become copyrightable, we just have to change our strategy a little bit. Instead of making a compatible API, you write a program to modify other programs, which detects calls to the target API and transforms them to a shim that is not copyrighted, which can call either the copyrighted API or your new API.


There are two problems with that.

First, as colejohnson66 pointed out, that may be a derivative work. This will depend on how your transformer actually works.

I can't think of any way to do it that does not involve having access at run time to a copy of the copyrighted API. If that copy is part of the transformer, there is a good chance the transform is a derivative work.

If the transformer does not include the copyrighted API, instead getting information about it from some external source that the user must supply at run time such as via an input file describing the API using some sort of API description language then it is much less likely to be a derivative work. Well, at least if it somewhat general, working with several APIs described in that language rather than just working with the one particular copyrighted API.

Second, even if it is not a derivative work, the people who use it to make the shim might be infringing. Usually that would not be your problem (unless you do something like indemnify your users, which I'll assume you would not be insane enough to do).

However, you have to at least consider contributory infringement. If I infringe someone's copyright using tools I got from you, and those tools have no substantial use other than infringing copyright, you can be held liable along with me for the infringement.

As with the derivative work case, if you can make the transformer general purpose so that it can be used for transforming APIs that are not copyrighted too, you should be able to avoid contributory infringement.


I'm thinking of a static analysis engine. "Look for function calls like this and replace them with calls to this shim and/or my new API." I am not sure how the shim could possibly be infringing as it would be my original work. (All new method names, all new module organization, all new namespaces. Maybe even different argument types, where possible.) There would be a version of the shim that would delegate to the original API, and another that would delegate to mine.


I don’t think that would work as it could be construed as a derivative work


Doubt it. But since I don't have millions of dollars or a need to litigate this in court at the moment, neither of us will know any time soon.


> This might not just be a disaster for Google - it could be a disaster for software everywhere.

This case has been a ticking time bomb, where the law is to decide whether ideas are patentable. Extremely scary news, seeing it go badly.


> This is not going to end well

relax, its 2020 so now lets just enjoy how "crazy" this whole thing can go to and finally if Oracle wins... we RIOT, won't end well alright


APIs being copyrightable doesn't actually harm implementations of APIs that fall under fair use. (Fair use exemptions specifically apply to copyrighted things.) Interoperability is fair use. And things like something being non-commercial, such as a lot of open source software, is a major factor in determining whether or not usage is fair. Things like WINE or NES emulators or the like would fall very comfortably into fair use.

It's nowhere near as world-ending as Google's public policy team would like you to believe. But given that Android is not fair use (it's not interoperable, they just wanted to glom on the popularity of the platform), it sucks for Google.


Sorry, but this is not an accurate summary of the state of the law. Whether Android's implementation of Java was fair use is one of the questions the Supreme Court is considering. Google was absolutely trying to achieve interoperability with Java, so if Google loses it would make it more difficult for others to claim fair use. Fair use is complicated so others might succeed where Google failed, but a loss for Google would be bad news for interoperability generally.


> Google was absolutely trying to achieve interoperability with Java

I don't think this is such an easy argument. Google's interest was ultimately the bottom line.

Without discussing the copyrightability, from a strictly monetary perspective, APIs are product that, in this case, has a very high monetary value (market share == $$$), and Google chose it for this very specific reason (developers == market share == $$$). Again, I don't imply that copyrightability is good or bad, but the entire matter has been about money, and strictly from that perspective, ownership has a sense.


I don't believe that Google was really trying to achieve interoperability. If it was then they would have passed the Java Technology Compatibility Kit (TCK) tests. Other companies did that and are legally in the clear for their Java implementations. Why didn't Google?


Because they were too arrogant to do so? Note that Microsoft was eventually forced to make peace with Sun over Java after a long lawsuit.


I'm not privy to Google's management thinking but I suspect they made that decision to save time and hit a market window. Android originally used the open source Apache Harmony Java implementation which didn't comply with the Sun (Oracle) Java license for the TCK. If Google had dropped Harmony they would have had to either write their own Java implementation from scratch or license one from another vendor like IBM. They had plenty of resources to pursue those other options but either one would have take more time and allowed Apple to build a lead in the smartphone market. So Google stuck with Harmony and now they're facing the legal consequences.


>Interoperability is fair use.

That seems incompatible with the text of Section 107, which includes the amount copied as a factor for determining fair use. The more compatible your implementation is, the more you have to copy, so the logical end of this reasoning is that Android's implementation of Java would be fair use if it had copied all of the API, not just a subset.


Which it did under open license starting from OpenJDK 9. Oracle argues probably this has given Google an advantage, which is, in technical terms, bollocks, as Oracle was not making an operating system.


Things like WINE or NES emulators or the like would fall very comfortably into fair use.

That is not at all clear.

But given that Android is not fair use (it's not interoperable

How is it not? Lots of code written for the JVM will build and run unmodified on Android. Not 100%, but WINE isn't 100% compatibile either.


>And things like something being non-commercial, such as a lot of open source software, is a major factor in determining whether or not usage is fair.

Why it should? It would mean that implementing commercial Java runtime without Oracle license is not possible?


> > And things like something being non-commercial, such as a lot of open source software, is a major factor in determining whether or not usage is fair.

> Why it should?

Because its explicitly a factor, in the statute, for fair use analysis.

> It would mean that implementing commercial Java runtime without Oracle license is not possible?

Maybe, maybe not. If Google loses on both copyrightability and fair use, the entire case law on API fair use will be one negative instance. We might also get a more specific test articulated in the ruling, but we have no idea what that test would be now, so its hard to speculate (well, easy to speculate, but hard to judge which speculation is more accurate) what the impact would be on any other use.


Whether usage is commercial or not is a big part of the first factor in the fair use test: https://en.wikipedia.org/wiki/Fair_use#1._Purpose_and_charac...

You could arguably implement Java without a license from Oracle provided you were using the GPL, as OpenJDK is released under the JDK, and presumably includes the entire Java API. The problem for Google, of course, is OEMs would've balked at being forced to open source all of their proprietary modifications to Android.

Wikipedia says the OpenJDK was released in 2007, so Google could've legally used the Java API under GPL terms, but chose not to, and also chose not to pay for Java licensing.


>would've balked at being forced to open source all of their proprietary modifications to Android

OpenJDK have linking exception, so it doesn't apply. In fact Android uses OpenJDK now. It also makes Oracle case looks phoney, suing Google for Java usage while having released freely available OpenJDK.

But that's not the point, I think implementing API/ABI/protocols/whatever should be allowed whether or not vendor wants it. There are many reimplementations of competitors APIs, and ruling in favor of Oracle would basically break that. Under that interpretation Wine would be in danger too, as significant part of Wine development is commercial (by CodeWeavers making their CrossOver product).


> You could arguably implement Java without a license from Oracle provided you were using the GPL

So, as long as you are using it under the license Oracle offers it to you under, you could use it without a license from Oracle?

I think that is inherently self-contradictory.


OpenJDK is not released under GPL, but a much more permissive license.


The OpenJDK license is GPLv2, with the ClassPath Exception:

https://en.wikipedia.org/wiki/OpenJDK


> Interoperability is fair use.

What about improving the API? E.g. some languages may be mostly but not 100% compatible with existing languages and provide more or less the same API but not be 100% the same - both the in the runtime library (API) and the language itself.

For example Free Pascal is mostly compatible with Delphi but not the same and its runtime library is mostly the same as Delphi but also not the same.


Copyright already accounts for "derivatives." The GPL uses this to prevent proprietary forks for example.


I saw one question from Gorsuch quoted in reports about the arguments that bothered me: "What do we do about the fact that the other competitors, Apple, Microsoft ... have, in fact, been able to come up with phones that work just fine without engaging in this kind of copying?"

macOS and iOS (and indeed Apple itself) would not exist as we know them today, if at all, without very liberal cross pollination of APIs. In a parallel universe where APIs are copyrighted to the extent that Oracle wants, GNU would not exist. Konqueror and Safari could not use Microsoft's XMLHttpRequest(). The list goes on and on.


You say GNU would not exist, which is true in it’s current form. But that doesn’t mean we wouldn’t have had a Unix-like (although not strictly compatible) free system.

It’s also true that Safari couldn’t have used XMLHttpRequest unless Microsoft had licensed it. But that might have sped up the incorporation of an open standard alternative.

It would definitely have created a different history to the one we have now if APIs were assumed to be copyrighted, but it’s not reasonable to just assume that everything that has been based on them would not have been built some other way.


> Unix-like

You mean something that implements all the APIs that the Bell Labs never licensed to anybody?


No, I mean something that has the architectural qualities comparable to Unix, which has been done multiple times.


> have, in fact, been able to come up with phones that work just fine without engaging in this kind of copying?

Which, of course, is completely false. All of them have many, many reimplementations of open APIs in their many layers of software. It's just that no one was stupid enough to copyright those APIs and try to sue someone else for implementing an API before.

Oracle's actions threaten to upend the common understanding of software ecosystems and throw everything into disarray.


I thought Goldstein gave a satisfactory answer here by making the analogy to the difference between English and French.


Darwin copies Unix APIs from AT&T. They have engaged in this kind of copying. They just haven't been sued about it.


The fact that both OS X and iOS do this copying is specifically called out in the amicus brief signed by Steve Wozniak.


Maybe we get lucky and the SCOTUS ruling comes down against uncopyable API's. But while that seems questionable at the moment, it's important to remember one thing: there is always an "out" even in the "nuclear option" case and that is "have Congress change the law".

It seems to me that now is the time to start thinking about putting together a mass effort to get Congress to change copyright law, to establish clearly the semantic distinction between API and implementation, and to make it clear that the API part can be "copied" in the name of interoperability.

No, that's not an easy thing to accomplish, especially without armies of highly paid lobbyists, but I'm guessing that a few big companies - like cough Google cough might be interested in supporting such an effort.


+1 to this.

More generally, I feel that one of the main reasons the Supreme Court is such a powerful body nowadays, and why cases like this are considered so important, is because Congress has become so ineffectual. We have internalized the idea that the Supreme Court has the last word on every matter before it. But it emphatically does not. The Supreme Court is only the last word on constitutional cases. So many decisions - this one, certain decisions on gerrymandering - are completely overturnable by Congress.


> The Supreme Court is only the last word on constitutional cases.

No more so than statutory or any other cases; just as regulation can be changed by the executive and statute can be changed by the Congress, the Constitution can be amended by the process set out in the document itself.

The Supreme Court is the ultimate arbiter of the current state of the law, but no law that it applies, including the Constitution, is immutable.


More generally, I feel that one of the main reasons the Supreme Court is such a powerful body nowadays, and why cases like this are considered so important, is because Congress has become so ineffectual. We have internalized the idea that the Supreme Court has the last word on every matter before it. But it emphatically does not. The Supreme Court is only the last word on constitutional cases. So many decisions - this one, certain decisions on gerrymandering - are completely overturnable by Congress.

I agree 100% with those sentiments.


I observe the 1978 report that recommended that computer programs should be subject to copyright included the following recommendation in its conclusion:

« Any legislation dealing with either computer or photocopying issues enacted and based upon these recommendations should be subject to a process of periodic review. »

http://digital-law-online.info/CONTU/PDF/Chapter5.pdf


Man, wholesale copyright (and patent) reform towards a more restrictive view wrt what is copyrightable and duration would be like Christmas for me.


>but I'm guessing that a few big companies - like cough Google cough might be interested in supporting such an effort.

Microsoft also supported Google in this case.


And Apple did not


Unless the democrats sweep I see little to nothing to imply that anything of note will happen in congress for the foreseeable future.


This isn't just a disaster for Google. This is a disaster for competition in the tech industry and a disaster for consumers. If APIs can be copyrighted, what's next? File formats? On-the-wire protocols?


Why not screw heads and threads, too?

Apple wouldn't have to just use hard-to-find screwdrivers, they could just make a new screw shape, copyright the design, and then it'll be even harder to open their gadgets.


Actually screw heads are copyrighted, see :

https://en.wikipedia.org/wiki/List_of_screw_drives#Robertson


Copyrights are not patents, and your link asserts that the Robertson screw design is patented, not copyrighted. The Google vs. Oracle case is about copyrights.


A relevant point here that patents expire in ~decade or two, whereas copyright expires when Disney tells you it can expire (which is never).

Not that expiring in a decade or two would help in the area of tech where stuff moves so fast.


It helps. Didn't MP3 patents expire recently? MP3 is far from obsolete.


Your thing of the MP4 patents.


It was 2017 that the last MP3 patents expired, which is pretty recent, IMO. It was patented on the encode side about 10 years longer than on the decode side.


Yeah, I remember having to use nonfree repos to enable MP3 playback on my Linux machine back in the day. I could not remember when it stopped being the case, but 2017 seems about right.


Procedural trivia time: the Google vs. Oracle case is about copyrights, but if it weren't for patents it would not be at the Supreme Court.

Originally, Oracle sued for both patent infringement and copyright infringement. When they appealed, the appeal went to the Federal Circuit because of the patent issues, and so the Federal Circuit ended up handling the appeal of both the patent issues and the copyright issues.

If the case been just a copyright case, the appeal would have went to the 9th Circuit.

If it had taken that route, the 9th Circuit would have almost certainly upheld Judge Alsop, and the Supreme Court almost certainly would not have taken an appeal from that.

The Federal Circuit is suppose to apply the precedent of the circuit that the case came from when deciding issues like the copyright issues that are only before the Federal Circuit because they tagged along on a patent case. In this case, that means they were suppose to follow the 9th Circuit precedent.

I think we need to change the way the Federal Circuit works in cases like this. If they decide issues that got there via tag along, I think the appeals path for those issues should be to the circuit whose precedent they are suppose to be following. In this case, that would mean that the copyright issues should go to the 9th Circuit after the Federal Circuit.

The current way can lead to a situation where in a given circuit you can effectively have different laws for X depending on whether or not someone sues you just over X, or over X and patents.

If sued over just X, the law on X is what the circuit court of appeals for your circuit says. If sued over X and patents, the law on X is whatever the Federal Circuit thinks it is. Those can diverge, and then you have the situation that plaintiffs can choose what they want--sue just for X to get their circuit's law, or toss in a throwaway patent claim to get the Federal Circuit's law.


> Procedural trivia time: the Google vs. Oracle case is about copyrights, but if it weren't for patents it would not be at the Supreme Court.

Sure it would.

Unless they decided not to take it; it was coming to them one way or another. It's not like either side was going to take a loss lying down.

But the Seventh Amendment issue probably wouldn't be in it if the patent issues hadn't had it going through the CAFC rather than the 9th Cir.


Right. Google's lawyer brought up the distinction at least a couple times, saying that the novelty of the API might be patentable but not copyrightable.


If that happens the bits will be on alibaba before the product is shipped to media.


The unimpeachable approach for the software industry is to setup consortiums to define open standards for APIs, file formats and wire protocols, instead of relying on replicating the most popular proprietary ones. In fact there already exist such consortiums, for example https://www.w3.org, tasked with standardizing WWW, or https://www.cncf.io for cloud computing standards.


Google has had 6 years to show this disaster and yet they could not list a single example of it happening.

The world is going to be fine.


> Google has had 6 years to show this disaster and yet they could not list a single example of it happening.

How? For that to be true, there would have to be binding precedent applicable outside this case. But Federal Circuit decisions on legal questions—for instance copyright—outside their special subjects (patent claims is what got this case before them) do not create binding precedent for any lower court.

Had this not gone through the Federal Circuit, and had it been the Ninth Circuit (which otherwise would have been the court to hear the appeal) that had ruled, sure, you could then say “Hey, look, there's not some apocalypse due to this ruling happening in the Ninth Circuit, so it must not be a real problem”. But the Federal Circuit decision, notionally applying Ninth Circuit law, has no binding effect on any other court in any other case, so of course it hasn't caused an apocalypse. Precisely because no other court, trial or appellate, has ever held APIs to be copyrightable.


The courts ruled 6 years ago.

There was nothing stopping anyone from capitalizing on that ruling and moving forward with bring this "disaster"

This was brought up during the oral arguments and Google did not have a great answer.


The linked Ars article is excellent, and it's a reminder of how much better Timothy Lee is at covering these issues than the people who cover them for major newspapers. For example, compare his article to the Times article on the same case: https://www.nytimes.com/2020/10/07/us/supreme-court-google-o....

It's not enough to say that Lee is writing for a specialized audience while the Times caters to a more general audience. Even after accounting for that, Lee's coverage of the case is superior.


Worth noting Lee wrote for WashPo. As did Krebs.

I suspect this has less to do with reporters than editors.


> This is a widespread practice in the software industry. Oracle, for example, re-implemented Amazon's S3 API so that customers who built software for Amazon's cloud platform could easily switch to Oracle's rival cloud platform.

Talk about cutting off your nose to spite your face.


Hope Amazon sues Oracle over this and uses Oracle's arguments against them, claiming judicial estoppel.


1. That would probably be considered fair use.

2. The amount of money Oracle would get back (and going forwards) in licensing fees for Android would probably dwarf most financial prospects from any API reimplementations that might be at risk.


> That would probably be considered fair use.

Because APIs have never before been considered copyrightable, unless Google wins on fair use in this case, we will have exactly zero on-point case law as to when an API reimplementation is fair use.

Speculating on what would be considered fair use in API re-implementations in that case would be extremely speculative.

> The amount of money Oracle would get back (and going forwards) in licensing fees for Android would probably dwarf most financial prospects from any API reimplementations that might be at risk.

Maybe more than existing ones, but is it worth more than the entire strategy of using API reimplementation to stay in the game against Amazon, who is far and away ahead in cloud? Is losing that worth a parasitic claim on Android until Google replaces it with something not subject to that claim?


Google already switched Android over to OpenJDK in 2016, which they have an absolutely ironclad right to use without paying for. If Oracle does end up winning the payout will be for the period of 2008-2016 when Google was using their own home brewed Java implementation.


Unless this ruling becomes applicable to the Java bytecode format, in which case they can go after Dalvik and ART (the latter of which is still in use).


> That would probably be considered fair use.

Why would that be considered fair use, and Google's not be? As far as I can tell it's exactly the same situation.


Google wasn't interested in interoperability. A big part of why they allegedly walked away from Java licensing was Oracle wanted Android to actually run Java apps, and Google wanted to basically fork off, but just benefit from the developer community around the Java language.


Can't you use many Java libraries on Android? Interoperable doesn't mean "exactly the same".


There were a number of Java standard library incompatibilities that various libraries have had to adapt to, until they switched the library implementation to OpenJDK.


Interoperability is not limited to executable-interop: it includes developer knowledge, libraries and tooling - which are exactly the reasons Google chose to use Java (the language). Dalvik checked all those boxes, without being bytecode-compatible with the JVM


Because Oracle implemented the S3 API in order to be compatible with Amazon, while Google didn't implement the Java API in order for Android apps to be compatible with server-side Java code.


Both reimplement for compatibility at some level in the toolchain, why fair use analysis would privilege one level of interoperability over another is purely speculative; arguably, the kind of user-interoperability Oracle does is more of an assault on the market for what is reimplemented (that's the whole purpose of Oracle doing it) than what Google is doing, and that's a factor that weighs against fair use.

It is important to realize that since APIs have never been viewed as copyrightable previously, we also, if Google loses on both copyrightability and fair use, will have zero case law that is directly on point for any API reimplementation being fair use. Speculating on the law that will develop in that area is fun, but almost by definition not strongly grounded.


How do you figure that it would be considered fair use in one case but not the other?


To me the best explanation of an Application Programming Interface (spelling it out on purpose) is really the comparison with industrial machinery. It's really the switches, knobs and levers of a machine that you use to make it do something. I get it that an API being textual throws non-technical people off. But for a programmer functionally there's not much difference between a physical object, like a steering wheel, and some API call to invoke. They are both just something you use to interact with the underlying system. Hence the term.

It's sort of perplexing that Google would send someone who can't explain this point of view well.


They did. In legal parlance, that's a method-of-operation, and the relevant case law was Seldon(?). In which someone wrote a book on double entry accounting, then sued someone for infringement of their forms. The process of using a two column form couldn't be copyrighted, since that would essentially be a patent, and the Court determined a book teaching you how to do a thing implicitly grants license to do so without jeopardy of infringement. API's represent the documentation and actuators to make a machine do it's thing, therefore, both by test of "is it a control or thing allowing one to control another thing?" (Method-of-operation in common parlance) or "is it a communicative work teaching you to how to operate a specific process?" It passes muster.

I thought that was rather straightforward.

What wasn't straightforward to me was Oracle trying to argue that somehow, it makes sense that everyone should be forced to write their own language runtimes, and that somehow you can separate Java the language and virtual machine from the entity hierarchy, or that that is even a tenable state of affairs. Goldstein should have been slamming the "in Java" point hard.

Further, why was no one arguing that programming languages themselves are the front-end manifestations of interoperability by converting high level linguistics down to machine code?

This isn't hard.


Exactly. It would be like a company copyrighting the shape of its proprietary replacement parts, and then suing another company for providing 3rd party replacement parts.


To me, it's more like copyrighting the control placement in a car. Nobody else can use accelerator on the right, brake on the left? What's that going to do to drivers? That's Google's argument.


It is absurd that "judges" should be in the position to judge issues which they have no understanding of. I would bet that at least some of the members of the Supreme Court do not even know how to check and send email. In the same way they depend on others to perform basic and advanced computer tasks, they should depend on a "jury" of tech experts to filter the cases and provide suggestions or hopefully reasonable analogies to concepts the judges can comprehend.

But now, on the topic of copyrighting APIs... it's stupid, and it's protectionist, and it's the kind of thing a company does when they can't compete or want to try to block competition. Most types of copyright are bogus for the same reasons. Not only is there the strong possibility of more than one person coming up with the same idea at approximately the same time, in different places, but very few ideas are truly unique or revolutionary. Instead, it becomes a race to see who can copyright (or patent) something first - either defensively or with future hopes of preventing competition or extracting payment from a competitor.

If modern copyright and patent law had always existed, humanity would be decades or perhaps centuries behind where it is now.


I find it frustrating that, say, Kavanaugh can go ahead and imply that all these 83 notable people in your field are having a knee jerk reaction but the sky isn't falling. Why does he think he has any better understanding than 83 notable computer scientists?

https://www.supremecourt.gov/DocketPDF/18/18-956/128391/2020...


I don't think that's what Kavanaugh was doing. If you're thinking of taking those 83 into account in your ruling, but you aren't exactly sure that they're solid, you ask a question: Hey, Google, explain to me why these are important. It doesn't mean that he's dismissing them. It is at least as likely that he's considering relying on them, and wants to have a solid justification for doing so. (Remember, Oracle also claimed that the world would end if the court decided for Google.)


Fair enough. I hope that was indeed the case. I also think that Google lawyer went into legal technicalities with merger doctrine, etc. (which I don't understand) without trying to provide real life analogies (with all their caveats) which some justices tried to do instead.

One analogy that comes to my mind is that the steering wheel, gas and brake pedals, hand brake, etc. are like APIs of a car and are implemented differently in a gas car vs. an electric car. It makes sense for an electric car company to stick to that API rather than replace the steering wheel with a joystick or buttons and have all drivers learn this new method to drive a new car. It would've made more intuitive sense


You are describing Supreme Court clerks with your first suggestion. https://en.m.wikipedia.org/wiki/Lists_of_law_clerks_of_the_S...


I find it hard to believe that even a top performing law school grad would be a subject matter expert comparable to a 5 or 10+ year developer for this topic.


(speaking as a software developer) this dramatically underestimates the intelligence of top lawyers relative to average software developers, and also misunderstands the facts of how law works (the subject matter expertose required is still mostly in law rather than in software development).


Intelligence is not equivalent to experience. A very intelligent person might be able to consume and comprehend information better than a normal person, but they will still not understand some nuances and subtleties that only come from lengthy firsthand experience.


A great deal of (conflicting!) SME testimony has already gone into this case.


I'd highly encourage anyone interested in this case to hear the oral arguments for themselves, you can listen to them here: https://www.c-span.org/video/?469263-1/google-v-oracle-ameri...

While I believe that it would be better for society if the court sides with Google, I personally think that APIs can be a creative work, and thus would have copyright protection under the law. However one of Google's arguments is that Oracle is trying to use copyright to acquire a patent-like right, referencing the case of Baker v. Selden[0]. Despite being from 1879(!) I found this case to be especially relevant and I'm quite interested to see how the court will consider it into their opinion.

In his arguments, Oracle's lawyer argues that declaring code is not distinguishable from implementing code and thus deserves all the same copyright protections. As a programmer I find this argument quite unconvincing, as there is clearly a technical distinction in many systems, see: .h files, dynamic linking, etc.

[0] https://en.wikipedia.org/wiki/Baker_v._Selden


> This is a widespread practice in the software industry. Oracle, for example, re-implemented Amazon's S3 API so that customers who built software for Amazon's cloud platform could easily switch to Oracle's rival cloud platform.

Oracle themselves are doing it, could someone with a better legal mind explain to me how this doesn't make the case simpler to decide?

Is it that they're saying, it should be illegal but since it is not we are playing the game by the current rules, but we hope to change those rules?


They are probably thinking that they could negotiate licenses with the other big companies easier than any startup could, thus locking out a lot of competition.


Yes, I am sure Amazon will be happy to license their S3 API to help their customers migrate over to Oracle's cloud product. I think not! :-P


I'm not saying they are right. But Oracle has a tradition of thinking they are _very_ important and others would be daft not to cater to them.


As far as I know, Amazon isn't objecting. So, Oracle can say: we're "doing it" with permission.


If this case goes the wrong way Oracle may find itself the subject of a lawsuit.


They probably figure they'll make more from this one than they'll lose to Amazon.


They surely know that. Java is a bigger money maker for them than cloud. (Large parts of amazon's cloud are implemented in java.)


Isn't OpenJDK the standard implementation of Java these days? Why would Amazon be using something different?


I wonder if Oracle winning would reinvigorate software developement - by which I mean, maybe the resulting fragmentation would leave a lot of room for new ideas to be developed.

e.g.: if this court case was decided before Google made Android, then Google would have had to use something other than Java to do it and they wouldn't have been able to attract such a large developer base to make apps. Maybe they would have come up with a new language, or reused whatever else was viable at the time. But, maybe their OS wouldn't have been so overwhelming in its popularity and other OSes, like PalmOS and the windows phone OS, could have remained alive today. I think there's a lot of people, maybe the majority, who would agree that Android's UI was inferior to one or both of those alternatives.

e.g. #2: looking to the future, the resulting fragmentation could mean that even new OSes will have to be developed (edit - since even kernel APIs could be covered by copyright). That could be pretty bad for open source and hacking in general - except that as another poster has pointed out, closed-down software might turn out to be pretty useless compared to open-source. Maybe Oracle winning could be a really good thing for reinvigorating the development of new paradigms in software.


Fragmentation is almost never a good thing and it's certainly not a good thing in this case. Allowing developers to use the same knowledge, the same interfaces, the se languages across systems means that consumers benefit. Having a de facto standard is good for everyone, and arguing that there is less innovation in programming because you don't own the rights to function names is ridiculous.


Seems like it could be compared to breaking up a monopoly. When there's one player in town (Java & Android in the two examples I used), any competing ideas never get a chance to succeed: we're still using variations of Java, probably at this point for historical reasons, and Purism etc. is having a real rough go of it. Look at the failed attempts at competing OSes that various phone manufacturers put out. There were some duds, but I mentioned two that could have given Andriod a run for its money if there were more fragmentation in the market - and I think that would have been better for consumers.

> arguing that there is less innovation in programming because you don't own the rights to function names is ridiculous

I applaud the rhetorical flourish, but I think it misses the point. It's not the cause of the fragmentation, but the fragmentation caused by the lost rights that improves the innovation.


Let's take your proposal further and let's say we have 20 different languages (some even with non English characters), runtimes, compilers, build systems, UI guidelines, etc will uniform distribution across the world. So even if you want to publish a software for your home country you'll only be able to reach 5% of population with any single tool chain.

Are you willing to learn all those 20 different language/runtime/tool chains?


> Are you willing to learn all those 20 different language/runtime/tool chains?

No, and that's exactly my point. Because it would be impossible to support everything, developers and corporations might have to aim for more limited reach. I imagine that would lead to a situation where we have 20 different widely supported kernels, 20 different up-to-date web browsers, 20 different modern OSes, etc. I would love to be able to choose from such a diversity of software alternatives - wouldn't you?


I don’t see this resulting in 20 different web browsers or kernels or OSes that are anywhere near as good as the ones we have today. Making even just one is a shocking investment of resources and a massive ongoing maintenance responsibility. Many, many human lifetimes have gone into building something like Chrome. Wishing that this herculean effort was forced to be duplicated 19 times over just so that you could have alternatives to choose feels kinda perverse.


Talking about the complexity of modern software might be a tangent. However.

I think that if time and effort were limited by this fragmentation, we would find that we're able to do just fine with browsers that have fewer hours of effort put into them. The current range of second-tier browsers have a ton of strange and interesting ideas about them, but because the web standards they have to support are so complex they simply can't support much of the modern web. I imagine that those standards would be written much more conservatively if the writers knew that it would be impractical for anyone to implement them.

> Wishing that this herculean effort was forced to be duplicated 19 times over just so that you could have alternatives to choose feels kinda perverse.

There is absolutely no reason for you to get personal.


Having too many equally dominant options for computing platforms might sound good at first but in practice it means effectively no software is portable and the whole industry becomes inefficient as a whole with people doing redundant work most of the time.


> I wonder if Oracle winning would reinvigorate software developement

This is a future I like to envisage as well. New programming languages (for example), struggling for traction, might feel obliged to clearly open source their APIs, to demonstrate their openness. Corporates, tech giants etc. might in turn gravitate towards such more-open platforms, leading to a virtuous circle of innovation and steady migration away from technologies that try to use their APIs for extortion.


...or it could mean that we'd all still be writing COBOL on OS/360.

It's a terrible idea.


Breyer might be my new hero:

In fact, a couple of justices did a better job articulating Google's position than Google's own lawyer.

"It's like the QWERTY keyboard," Breyer said in a question to Oracle's lawyer. "You didn't have to have a QWERTY keyboard on typewriters in the beginning. But my God, if you let somebody have a copyright on that now, they would control all typewriters, which really has nothing to do with copyright"


> Jonathan Schwartz's (CEO of Sun when Google re-implemented the Java APIs):

> "Google's lawyer, Robert van Nest, asked Schwartz whether, during his tenure at Sun, Java APIs were considered proprietary or protected by Sun."

> "'No,' Schwartz said in explaining the nature of open software. 'These are open APIs, and we wanted to bring in more people...we wanted to build the biggest tent and invite as many people as possible.'"

I feel like I would raise this fact repeatedly, if i was trying to make my case.


I would too, but I assume the legal team has more experience with what points tend to matter in court and that “what the previous owner would have done” must not be one of them.


This has been brought up many times in many of the cases. IIRC, it has repeatedly been ignored as not an official statement (same w/ his past blog posts) and that the original intent is unrelated to whether they are protectable.


IANAL, but it's surprising that the original intent, or the manner in which a product was sold, would not matter. That means a company can trick people into an ecosystem by lying about their licensing terms, then suddenly pull the rug out?


« For decades prior to Oracle's lawsuit, most people in the software industry assumed that APIs couldn't be copyrighted. »

Well, what were they supposed to assume?

It's shameful that it's been 40 years since computer programs were explicitly protected in the US under copyright law, and this remains an unsettled question.

This situation is an extremely poor advertisement for the practice of passing vague laws and letting their boundaries be settled over time by court cases and precedent.

It's painful to have to listen to lawyers argue by an analogy between function declarations and Harry Potter chapter titles.


This is not good...not good at all!

If Oracle wins, to me with zero knowledge around copyright laws and legalese topics, means small to medium companies will close down out of fear of getting sued for using or implementing a competitor's APIs.

Not only that, it feels like the whole technological "civilization" will collapse after this and I'm not exaggerating, because thousands of people will lose their job simply because companies will prefer to close down than go to court with huge companies the size of IBM, Amazon, Alphabet, and Oracle to name a few, and that thought alone lead to financial meltdown...as if we didn't have enough problems already with the pandemic!

If we continue like this, it would feel like living in "Minority Report", that we could get sued for simply thinking about implementing a competitor's API!

On the positive side, I'm quite curious to see where this could go.


This is an overreaction.

We already are in the state you describe, except for patents. The doubly linked list is patented [0]. Selling something over the internet was patented [1]. The list could go on and on.

Every major software company has so many patents that they could find an infringement in almost any software company.

Why hasn't this happened? Because, like copyright, someone needs to actually bring suit. That doesn't happen that often. It happens more often with patents in the form of patent trolls actually, and there's no reason to believe api copyright suits would happen more often than patent suits... I think api copyright suits are actually going to be less lucrative and harder to prove on average.

So yeah, it seems like the current state of software patents is already far worse than APIs being copyrightable would be, and yet the sky is not falling, civilization is not collapsing, and business continues like usual.

[0]: https://patents.google.com/patent/US7028023B2/en

[1]: https://patents.google.com/patent/US5715314A/en


So why enable further madness when the current system is already dysfunctional?


I'm not arguing for oracle's case here. I'm not enabling the system to be more dysfunctional.

I'm merely responding to the parent's post that is interpreting a worst-case scenario that is vanishingly unlikely.

I'd appreciate if you didn't read into my comment an intent that isn't there. I am absolutely not arguing for "enabling further madness", and you asking a question that assumes I want that is not furthering this thread.


One question from a judge was that if “API is copyrightable” is bad, why didn’t we see sky falling in last 4 years since federal court decided so?


> One question from a judge was that if “API is copyrightable” is bad, why didn’t we see sky falling in last 4 years since federal court decided so?

Which was a fairly stupid question from a Supreme Court Justice, because you'd think that they know that decisions of the Court of Appeals for the Federal Circuit on issues not within their special subject matter jurisdiction (which copyright is not) are not binding authority on any lower court, as the lower courts (and, in fact, the CAFC itself) are bound by the actual precedent of the regional circuit court (even trial courts in, in this case, the Ninth Circuit, whose law the CAFC notionally was applying in its Oracle v. Google decision, are not bound by the CAFC ruling, only by decisions actually issued by the Ninth Circuit or the Supreme Court.)

So there is currently no binding precedent applicable to any federal trial court that APIs are copyrightable, which is why the sky hasn't fallen.

You would think that, however much they might not understand APIs, Supreme Court Justices would be intimitately familiar with the appellate structure of the US federal courts.


Because the vast majority of tech companies disagree with the law, and were probably expecting SCOTUS to overturn the case. When they realize that they're leaving money on the table, then we're going to see claims and counterclaims all over the place.


well it would be funny if amazon starts to sue oracle.

https://docs.cloud.oracle.com/en-us/iaas/Content/Object/Task...

I mean even the freaking headers are the same which some could consider an implementation detail.


Oh yea, if Oracle wins Amazon is filing infringement claims against Azure, Google Cloud, Oracle Cloud, and probably others beside the very next day. Meanwhile MongoDB is going to sue Amazon for reimplementing their API. The real showstopper will be when IBM sues everyone who has ever implemented SQL support for a database. Copyright lasts 70 years past the life of the author, people would still be infringing on SQL to this very day!


actually that would be good for the market, since your courts really see, that the world is going down.


> it feels like the whole technological "civilization" will collapse after this and I'm not exaggerating

Well, the decision is binding on the US only so this is an exaggeration.


Where are the expert witnesses in this case?? Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion??

I put myself in their shoes, if I had never looked at a line of code I couldn't even start to imagine what an API vs real code is. I'd probably think it's some made up concept that Google is using to save money and circumvent the law.


> Where are the expert witnesses in this case?

Expert witnesses play a role in trials, they play no direct role in appeals where fact claims (to the extent they are reviewable at all, which is normally limited when, as in this case, there is a jury-trial-by-right, because otherwise you obviate the right to a jury trial, though its worth noting one of the issues in this case is that the Federal Circuit tossed aside the jury verdict using a standard which is not usually appropriate for review of fact questions in such a scenario) are decided by review of the trial record and, to the extent that the trial record is not sufficient, remand to the lower courts for further proceedings with legal guidance.

> Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion?

We expect the parties to have developed their fact claims at trial or, failing that, to be able to explain to judges why any issues needing factual evidence are insufficiently developed in the trial evidence such that if they were critical it would require remand (and the reason better be something like "we were improperly prevented by the trial court from presenting evidence" or "this is a issue that somehow was allowed to be raised for the first time on appeal so we had no opportunity to present evidence on it at trial".)


> Do we really expect judges in their 60s and 70s to understand basics of coding in order to come to the right conclusion??

Can substitute any field for "coding" above and come to the same conclusion.

Quickly getting up to speed on the terminology and issues of fields in which they have no formal training or first hand experience is a big part of the job description of being a justice.


I don't think so, coding is so different than it has ever been, and is a different paradigm that most other things. Take farming, for example. Fundamentally farming is 100,000 years old. Getting up to speed on modern methods is just adding something else to the stack and, while complicated, those methods aren't totally foreign for someone who understands what farming is.

Something like coding is so alien to a 70-80 year old it's basically incomprehensible. That won't be the case with us in 50 years when were that age because we understand it, but there will probably be other things at that point that are equally incomprehensible.


To play devil's advocate: Architectural diagrams/design specifications for physical buildings are copyrightable. The implementation is obviously whatever the builder does. But in general, I think that is a pretty close analogy to APIs and implementation code. APIs also capture some sense of overall system design as well. So that may lend further credence to support copyrights.


I disagree that the IRL analogy of API is architectural diagrams. A better analogy for API would be an agreement on how to communicate what needs to be done (and what has been done) between two persons. The aggregate effect of that over thousands of people is a working system, coordinated by the mastermind (programmer) who dictates the actual orchestration of the entire system.

If API is copyrightable, I'd love to be the first person to copyright the following API (and variations thereof):

  class Processor {
    void init();
    void process(...);
    void cleanup();
  };
If I get a nickel for every violation of that copyright...


I like the analogy of computer keyboards. The layout (QWERTY) would be the API, but keyboards differentiate themselves in numerous and substantial ways. It would be unworkable madness if each keyboard manufacturer was required to use a different layout.


My understanding is that QWERTY was developed to solve a mechanical problem with early typewriters in the 19th century (frequent jams). According to wikipedia the inventor spent 5 years developing it. I don't see why he shouldn't have been able to profit from that invention. The only reason we use QWERTY now is due to the fact that early non-mechanical keyboards were designed to be used easily by people who had trained with mechanical ones. If "licensing fees" for QWERTY back then had been an issue, manufacturers would have just used a non-copyrightable ABCD... layout, or paid for QWERTY. I don't see it as a disastrous outcome.


Copyright violation requires copying, and independent derivation is a valid defense.

Patents don't require proof of copying and are always infringed, even with no knowledge.

If you wrote that API, and I wrote that exact same API without having seen yours, you wouldn't be able to sue me for copyright violation.

All I'd have to show in court is that there's a decent probability that I independently created the same API, at which point we'd both have full copyright over our own (identical) APIs, and more likely it would be ruled un-copyrightable due to being too trivial / not creative enough.


Even if independent derivation is a valid defense, with Oracle setting a precedence, people would be taken to court all the time, and what is considered trivial becomes a matter of opinion. It won't be long before the whole situation devolves into automated takedown of GitHub code by big corporations.

Ideally, we shouldn't even have to go to court to begin with.


> A better analogy for API would be an agreement on how to communicate what needs to be done (and what has been done) between two persons.

Is that not what blueprints do?


Blueprint describes the thing that is to be built. API describes how two parties talk to each other.

I'd say API is closer to a protocol or a contract than it is to architectural blueprint.


Well a blueprint communicates from the architect to the builder/carpenter/plumber etc...


Then the blueprint is the contents of the communication, not the method of communication itself.

The blueprint would be communicated by mail or sneakernet.

You can copyright the contents of an email (indeed, I think they have an implicit copyright, don't they?), but you can't copyright the way in which emails in general are transmitted and exchange. (That would probably be a matter for patent.)


Not even remotely the same. Screw threads, hole sizes, width of timber etc ie. specifications are the same.

People make a big deal about beautiful apis. Almost all apis are simply functional. The complexity lies in the implementation not the specification.


API design largely determines whether a performant, correct implementation is even feasible within a given time frame. Setting aside whether or not developers can then successfully use the API to accomplish their goals.


Yep, it’s like patenting the ingredient list instead of the recipe. It ignores the process and says no ones allowed to cook any combination of fish, flour, potato, milk, and eggs.

The unique food might be fish balls, but it also covers fish and chips, and a million other things that could be done with that API.


Design specs like door sizes, sink arrangements etc are not copyrighted.

You're probably thinking about the reproduction of the design document, not adherence to the specifications that document describes.


Those are common things which are excluded. So maybe Google has some argument on the parts... Oracle has an argument on the whole.

https://www.aia.org/articles/26591-understanding-the-scope-o...

To quote:

"""Under the AWCPA, an architectural work is statutorily defined as “the design of a building as embodied in any tangible medium of expression, including a building, architectural plans or drawings,” and “includes the overall form as well as the arrangement and composition of spaces and elements in the design, but does not include individual standard features,” such as common windows, doors, and other staple building components. Accordingly, per the definition, while individual standard features and architectural elements classifiable as ideas or concepts are not themselves copyrightable, an architect’s original combination or arrangement of such elements may be."""


I guess the question is: is the API in question a blueprint, or a building code?

My intuition says that it's... somewhere in-between?


A building code is something different. It’s more like a requirement.


Staying in this analogy, aren't APIs more like pictures or verbal descriptions of the facade of the building?

An API spec will not (necessarily) provide you with any internal implementation detail. Architectural diagrams/design specifications very likely will do.


To me an API is more like a survey of the land. If the architect doesn’t know the survey, then the plans might not be compatible with the features of the land... but he could still try. The builder also doesn’t need the surveyors permission to build on the land, the survey is just a description of the land. Owning the survey / API doesn’t do anything to change anyone’s rights.


Therefore what, a block diagram of components? Already copyrightable.


Nobody is saying that the overall design of a system isn’t subject to intellectual property law. But it’s an area of patents rather than copyright. Amazon until recently held a patent (it just expired) on the concept of having a button on a webpage that you click to buy something. IBM at one point held a patent on the concept of sending data from one computer to another computer. One of Google’s arguments in the case is that Oracle is trying to argue a copyright claim on something that is actually covered by patent law (and which was already found in lower court not to be a patent infringement). If you invented a fancy new way to couple together electrical wiring, or train cars, or drivetrain to a motor, then you would file a patent for it. My take is that Oracle is banking on the fact that an API is written in words (especially in Java...) to muddy the waters enough to obscure the technical and thus not copyrightable nature of an API.


Putting studs 16" on center however is not copyrightable.


> Where are the expert witnesses in this case??

In the trial court.


And in the amici briefs (though they're not called expert witnesses there)


Code is a repeatable (executable) list of instructions that can describe a process. Perform the instructions, execute the process.

Processes--and a good example is business processes like SOPs, etc.--have inputs and outputs.

An API is a name for that process, plus a description of the required inputs.

Can you copyright a name and a description of inputs for a process?


Can you copyright Harry Potter the character? Or can anyone use recognizable Harry Potter reproductions in commercial context, be it alternative books, movies or merchandise?


This is where the confusion lies: Google claims Oracle is copyrighting an interface to Harry Potter (as per your example) -- i.e., they are claiming copyright to any / all characters that are (1) a boy in his early teens (2) has magical powers (3) goes to wizard school.

Now, the question is, where do we draw the line: As per Oracle, there cannot be any other character that does what Harry Potter does.


Copyright law already allows you to copyright specific combinations of unprotectable elements. It's called thin copyright, it's why Katy Parry got sued and lost, and it's software application is called Structure, Sequence, and Organization (SSO). You can in fact claim copyright on all characters that look like Harry Potter, because the standard for copyright infringement is "access and substantial similarity". This is because if your copyright doesn't extend to someone blatantly tracing over your work, then it's not a copyright.

You specifically need to argue that the API itself - the specific combination of types in a specific order, with a given set of Unicode or ASCII characters to identify it - is not copyrightable, not just that it's made up of uncopyrightable things. This is harder, because this same practice in other contexts (e.g. music, literature, and so on) is very much protectable. You need to argue that software is different.


That's a stretch. Oracle is claiming copyright on a specific API with a specific name, specific organization and specific individual components / attributes. It is not claiming copyright on all standard lib APIs. In fact, there is no evidence that Oracle has any intention whatsoever to sue Google over Go or Dart.


You actually can copyright a character. Disney made sure of that. Of course this only extends to the same kind of medium.

The description and name matter a lot for this, and are typically quite general.


This article really overstates the case by focusing on copyrightability while leaving fair use for a tag at the end.

Winning on fair use is not a disaster for Google. Google winning on fair use on procedural grounds, if the Court uses that as an excuse not to even answer the copyrightability question (the narrowest possible grounds for a Google victory), does not, contrary to the article's claim that "a Google win on a narrow procedural question would create a lot of legal uncertainty in the software industry", create any new legal uncertainty for the industry.


If Google wins on fair use, then re-implementing much (but not all) of a 10,000-element API is fair use. That leaves the industry somewhere near "APIs can be copyrighted, but that doesn't change anything".


This whole general area has managed to be rather ambiguous for a long time now. One of my lawyer friends was reminding me yesterday that the Lotus v. Borland look-and-feel case was actually never decided at the SCOTUS level even though it was taken up because of a circuit split. SCOTUS split 4-4 and let the First Circuit opinion stand.


Does anyone have any idea, if Oracle wins, what the ramifications for Google/Android will be?

Because Android is so entrenched, there's no "going back". Google merely paying a fine doesn't change the fact it's still using Java API's moving forwards. Google would have to license the Java API from Oracle... but then who sets the price? Oracle could set something absurdly 1000x higher than reasonable by holding the entire Android ecosystem hostage, no? Would the court decide not just penalties for past usage, but a negotiation for future usage? How would they determine that? (And if they did, couldn't that create a moral hazard? Companies steal IP from someone who refuses to sell, get "too big to fail", and get to keep the stolen IP in the end.)

I'm not familiar with how the law relates to ongoing conflicts that are so massive they can't be undone without great harm to individuals and businesses far beyond the actual parties in dispute.


> Does anyone have any idea, if Oracle wins, what the ramifications for Google/Android will be?

I understand that Android currently uses OpenJDK, under its public license, so I think the ramifications will be "Google pays buttloads of money to Oracle for past misuse and continues happily on its way". At least as far as the Java APIs are concerned; there will be lawsuits flying back and forth everywhere in the industry over every other reused API that isn't explicitly licensed, which will probably also effect Android in some way.


The article mentions that Google faced some tough questions on their merger doctrine argument (that because there was only one way to implement the declaring code Oracle can’t preclude Google from reusing it) but it doesn’t really mention the fact that Oracle faced much tougher questioning on their procedural argument that the Federal Circuit correctly overturned the district court jury decision.

Listening to the oral arguments I have a hard time counting to 5 either way on the issue of API copyright and Google’s merger doctrine argument, but I think it’s quite likely that there are 5 votes to send the case back to the Federal Circuit with instructions to take another look at fair use.

Essentially, the district court jury found in favor of Google on fair use and the Federal Circuit set that verdict aside on the grounds that no reasonable person could conclude there was fair use. None of the justices sounded happy about that.


The important part is that the Federal Circuit overturned the decision of a jury which is not generally allowed. If it was just a lower court judge, they could make that kind of ruling without much controversy. The reasonable person argument just seems like an excuse to overturn the decision of a jury. If there were problems with the process, that can be used to overturn the jury decision.


I am really not up on copyright law, but I see this as analogous to someone writing a book. Say I wrote a book and titled all of my chapters the same as another book, the book was given a different title and the chapters themselves where very different on the inside but naturally my table of contents looks exactly the same, would this be considered infringe in the publishing world (I don't know)?

Also based on that:

If it would why would API's be different?

If not how was it applied differently here?

What if in the above scenario, I added some extra chapters so the TOC has all the chapters the other book had, but the TOC is not a 1 for 1?

If my analogy is wrong, what am I not seeing?

I know as someone who writes software, API's not being copyrightable is preferable, but I would like to understand how the law sees it when dealing with real physicals works and understand if the law is applied the same when it moves to less concrete works.


Books are not equivalent to software because software has a functional purpose. While programming has creative elements, the primary goal of a program is to achieve certain functions (whereas the primary goal of a book is to enable creative expression or to record factual information).

If I want to support a Windows program on Linux I have no choice but to implement the Windows API. Likewise, if I want to interface with a program that stores data in S3, I have to replicate the S3 API.

That's why I think that there's no good analogy for software APIs among traditional media.

As far as the law goes, Google's argument is that because software APIs are arbitrary choices and necessary to be copied for interoperability that software APIs are noncopyrightable under section (b) of this statute. https://www.law.cornell.edu/uscode/text/17/102


Books can have a functional purpose. E.g. if it is a reference manual for a car. If you used the same table of contents for the reference manual, but the contents were substantially different, would that still be unlicensed copying?


Books don't have a functional purpose in the same way as software. With a book, there are many ways to state the exact same fact (and the fact itself is not protected by copyright law). With a program, there's only one way to call a particular function, or to write a function declaration that an existing program can call. The exact text used in a program is relevant to its functional purpose.

A more apt analogy in the case of a reference manual is perhaps a competing manual that presented all the same maintenance information with different words, since they would achieve the same functional purpose with different expressive content.


For me a good analogy to API is driving a car. The interface (API) to the car is the steering wheel, the pedals, and some common controls like signals and the horn.

You only need to learn to drive one car, and you can drive them all. But under the hood the cars are completely different. Gas, diesel, battery, hybrid, all have the same API, yet no one says that you copied a car if it has a steering wheel.

One could probably reinvent the (steering) wheel and possibly make a better interface to the car, but that would result in people having to learn how to drive your car specifically.


We all seem to assume that there is an obviousness defence, because we are like fish and water.

And it makes a degree of sense - take the articles example lang.java.math.sum - there are a limited number of ways "adding up an array" can be expressed in English. All of which are obvious and based around domain jargon - all very hard to copyright.

However what interests me about this case is how fast it all unravels

Is this about the math.sum part of about the lang.java part? It cannot be the math.sum because then every other language from Rust to Python gets clobbered.

If it is about the lang.java then hey maybe Oracle has a point. But it only means "you cannot copy lang.java.math.sum and that surely is an accident of language design - for example in Python the same call is math.isinf. That's the part used in the code that I write, that's the import signature. The API.

So from my pov this should be a very narrow ruling - if the import signature is not obvious and is unique (lang.java.x) then yeah fine Google, they stole your developers.

I also wonder about how transferable the obvious part is - math.ist_unendlich is fine for german speakers. Is that obvious if the rest of the manual is in English?

And if Google had gone for lang.gava.math.sum (don't tell me it was not at least discussed :-)?

It does overall seem a big fuss over a small hill of beans. If the supreme court rules in a narrow and well defined manner they just move the industry in favour of open and free, in a broad and badly defined manner they move the industry off US shores. Neither side is that bad for the software world


Imagine where we'd been if Google just paid Sun a couple hundred million dollars, and then put it's weight behind Java...


Google spend a lot of money on not doing that, while Sun was already working on the completely free OpenJDK.


That would be awesome, a world where Java was discarded.


Essentially the core issue here.


stack wise but heap foolish


I started reading this article today thinking that the case was clear-cut - Oracle's wrong and Google is right. As I read the article and the comments I'm now not at all sure. We all are trying to come up with a good analogy to explain why APIs are distinct from implementations, why it's 'obvious' to a programmer how they're distinct, and how their rules should be distinct.

But the more I think about it, and read feeble attempts to relate software to other industries, I am starting to think I was wrong. In my experience, especially where good design is encouraged and respected, I can spend far more time designing the API than implementing it! If I create a proprietary API shouldn't it be protected? Or am I misunderstanding the nature of the debate?


This could be easily explained using an analogy like a pipe. If you need to connect a hose to your house, the connector (interface) needs to match the spigot size and threads. The API is simply the information about the size and thread measurement, along with the knowledge that you can get water out of it when you turn the handle. Having this knowledge and building compatible hoses or spigots doesn’t mean you have stolen anything from the company who made the original spigot.

I could easily come up with dozens of analogies that explain this concept in terms understandable by senior citizens, and it’s inexcusable that this lawyer can’t do the same.


That is a terrible analogy since the potential conceptual range of APIs is so wide and because it does disservice to the conceptual power of APIs.

Good APIs embody the key architectural and conceptual decisions. They define the key concepts and how they interact. But at the level of a programming language, this is of immense scope and power. Java defines an imperative language with built in garbage collection with abstraction from physical hardware.

Furthermore, the real distinction between API and implementation is that API are that which needs to be exposed to the world.

Programming languages are more akin to defining the fundamental laws of a universe. Physics to chemistry.

It is true that other APIs are of much smaller scope but the point is that the range is so wide.


It's actually a great analogy in that respect, as there are substantial tradeoffs involved in the design of pipe connector types, and the design of a particular connection / thread standard embodies key architectural and conceptual decisions.


The post only commented on size and thread. There is far, far more than that. Also some connectors are patented for what it is worth.


I agree; a big part of the problem is that the whole concept of what an API is and what it does has really grown in the last 40 years. The original IBM PC BIOS exposed an API but it was far simpler than the Java API. When we draw an analogy between a large industrial machine and all of it's levers and switches and buttons and the interrupt calls on an IBM PC BIOS, the analogy seems somewhat reasonable. It certainly feels like we're straining that analogy when we apply it to the Java API.

Even so, the Java API is clearly documented and publicly available and anyone can look it over. It's clear that it provides a contract to the software developer saying things like "if you give me this data when you call this method, I will give you data that looks like this in return". The idea that an API is a contract, I think is sound and the analogy holds water, in my opinion.

Is there really nothing creative about writing an API? Well, I think that's an arguable point. When you drive a car you steer a wheel and when you type you press buttons; it's arguable that these are simply obvious implementations that many people might independently develop on their own. It's mechanical and, perhaps, lacking in creativity. But the Java API? Some portions, for sure, are obvious: any collection of things has a "length" method. But someone did come up with a plan for managing the namespaces and the package names and some packages have APIs that are pretty clever and, perhaps, reveal true creativity.

Still I'm against protecting APIs from third-party re-implementation. I did not find Oracle's arguments at all compelling and, in my view, that was really their job here. Instead they pretended that this idea of an API as a contract anyone could re-implement was totally alien to them and that struck me as a bit dishonest.

I'd like to see a more compelling argument before we upend how we thought APIs worked for the past forty years.


Great example with IBM PC BIOS, there was source code, there was infringement suit, yet clean reimplementation won [1].

[1] https://retrocomputing.stackexchange.com/questions/12018/why...


I does not matter if your API design is good, all we need is compatibility.

Microsoft Word .doc format claimed to be awful [1] and yet there are a lot of clients.

[1] https://www.joelonsoftware.com/2008/02/19/why-are-the-micros...


>Oracle, for example, re-implemented Amazon's S3 API so that customers who built software for Amazon's cloud platform could easily switch to Oracle's rival cloud platform.

So if Oracle wins here, they will get fuxxed by Amazon?


Amazon release their S3 client libraries under the Apache license. Creating a backend for that client is permitted under the license. So all these S3 clones are fine.


not really. their client is under the apache license but not the implementation of the server, where the api is defined.

to use the client (boto) with a server you need to CLONE the api. even the headers which are named: "x-amz-server-side-encryption-customer-algorithm" I doubt that oracle would need to call that "x-amz-server-side-encryption-customer-algorithm"


Who knows. Does Amazon implement any of Oracle's APIs? This ruling is about to make the software patent mess look like a walk in the park.


I would wholly expect Amazon to sue over S3 implementations by Oracle, IBM for SQL, etc. I would want the whole industry to target Oracle. Get their pound of flesh.


Mutually Assured Destruction from the fallout of a terrible decision that forces the SC to re-evaluate (through another case etc) is better than letting something like this settle.


And then Oracle sues Amazon and IBM back for implementing some API or other that they own through one of their billion acquisitions...


Same but I think the problem is tech people don't buy Oracle products on purpose, suits do that.


That's probably true.

Honestly, companies shouldn't be worried about the FANG's, because they will create alliances and largely refrain from suing one another. It's the never-ending, death-by-a-thousand-cuts onslaught from trolls that will murder small/medium outfits.

The east texas troll court is going to have a boom like it was 1840s California just to support all the litigation in our near future -- if this passes.


The East Texas troll court is focused on patent cases, and presumably won’t be the venue of choice for copyright law trolling. I’m sure that venue already exists.


> Does Amazon implement any of Oracle's APIs?

They reimplement MySQL for Aurora Serverless, but losing Aurora Serverless MySQL probably hurts Amazon less than losing their S3 clone hurts Oracle, and in any case MySQL is GPL and Amazon doesn't redistribute their implementation, so they are probably within the license anyway.


If it is anything like the CPU patent mess then they might join forces and just sue anyone else out of existence Intel/AMD OTP.


No one's discussed Lotus v. Borland yet.

https://en.wikipedia.org/wiki/Lotus_Dev._Corp._v._Borland_In....

The issue was that the Borland Quattro spreadsheet had the ability to emulate the menu hierarchy of Lotus 1-2-3.

So the SCOTUS was asked to weigh in on whether a software menu system represents a copyrightable expression of an idea.

What ended up happening was one justice recused himself and the eight remaining members were evenly split.

In essence, they threw up their hands and gave up. It may as well have been a coin toss.


It would be initially problematic, but I do not believe that an Oracle win would be that disruptive in the long run. What would happen is that API providers would from now on have to provide standardized legal assurances that users are allowed to implement their API (in part or in whole). APIs that do not provide these assurances will go mostly unused.

As an imperfect analogy, think about the fact that many companies no longer want to use GPL code because of the legal ramifications. Open source authors would want their code used at those places use other licenses such as MIT.


Happy who lives in a country where reverse engineering for the purpose of interoperability is explicitly allowed by law. So do we have to expect more economic refugees from the USA in Europe in the future?


The questioning seems to imply there's a split among party lines. Is that a coincidence or is there some political aspect to this?


> The questioning seems to imply there's a split among party lines. Is that a coincidence or is there some political aspect to this?

A little bit of both; the right is more inclined to strong, especially commercial, property rights even for things like copyright that are expressly, both Constitutionally and statutorily, bounded and contingent, while the left is (from a judicial perspective) generally more supportive of public interest limitations in general and fair use, which while statutorily enshrined was judicially created based on the First Amendment before being written into statute, in particular.

That said, its far from a perfect mapping and you'll often see splits that don't follow party lines in copyright, and the late Justice Ginsberg, while one of the more liberal justices on the court, was known to favor strong copyright.

in general, outside of perennial hotbutton issues that are permanently both highly politically salient, stable in partisan orientation, and at the focus of judicial selection, which copyright very much is not any of, divisions of the court aren't strongly determined by party even when they happen to align with party.


TFA:

> Eagle-eyed readers may have noticed that the argument seemed to split along partisan lines. Kavanaugh, Thomas, Alito, and Gorsuch—all apparent Google skeptics—are the court's conservatives. Sotomayor, Breyer, and Kagan form the liberal wing. Chief Justice Roberts, who asked tough questions of both sides, has often been seen as the court's swing vote since the retirement of Justice Anthony Kennedy in 2018.

> Grimmelmann argues that this was a coincidence. The late liberal Justice Ruth Bader Ginsburg, for example, was known as a copyright hawk and could easily have sided with Oracle if she were still alive. Before his elevation to the Supreme Court, Justice Gorsuch authored at least one dovish opinion on copyright issues. In the 2014 Aereo decision, all of the court's liberals (along with two conservatives) held that Aereo had infringed copyright, while three other conservatives dissented.


The American right in it's current form tends to treat everything as property and is very supportive of defending all things copyright related. A lot of this has to do with the waning influence of libertarian thought on the American right and it's drift towards a more corporatist philosophy. The American left is better in this respect, but has likewise become more corporatist in it's outlook over time.


Alito/Thomas/Kavanaugh are clearly on the wrong side of this, big freaking surprise there. If Oracle wins this is going to be catastrophic for our whole industry (in the US at least). Things are going to get a lot worse before they get better.


The big question here is the distinction between standard and API.

If Java is also a standard, then laws applicable to all sorts of standards apply. And this could be a relatively good line of defense.

An API itself is not necessarily a standard. More importantly, a distinction would have to be made between a standard and its implementation.

Technical argument is whether API is procedural or textual. Procedures cannot be copyrighted only patented, including design patents and algorithm patents. But API itself is not procedural.

QWERTY sequence of letters is not necessarily copyrightable because it's not a document or result of machine processing of one and as such is a bad analogy.

An API actually has a source code and mechanically processed version. Oracle publishes it as documentation, which is probably copyrighted, and Java source code, which was copyrighted until OpenJDK.

The trick here is to define minimum creativity required for copyrightable work. If the API is narrow and trivial, you probably cannot copyright it anyway. There is additonal trouble when said API has no meaning without an implementation or is not published. Reverse engineering may be prohibited by a licence.


Actually, I'm pretty sure whether Sun defended their copyright is the more relevant fact in this case.


This decision doesn't change anything as long as software vendors use a permissive license.

The fear mongering about all sorts of cases in which might be affected (API, file formats) area under the assumption that the copyright holder has disallowed use which is the problem.

I suspect many will include provisions to allow it in their licenses otherwise the ecosystem for their products would shrink radically.


It’s always dangerous to try to read the tea leaves based on what questions the Justices ask. We really don’t know yet what they’re going to do. Anyone who says otherwise is mostly just guessing.


Justice Ginsburg was known as an authority on intellectual property rights, her voice is missed here.


And Ginsburg was famously known as a copyright maximalist.


I thought that until I got to Google's closing remarks. They said that 1) the Federal Circuit didn't really do a de novo review like they said they did, and therefore that their overturning the jury didn't have the excuse that Oracle said it did, and 2) that Oracle was factually incorrect in several statements it made in the hearing. If those claims are accurate, Google is likely to at least win on fair use.


"copyright protection lasts for the life of the author plus an additional 70 years"

That's ridiculous for software APIs, I could be okay with APIs having some temporary copyright for a shorter amount of time, say 5 years, but that's just unreasonably too much.

Do we have any other technical fields where technical work fall under copyright? I feel that's the main issue, copyright was clearly designed for work of art and fiction.


If you have the source code for projects written in Java that collectively use every API endpoint in the standard library, you can reconstruct the API perfectly, thanks to static typing and the absence of type inference and default parameters. Would it be a copyright violation to distribute these projects along with a tool for reconstructing the API declarations from them?


I would make the argument that what distinguishes APIs from code is that APIs cannot be executed, they are not code because the computer cannot run it. And only code is copyrightable, code requires to be executable on some machine. Thus it is clear that only the implementation is copyrightable.

That said, at this point, I don't even care about the interpretation of the law, this issue has to just be addressed by the executive branch, truth be told, the rules should be explicitly stated, and I almost feel someone could make a case and sue the government with being so vague, allowing multi billion businesses to get built and a whole industry assuming they had the correct interpretation of the law, when in fact it gets interpreted differently. I don't know if this is possible to sue the government for, but like, how enraging is it if everyone for years clearly thinks they know the rules and all abide by some interpretation of it worth billions of dollars. Clearly the law needed to be revised a long time ago.


It doesn't seem like it would be too hard to figure out who can claim copyright to SQL, Posix, C, various assembly languages, HTML, HTTP, TCP/IP... pretty much everything. Are copyright trolls buying this stuff up yet? Seems like a whole new asset class is about to be invented.


This is the thing that really bothers me [from a comment in the post]:

> 2) Also realize that the SCOTUS' job is not to decide what's right, but to decide what's legal given the constraints and allowances of both the Constitution and law. Even if a Justice were to feel like copywriting APIs would have terrible knock-on effects, she would be compelled to rule in favor of granting them if she believed that the laws passed by Congress required it.

So much of the arguments were specific to the Google/Oracle incident and not as much about the implications except for the thing about QWERTY and perhaps some vague analogies. I thought at the SC level it should always consider 'terrible knock-on effects' and act accordingly considering but not strictly bound to what came before.


Well, they sort of do. When existing precedent is clearly outside the bounds of what's considered "just" today, it's not unknown for SCOTUS to discover a new right or reinterpret a precedent. That said, they (rightly) mostly rely on precedent and the law rather than deciding on the basis of the good of the many by their lights.

As someone else in the comments said, I'm on Google's side here on the basis of this being the general industry assumption for a long time and interoperability generally being a good thing. On the other hand, does anyone here honestly believe that a complex API some team spent a lot of time designing isn't really a creative work?


Slightly OT but not really: why didn't Google buy Sun when it could?? I'll never understand this.


Or Google could have come to terms with Sun with respect to Java. I'm sure they regret not having done so at this point. Whatever you may think of Oracle in this case, Google basically f'ed up big time.


Sun was not that kind of a lawsuit people. Eric Schmidt knew that.

They only got screwed when Oracle bought Sun.


Trying to get up to speed on this whole issue .. but as a software engineer, I'm a little surprised APIs are not copyrightable. Putting aside the pedantically literal creative work that goes into documenting an API and naming functions, the chief engineering role of the API is,

- breaking the domain of work into well modeled types

- information hiding

- keeping dependencies together and/or variously keeping data dependencies apart

- leaving room for extensibility

- speed of operations

- and promoting the correct use i.e. single v. multi-threaded or one server vs. distributed

That's real work, and getting a "good API" i.e. recognized throughout industry as well adapted to the problem domain (say SQL for DB work) or copy-on-write for C++-strings almost always reflects a better implementation which bubbles into the API.


I bet if this goes through, the US will try to enforce a completely backwards view on the rest of the world in the name of profit. One can only hope that at least some countries will tell the US where to stick it with idiotic laws like that.

Absolute lunacy.


>Justice Clarence Thomas compared Google's copying of the Java APIs to a football team taking a rival's playbook.

Maybe it should be compared to English dictionary, where American English cannot use words from pre-existing British English.


It's strange that there's little of comparison of an API to a standard. (Think like ISO standards) as API is not a program itself, it's a rule-set how two programms can interoperate.

Patenting API's imo is like patenting a rule set for a game (say like football). Imagine someone patenting rules for a football and afterwards it's allowed only to play the game if you are "licensed" by the patent holder.

anyways- the Googles defense team seems bland. Not sure whether they really understand the idea of what API is and what's it's purpose and that API's textual representation is absolutely non-essential.


Imo, making API's copyrightable will only make things worse for all the US based software companies, sort of gain dollar, loose hundred situation, as it'll open a whole new front in an already existing software patent wars.

Maybe it's just what Google wants- to test the water and this is more of a opening act and the real play is only ahead of us! ;)


> To re-implement Java, Google needed to copy the names and argument types of functions like java.lang.Math.max.

If there are "copying" examples like this in the case, I am surprised it wasn't thrown out way earlier.


People are confused about the differences between creativity and copyrights. Is API design work creative? Absolutely yes. Is all creative work copyrightable? Not necessarily. Copyrights have to be limited to very specific categories of use in order to make sure the interests are balanced between copyright holders and the general public. Compatibility at the interface level or format level is one such example. Same thing nobody should be able to copyright that a car has 4 wheels and 2-4 doors. Same thing nobody should be able to claim copyrights for poems with 14 lines.


Why is this being pitched (in all the press I have seen) as a "google vs Oracle" fight? This is a direct attack on software development by Oracle, who will also suffer if they prevail in the courts.


A. That is the actual name of the case.

B. "Faceoff", "versus", and " debate" pander to the competitive culture of American business and politics.


From a technical perspective I have actually a hard time to argue what is an API, and what is 'normal code,' in particular because a lot of code uses internal interfaces and DSLs. However as an open source radical, I would lean in the opposite direction and argue that code shouldn't be copyrightable in the first place.

And actually I think a ruling that APIs are copyrightable would be very good for copy left licenses and languages described in open standards, because they would not leave on at the mercy of a single monopolist.


It seems the ideas of interfaces became lost in translation to the judges. The comparison to a football playbook showed that. A playbook would have more in common with a concrete implementation than this idea of standard specifications as "trade secrets". As long as they don't extend the language to break compatibility as Microsoft J++ did, I don't see anything wrong.

At the same time there needs to be dissolution within FAANG. Hopefully this loss will help that instead of putting strain on the developer community.


Reading the article I get a feeling that the judges don't really understand what an API is.

Also, the comment > I'm concerned that under your argument, all computer code is at risk of losing protection under 102(b)

It seems rather incorrect in case of reimplementing an API. It's not like the underlying logic has been changed or copied it's just that the top level API has been modified to be compatible with the system being used. Or am I missing something?


Google should have bought Sun. They would have been better custodians probably, and in the end Oracle will basically get it for free after this battle is over.


Google should have bought Sun.


Oracle is happy to throw sand in the gears of the entire global software ecosystem if it adds a percentage point to their profits for the year.


I'm wondering: Assuming Oracle wins on copyrightability, how will it affect BSD-licensed software? The license text just says

> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: [...]

But reimplementing the API is neither using the source code nor distributing it, so would it be covered or not?


It's not like all hinges on oral arguments. Lots of organizations informed the court in this case, about the issues at hand:

https://www.supremecourt.gov/search.aspx?filename=/docket/do...


Maybe someone should have bought out Sun and not let their crown jewels go to the most opportunistic company that's out there?

Could have avoided all of this and as a society we could have moved on an built better things. Only the lawyers won here.

Something for the current FAANG's to consider, buy the company that has goodwill but isn't doing well financially for various reasons.


For a different view of the same oral argument:

"Justices wary of upending tech industry in Google v. Oracle Supreme Court fight"

https://www.cnbc.com/2020/10/07/supreme-court-hears-google-v...


I think it will be a win-win situation no matter what. If Google loose, we will see an even bigger shift to FOSS, which is obviously a win for the whole developer community. If Oracle loose well then things stay as they are, we are still moving to FOSS but we don't have an Supreme Court accelerator behind that movement, still fine.


Lets Say that that Oracle wins. Does that mean that all 100+ companies who have copywrites on their software which all include "Helper.GetGUID" or "Calendar.NewMeeting" are going to sue each other to find out who the 1 true owner of the "Helper.GetGUID" API call is?


One of the ways copyright and patents differ is that patents can be infringed even if it's proven you had no prior knowledge of said patent, but copyright requires actual copying to infringe.

Independently arriving at the same API name is a defense from copyright violations. If both of us write the exact same method name, and we can both prove we didn't copy the other's, that's enough. We both have copyright over our own api call that we wrote.

Copyright probably shouldn't apply in any case that we could both independently create the same thing (in the same way the sentence "Hi, how are you" isn't copyrightable, but a chapter of shakespeare is -- the former is not a real expression of unique creativity).

So no, copyright does not determine the "1 true owner" of something that was not copied. That's patents.


I haven't seen a single positive article about Google from ArsTechnica (and plenty of ones that were overly sensiationalistic, especially aroudn Android which I'm pretty familiar with professionally).

Is there any more independent media article describing what went on in the hearing?



Google broke compatibility with Java, so I don't think that the argument that this nullifies the right to reimplementation holds water.

If Android had been implemented in such a way as to allow pre-existing java applications to execute natively this would be a very different situation.


Remember that the idea that you can’t copyright an API is at the fundamental root of the PC revolution.

If IBM had been allowed a universal copyright on the API for its BIOS, it’s very likely you wouldn’t be reading this on the device you’re using today.


This would have protected the IBM PC BIOS wouldn't it? The BIOS interrupts are an API. Would it not also apply in retrospect? Could IBM not sue everyone who ever made a clone now? Or is there a statute of limitations?


Does anyone have any insight on why Google didn't buy Sun (which held a large patent portfolio)? It seemed an obvious move well before Oracle purchased them so I have no doubt that Google considered it.


Google should have acquired SUN.

I read somewhere that they were planning to but didn't due to SUN's hardware business. They should have sold that business off to another company and kept the software side of it.


If I copy a book's Table of Contents, but write the chapters myself, am I violating the original book's copyrights? Isn't it pretty much analogous to what's in contention here?


I look forward to Amazon suing Oracle for reimplementing their APIs.


I say let them both bleed to death, for a better world. Pity is that there is no guarantee that survivor will be shot in the head after that.


Off topic: API’s in dynamically typed languages like Python won’t get this type of lawsuits? If yes, there is an upside to dynamic typing.


Hold on while I copyright all accessor and modifier methods. From now on there will be a licensing fee if you ever use getters or setters.


Result: win for Oracle. Two years of squabbling and more lawsuits. Congress then passes a law exempting API's. Problem solved.


There’s a lot of hand wringing about the Supreme Court, but to fix copyright, a simple act of Congress could exclude api’s.


I'm curious if the Hush-A-Phone case is any precedent: https://en.wikipedia.org/wiki/Hush-A-Phone_Corp._v._United_S... . It involved a company that made a device you connected to your telephone who got sued by AT&T and won. The compatibility with a proprietary phone network is vaguely analogous to an API.


The DOJ lawyer was the worst part. Why was that clown even taking a such a strong side in a technical case like this?


If API's are copyrightable, does this mean hypertext Internet links are copyrightable too? Uh oh!


Let's say Google loses... badly. What will be the practical consequences for us software engineers?


The consequences will be that people will only use open standards and languages. Proprietary languages and APIs will be shunned because you'll be permanently locked in with compatible alternatives illegal.


So in case of Oracle, OpenJDK will still be viable?


So, after initial fallout it is a long-term win for software industry, right? ;)


Yea, though the fallout will be pretty bad when IBM comes trolling around with their shiny new copyright on SQL. Copyright lasts 70 years from the death of the author, so IBM would be handed an active infringement claim on basically every company that has ever sold a database product.


I hope Oracle gets hit extra hard in that case


Silly arrogant Google should have bought Sun MS when they had the chance ...

Or just settled with Oracle a long time ago.


Will this cast a shadow over Java adoption in general? Yes, I know it's about APIs but still.


The ultimate solution is making copyright a non-transferable author's right. Period.


Maybe this will persuade Google to use a better language that welcomes innovation (rust/c++) and frees them from Java commitments and they see past the sunk cost fallacy. It also displays why all companies should move away from Oracle and their totalitarian attitude and towards open source databases that respect their rights.


Google already transitioned over to OpenJDK in 2016, which they have an ironclad right to use for free. This litigation is just about whether Google owes Oracle money for the period 2008-2016.


Let this just be the daily reminder to not touch anything Oracle with a 10 foot pole.


Easily fixable with an amended copyright act if necessary.

Legislate!


I wish Google had just licensed Java from Sun.


Declaring APIs copyrightable is disgusting.


This court hasn't decided anything on the issue, so that's a bit premature unless its a response to the general concept of the Supreme Court deciding anything, in which case its a bit...tangential.


Yeah, I corrected the comment.

I also find it weird that "conservative" judges are expected to support APIs copyrightability. Is it because conservative is supposed to mean opposed to progress? Declaring APIs copyrightable is going to hurt the progress and technology.


> I also find it weird that "conservative" judges are expected to support APIs copyrightability.

They aren't expected to because they are conservative.

The judges that acted in a way which (the writer believes) suggests they support Oracle's position happen to also be the conservative justices.


How much of this happen to be is accidental? For me it looks like a pattern. Especially if they are divided by the same lines. Let's wait and see until the final decision though.


> How much of this happen to be is accidental?

A lot.

It's not like anyone is appointing judges with an API-copyrightability litmus test.


Let's wait until the final result, but if the division will be by the same lines as conservative or not, I'd strongly question the randomness of it.


Further proof that the Supreme Court of the United States has been captured by right-wing ideologues who view every problem as having a solution in property rights. Why anyone in the US would think it's a good idea to change the foundations of the software industry — one of the few remaining bright spots in the US's sputtering economy — is beyond me. I guess in the end Americans will get what they deserve.


This seems like shooting the messenger to me.

The problem is that the legislature hasn't done its job. It isn't the job of the judiciary to monkey-patch the law to get a desired outcome. They should be interpreting the law as written and any negative consequences should be addressed by legislation.


"They should be interpreting the law as written and any negative consequences should be addressed by legislation."

What good is the legislation when it get cuts to ribbons in the courts? Look at what happened to the ACA and the individual mandate. Even modest progressive legislation can barely survive the current court, so I'm not sure your proposed solution works.

"interpreting the law as written" is a farce. The court is a minoritarian conservative bulwark that can rule however it wants with no accountability. The law is what they want it to be. Always has been.


Not sure what to conclude from that.

The standard positions seem to be:

    * the right is more in favor of originalism
    * the left is more in favor of the living constitution view
You seem to be claiming that the right is actually acting in alignment with the living constitution view, which is an unusual take on this IMHO.


I'm saying that the legal doctrines merely provide a veneer of rationalization for decisions obviously motivated by political ideology (on both sides). I'm saying the legal doctrine is totally irrelevant.


This seems bad, as a precedent, for the entire industry/hobbyists/etc.

Way to go, Google.


ITT:

1) Non-lawyers experiencing the Dunning-Kruger effect 2) People not realising that Supreme Court appeals are 99% about the written submissions, with the oral hearing barely relevant to the final decision at all.


going up against Trump while he controls the the executive and judiciary branches is not smart.


only murica has software patents and software patents are fucking retarded.


,,Google’s Supreme Court faceoff with Oracle was a disaster for Google''

I don't see how losing even a few billion dollars could be a disaster for Google at this point. They control most of the smart phones in the world, and that's worth much more than that amount of money (regardless of whether using Java was the right choice or not).


Few billion dollars, sure. Except that little Supreme Court decision on API copyrightability thing.


Why would that be so bad for Google? Can you please explain?


Read the article.

The case was bad for Google because their lawyer was bad.

The case would be bad for software everywhere, because API copyright. (in future)

You're mixing both and asking why it would be bad for Google




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: