Over at the forums we’ve been getting pretty excited over the prospect of an openTuring project, but the current discussions focus more on the legal aspects rather than technical details. So this brings up the question:
Can one copyright (or gain other intellectual property rights) to a programming language?
This case study will use Holtsoft’s Turing for the example. Since the only current language compiler is distributed as a commercial product (for a whooping $75 per copy), it makes one wonder what kind of legal protection could possibly apply to the language.
All of the intellectual property usually falls into one of four categories: patents, copyright, trade marks, and trade secrets. Industrial Design, sometimes in a category of its own, is not in this case applicable. And trade secrets only prevent the disclosure of the secrets, and can’t legally stop me from anything I can make on my own. Lets examine the remaining three types.
Patents – “may be granted for a new, useful, and non-obvious invention”. The IDE or the compiler could have some innovative way of working, and that particular part would be patentable. Though before getting into too much detail, a quick search at CIPO shows that HoltSoft does not own any patents. Besides, a clean room development should avoid any such incidents if the patents existed. Next!
Copyright – “at its most general, it is literally ‘the right to copy’ an original creation”. It usually applies to artistic works such as music, books, and software. Software? Now this is getting a little bit more interesting, but software refers to the IDE and the compiler, not the language. In fact, according to a Idea-expression dichotomy, “a copyright covers the expression of an idea, not the idea itself”. Meaning to say I cannot copy the source code behind the compiler or the compiler itself, but I could express the same idea (compiling the syntax) in a different way.
Though what about the syntax specifically, can it be copyrighted? At the very basic level, it is just a collection of words. A unique arrangement (source code) could be copyrighted, as it expresses an idea. This brings up the first casualty of the project – Turing’s GUI module. Unlike most other commands, Turing’s GUI is actually written entirely in Turing itself, and is included as a source code attachment. The idea of implementing a graphical interface cannot be patented (it is not non-obvious), but this particular way of doing it is copyrightable.
The syntax on its own is not. For the most part since programming languages borrow so heavily from each other, that a large subset of keywords has became very common in use. The examples would include if then else, for loop while, function, etc. In fact, Turing’s syntax is based on that of Pascal, the latter of which offers a number of compilers, including a GNU/GPL licensed FreePascal – an open sourced, cross-platform compiler. A role model for openTuring if you will.
The remaining intellectual property type – trade mark offers perhaps the most viable legal ground. Once again with CIPO, we actually get a match!
(1) Programming language software, namely, compilers, interpreters, editors, programming environment software, software for program development, manuals relating to programming languages and documentation relating to programming languages.
The bold lettered TURING has been in this use since 1984, and Holtsoft has recently (2002) renewed the property. And while the trademark makes no mention of the language or syntax, it covers quite a scope of software used to deal with programming languages. The case here would be that if I refer to any of the above listed types of software as “Turing”, it could be confused for that of HoltSoft’s. Perhaps openTuring shall remain as the code-name only, and we would need to find another dead mathematician to honour.
Note that this trademark would not prevent me from using “Turing” to refer to the product or the language, it just prevents the naming of software. Though I am rather skeptical of the “documentation relating to programming languages” clause. I can only speculate as to what extend this is actually covered, as I would think that referring to Turing in documentation (say for comparative purposes) is Fair Use.
The mandatory disclaimer: I do not hold a degree in legal studies, or intellectual property. Though in the process of researching and writing this post, I have convinced myself that usage of a subset of mostly common words for the purposes of expression, cannot be legally restricted.