14

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?

16
  • 11
    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.
    – user7043
    Dec 8, 2012 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, 2012 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.
    – jcora
    Dec 8, 2012 at 22:40
  • 1
    I guess I will keep the spec in the public domain then.
    – jcora
    Dec 8, 2012 at 22:54
  • 2
    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. Dec 8, 2012 at 23:01

4 Answers 4

16

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)

11
  • 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, 2012 at 21:15
  • 3
    @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, 2012 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. Dec 8, 2012 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, 2012 at 2:18
  • 3
    @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 Dec 9, 2012 at 3:45
9

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.

3
  • 1
    +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.
    – jcora
    Dec 9, 2012 at 12:59
  • 1
    Update: in May 2014 a federal circuit court reversed that decision and said that APIs could be copyrighted. eff.org/deeplinks/2014/05/…
    – nobody
    Nov 11, 2014 at 4:03
  • But that wasn't the real point of my post. After the total debacle of Oracle's power-play with Java, no one in their right mind, and with any knowledge of history, will knowingly place this kind of noose around their company's or project's neck. If anything, the reversal by the Appellate Court only serves to give even greater weight to the argument for using only OSS tools and languages. It's amazing, and deeply ironic, that an a**hole like Larry Ellison should be the person to drive home the true value of Libre/Free software to even the most hard-headed capitalist or business person. Nov 11, 2014 at 19:33
2

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.

2
  • Writing a grammar for the language would still not protect it. The only thing it would do, is stop someone else re-writing the grammar in a similar way to you. I could write a grammar for the English language, that wouldn't then stop you from being able to post on SE though. May 17, 2014 at 12:05
  • Gavin - I wrote.... "that wouldn't protect you against someone writing a different grammar that described the same language." I hope this makes clear that such a copyright would not protect the language, only that way of describing the language. Still - it might make a person feel better. May 17, 2014 at 15:14
1

There have been different answers to this question over time:

In 2012, a similar question was answered "you cannot" 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. The rationale for this answer was that interopability between different implementations of a language requires copying of the syntax of a programming language, and thus doing so should be allowed under "fair use" rules.

In 2014, however, the US court of appeals decided that the just legal answer was indeed "yes, you can", on the grounds that to provide interopability (or not), and under what rules is at the sole discretion of the original copyright holder. In this most recent interpretation, if someone does not want you to be compatible with their programming language, API or other interface specification, they have every right to stop you.

In a nutshell, as of 2014 it is probably fair to assume: yes, a programming language (its syntax, structure and sequence of language constructs) can be copyrighted

Note that copyright law is subject to local interpretaton and that rules in your country may differ. If in doubt consult a lawyer...

(removed the rest of the argument, see history)

Disclaimer: IANAL

4
  • Annnddd...this ruling was just overturned. Oracle appelaed, and this time the judges weren't programmers.
    – jmoreno
    May 11, 2014 at 16:04
  • @jmoreno thanks for pointing this out. updated the answer to reflect this new development...
    – miraculixx
    May 17, 2014 at 9:55
  • Just want to say, not a lawyer or a psychiatrist, just a programmer, but the 2014 ruling seems borderline insane to me. It's a bunch of commands!
    – jmoreno
    May 17, 2014 at 18:21
  • 1
    Please don't add to the confusion. OP asked about copyrightability of a programming language. Oracle vs Google was about APIs and had nothing to do with the Java programming language itself. Apr 6, 2021 at 2:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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