Intellectual property law was created to protect the rights of creators over products of the mind. Speaking loosely: Patents protect inventions. Trademark protection covers names, images, and designs used in commerce. Copyright covers literary and artistic works, including both tangible artifacts and intangibles such as performances. Trade-secret protection is for information that owners keep secret to maintain competitive advantage.
The intersection of intellectual property law and software development is a fascinating and potentially lucrative field. The application of traditional intellectual property law to software is not always straightforward. It is generally acknowledged, for instance, that computer source code is subject to copyright protection – it is, after all, a written work, same as a novel or screenplay. (Well, sort of the same.) Of course, the same source-code file might be protected by patent law or trade-secret protection. You are surely aware that software patents have become very big business in recent years. If your job is in jeopardy of being outsourced or offshored, consider leveraging your technical expertise into a new career as a patent agent. You don't even have to go to law school – just pass the patent bar exam (you can find review materials and courses online) and you're in business. According to one site, patent agents earn about 25 percent more than software engineers.
But I digress.
The relationship between software and patent law is straightforward compared to the intersection of software and copyright protection. Specifically, it is unclear whether or not computer programming languages should be eligible for copyright protection. Uncertainties and apprehensions have attended this question for a long time.
A couple decades ago, Borland International – a publisher of C and Pascal compilers, spreadsheets, and database systems – was at the center of the copyrighting-a-language controversy. On the one hand, Borland was sued by Lotus, which claimed that because Borland's Quattro Pro duplicated a portion of Lotus 1-2-3's “command structure” – the keystrokes controlling operation of the spreadsheet – Borland was guilty of violating Lotus's copyrighted language. (Borland prevailed in court, setting a precedent against the copyrightability of programming languages.) At about the same time, Borland acquired dBase publisher Ashton-Tate, which was at the time litigating against Fox Software, whose database system implemented the dBase programming language. In this case, Borland's interests were on the opposite side of the copyrighting-a-language issue. No one knows how the judges might have ruled: Borland agreed to drop the case, and all future cases based on infringement of the dBase programming language, in return for regulatory approval of its acquisition of Ashton-Tate. It is important to note, however, that the U.S. Justice Department's Antitrust Division did not reject the copyrightability of the dBase language in its 1991 Competitive Impact Statement. It merely enjoined Borland from pursuing infringement lawsuits. (Read more here.)
Fast-forward to August 2010, when Oracle sued Google for alleged intellectual-property violations in the Android operating system. Alongside 50 alleged patent violations was this claim: “Oracle America owns copyrights in the code, documentation, specifications, libraries, and other materials that comprise the Java platform.” In particular, Oracle alleges that Google violated its copyright by implementing copyrighted Java APIs and copying a dozen small library source files. The source-file issue isn't interesting – source-code files are obviously copyrightable. But if you can copyright a language's APIs, are you copyrighting the language? It's hard to say. We'll have to wait for the judge's ruling – this case is still pending. (Read more here.)
Outside the U.S., the applicability of copyright law to programming languages is being tested in the United Kingdom, where SAS Institute, a publisher of statistical-analysis software, has brought suit against competitor World Programming Ltd., alleging that World has duplicated the SAS programming language in its software. Again, we are waiting for a judge's ruling (the case is being adjudicated by the UK High Court). There is an interesting twist, however. In July 2010, the British court asked for guidance from the Court of Justice of the European Union. Specifically, the court asked the CJEU if programming languages could be copyrighted. The court has not ruled on the issue, but it has released a statement from the office of Advocate General Yves Bot, whose advisory statements are almost always followed by the court. Bot dismissed the idea the languages could be copyrighted: “The functionalities of a computer program and the programming language cannot be protected by copyright.” Should the court adopt this position, the matter would essential be closed throughout the European Union. (Read more here.)
Should languages be subject to copyright? I keep scratching my head. I can definitely see both sides of this fascinating issue.
Web recommendation: I read an interesting report on language choice and software quality today. The report was produced by an international consulting firm called CAST, which says it has analyzed 365 million lines of code in 745 IT applications. A language-by-language comparison shows the highest density of bad code in Java EE applications, while COBOL applications show the fewest problems. CAST, which advocates metrics in software development and management, makes a summary of the report available on its Web site for free, though you must fill out a registration form to get at the data. I'm not wholly convinced, but the report is food for thought. You can read it here. J.D. says check it out.
J.D. Hildebrand has written hundreds of articles for dozens of publications and online communities dedicated to software development. He plays a mean game of gin rummy.