Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've decided to create a programming language of my own, mostly just for fun. However, I got interested in the legal aspect of it all.

You can, for example, licence specific programs under specific terms. However, how do you go about licensing a language? Also, by that I don't just mean the implementation of the language (compiler & VM), but the standard itself. Is there something else to a programming language I'm missing?

What I would like to achieve by such licensing:

  1. Make it completely FOSS (can a language even be FOSS, or is that the implementation that can be FOSS?)
  2. Establish myself as the author (can you legally be an author of a language? Or, again, just the implementation?)
  3. Make it so that anyone implementing my language would be required to attribute me (MIT-style. Please note that I do not have any hopes for anyone actually ever doing that though, I'm just learning.)

I think that the solution would be to separately license the VM and the compiler for my language, as "the official implementation", and then license the design document as the language itself.

What exactly am I missing here?

share|improve this question
5  
Re (1): A language spec isn't software, so FOSS doesn't apply. Also, if I came across a language whose author attempted such a thing, for whatever purpose, I'd be extremely cautious (that is to say, I'd probably not use it at all). It reeks of control addiction, mistrust, and poor knowledge of legal issues. –  delnan Dec 8 '12 at 21:06
    
I'm a little at a loss as to what your end-goal is here. Maybe if we knew that, we could help you fill in the gaps as to how to achieve it. Also would be useful to know who your target market is. –  pdr Dec 8 '12 at 21:41
    
Wait, how does labeling anything reek of control addiction, @delnan? Or were you referring to copyrighting a spec? AFAIK, copyrighting isn't inherently evil, it doesn't have to be restrictive at all. –  akled Dec 8 '12 at 22:40
1  
I guess I will keep the spec in the public domain then. –  akled Dec 8 '12 at 22:54
1  
I am not a lawyer, but copyrighting a document (even if it specifies a language) is not copyrighting a language. For instance, I do use copyrighted dictionnaries, and I do speak French without violating them. –  Basile Starynkevitch Dec 8 '12 at 23:01
show 12 more comments

4 Answers

up vote 10 down vote accepted

Disclaimer.IANAL();

You can't copyright a programming language no more than you can copyright a spoken language. You can license a particular implementation of the language and even sell that compiler much how Borland did with Delphi for many years.

Many languages today have a BDFL (Benevolent Dictator for Life) who determines what goes into the language and what doesn't. Python, Ruby, and Perl are all examples of that.

Other languages have officially designed standards by one of several standards boards, typically ANSI, ECMA, or ISO. Examples include C, C++, and Javascript.

Some languages fall into murkier areas due to politicking between companies. Java is an example because Microsoft sits on some of the standards boards.

Some languages move from one to another, typically from BDFL to Standardized, C is a good example.

Depending on the specification of the language, some compiler writers may implement different features in different ways (CPython vs PyPy for example) or add features (Microsoft C++ vs GNU C++ or MySQL vs PostGreSQL vs SQL Server)

share|improve this answer
1  
Loglan is a precedent for the non-copyrightable status of constructed languages. Lojban is effectively an open reimplementation of Loglan. On the other hand, Sun sued Microsoft for their Visual J++ implementation of Java… –  Jon Purdy Dec 8 '12 at 21:15
2  
@JonPurdy: With Java, it's a trademark issue, not a copyright issue. Look at how LiveScript became Javascript, while it was in Sun/Netscape's combined interests, later Microsoft released JScript to show similarity while avoiding trademark issues, and then later everyone agreed to ECMAScript as a common name. –  pdr Dec 8 '12 at 21:31
1  
@JonPurdy,@pdr I think there were also issues of contract law in the dispute between Sun and Microsoft. Microsoft had licensed JVM technology from Sun and part of the license was agreeing not to produce non-standard implementations of Java. –  Charles E. Grant Dec 8 '12 at 22:40
1  
@pdr As far as I can remember there was a very precise specification a what a Java implementation should provide (including a few thousand tests that an implementation should pass). Microsoft was sued because they had a non-standard implementation (probably to lock-in users by distributing applets that would only work with Internet Explorer). After the strategy of distributing a non-standard implementation of Java failed, Microsoft went on to create C#. –  Giorgio Dec 9 '12 at 2:18
2  
@Giorgio - precisely. What Sun was objecting to was MSFT calling their language Java while making significant changes (to lock it to MSFT's platform) essentially they were producing a counterfeit Java –  Martin Beckett Dec 9 '12 at 3:45
show 5 more comments

You could write a grammar for your language and assert your copyright over that. Of course, that wouldn't protect you against someone writing a different grammar that described the same language.

My biggest question would be "why would you want to". After all, you probably want people to adopt your language. If someone else claimed to have created it, then simply having a good web presence would be enough to enable you to call them a liar.

As others have noted, if your main goal is to prevent others from stealing the name of your language, a trademark would be more useful.

share|improve this answer
add comment

Any attempt to restrict / control / own a language is doomed to failure. In order for a language to become widely used, people must feel a) that it solves a problem better than some existing, established language, and b) they are comfortable that they won't suddenly be on the wrong end of a license / law suit. If they think that that is even possible, they will go elsewhere.

I offer the absolute Tragedy of Java, as performed by Larry Ellison (AKA Oracle) and Google. Ellison performed a global-scale legal faceplant that accomplished 2 things:

  1. He showed the world that he would sue anyone he thought he could get money from, and
  2. He guaranteed that future developments that were not absolutely already tied to Java would choose anything other than Java.

Google didn't just win this lawsuit, they eviscerated Oracle's pathetic claims of patent and copyright. After this, no one I know will place any faith whatsoever in any "open source technology" that has Oracle's fingerprints on it (think: MySQL).

If you want, you can skip the developer-centuries behind Java and go straight to being ignored ... just have all developer's sign a contract before they can use your new language.

share|improve this answer
    
+1 for making it perfectly clear. You hit the nail with your 2nd point about Java. This has been a major factor in deciding whether to keep on using Java or create a similar language myself. Though, I don't really expect people to use it, as I have said, it's for personal and educational purposes. But, I'd like to keep my options open. –  akled Dec 9 '12 at 12:59
add comment

In some sense this question has recently been answered in the Oracle v.s. Google case over the use of the Java API in Android, and a similar answer was given in the case of WPL's implementation of the SAS programming language in their own product.

In a nutshell: no, a programming language cannot be copyrighted (but its specific implementation is).

So I think you make the right distinctions:

I think that the solution would be to separately license the VM and the compiler for my language, as "the official implementation", and then license the design document as the language itself.

The "language itself" would consist of its syntax and semantics (see definition in Wikipedia), while the compiler and VM constitute the specific implementation. While you cannot copyright the language itself (in the sense to stop someone else from providing their own implementation), you can of course still claim authorship for it, and ask for your name to be included in any implementation. However, the language itself not being protected by copyright means you cannot force someone else to adhere.

Disclaimer: IANAL

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.