Programming languages not copyrightable
Written by Sue Gee   
Monday, 05 December 2011

The functionalities of a computer program and programming languages cannot be protected by copyright. according to the European Court of Justice's senior adviser.

In an amazingly clear sighted ruling that not everyone will want to agree with, a European court has ruled that that you can't copyright the functionalities of a program, nor a programming language because these are ideas and not expressions of ideas.

The non-binding judgement was made last week by Advocate General Yves Bot in relation to a case brought by SAS against World Programming. SAS "invented" a statistical processing language and competitors have only been able to compete with SAS by creating compatible languages, or even identical languages, for their statistical software.


The Advocate General expressed his opinion as follows:

"If it were accepted that a functionality of a computer program can be protected as such, that would amount to making it possible to monopolize ideas, to the detriment of technological progress and industrial development."

Bot defined the functionality of a computer program as the set of possibilities offered by a computer system and as such ineligible for copyright protection. By contrast, the means for achieving these functionalities may be protected by copyright:

"Creativity, skill and inventiveness are expressed in the way in which the program is drawn up, in its writing. Thus, the way in which formulae and algorithms are will be likely to reflect the author's own intellectual creation and therefore be eligible for protection."

While the Advocate General's assessment is not binding on the Court of Justice, such opinions tend to be taken into account in final rulings.

It is a well known truism that if you think you have invented something or other completely new in software then it usually means that you are just not well enough exposed to what others are doing. You can even argue that we don't invent new programming ideas, we simply uncover what is already inherent in the machine.

We can reasonably claim copyright of our code, but rarely for what it does. If another programmer writes a program with the same functionality then this should be fair game. The opinion backs up previous directives that copyrighting programs does not protect programming languages, interfaces or functionality.

Of course we all feel that ths is reasonable when on one side of the fence, but when faced with the duplication of our own work we tend not to be so reasonable. But copyright cannot be claimed on an idea, only the expression of an idea.

If you really are convinced that you have invented something new then you need a patent, which in theory, but not in practice, should recognize and reward a truly novel software idea. The failure of the patent system has been its total inability to actually distinguish between a real innovation and something that is glaringly obvious to all programmers.

The opinion that a programming language cannot be copyrighted is particularly relevant if you plan to take the Domain Specific Language (DSL) approach to building a system. In this case, instead of writing copyrightable code, you might well move a large chunk of the system into the DSL, which as a programming language cannot be copyrighted. In other words, if you invent a DSL for doing something clever and don't patent what is clever about it, then any other programmer is quite free to re-implement your language and provide the same functionality.

More Information

Ruling of ECJ


To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Google+, Twitter or Facebook or sign up for our weekly newsletter.


What Languages Do Devs Want to Learn?

Python, of course. What comes as a surprise is the size of the margin between Python and the rest of the pack. The other unexpected finding is that JavaScript doesn't even make it into the top 10. So, [ ... ]

Angular 11 Released With Byelog Goal Complete

Angular 11 has been released with updates across the platform including the framework, the CLI and components. More specifically, the new version enforces stricter types and has automatic inlining of  [ ... ]

More News

Last Updated ( Monday, 05 December 2011 )