Earlier this month, the Supreme Court voted 6-2 that copying application programming interfaces (APIs) is fair use. APIs are the names of the methods and what types of information they are passed. In 2010, Oracle had sued Google for copying the APIs for the Java Programming language when they created the Android Programming Language.
An API defines the way that code is plugged together. Using common plugs makes it much easier to switch from one language to another. The names of the methods and what you pass to them are similar, so it lessens the learning curve.
An example of an API would be a method subtract that takes two numbers and returns the value of number 1 minus number 2. If that is copyrighted you would have to create a new name or take different inputs or outputs for this method. Imagine if every language had to come up with a different API for adding two numbers. It would lead to changes to the language to simply result in a unique API. The later languages would have to resort to adding extra words or sending extra types to simply be different from the previous languages.
Cell phone charging plugs are a good analogy of this problem. It may be necessary to have several charges since cell phones have not agreed on a common charging port. This became such an annoyance that several governments have pushed for a single agreed upon charging port. If each type of charging port could be copyrighted, the other company would have to pay royalties to use a common port and there would be incentive for each company to have their own charging port.
Preventing companies from being able to own the names and values of methods will help innovation. The real work that the code actually performs is still copyrightable. The Supreme Court has said the names of the methods and the types of information passed can be copied using the fair use exemption.