9

I have created a programming language (an interpreter, a dedicated text-editor, reference manual and documentation, including usage examples), and I would like to publish it. I am interested in the sorts of licenses there are for this (both free open-source and proprietary), what those licenses mean for the ownership of the language and its further development.

Also, whether in Germany there are different sorts of license or is the software-license structured internationally. Any help or hints for further reading about this matter would be appreciated.

5
  • 8
    What exactly are you trying to license? A command description, reference manual, software development tools, sample code, a compiler or interpreter, ... ? Commented Oct 9 at 11:13
  • 1
    @Martin_in_AUT A complete language: an interpreter, a dedicated text-editor, reference manual and documentation (including usage examples) Commented Oct 9 at 11:31
  • 2
    A lot of information is missing. What are your goals, target audience, competing languages, differentiation,...? Without that, the question is too broad and impossible to answer. Pls note that there might be different licenses for the different parts you are offering. Commented Oct 9 at 14:33
  • 3
    What is the point of preventing your language from being developed in directions you don't agree with. Either the language improves and more people will use it (which is good, except maybe for your ego?) or the language gets worse and people will stick to your original project and not use the clone. So what's exactly the problem, if not ego? Commented Oct 10 at 10:05
  • @Student Note that the interpreter, text-editor, reference manual, and documentation are not the language, they are entities that are distinct from the language itself. The language itself would be defined by rules that outline the language's syntax and semantics, and theoretically could be licensed differently from the other entities. Commented Oct 11 at 23:30

3 Answers 3

14

an interpreter, a dedicated text-editor, reference manual and documentation, including usage examples

All these things are eligible for copyright, and you can license them under any license you choose, open source or proprietary. If you have a specific goal you wish to accomplish with open source licensing, you can ask that as a separate question here, but please review our guidelines on license recommendation questions first. Anything to do with proprietary licenses is off-topic here.

However note that the copyright on all those things will not cover the language itself - i.e. anyone else is free to create a separate implementation for the language, and if they wish take the language in a direction you disagree with.

10
  • 15
    I have to say I think you have a fundamental misunderstanding of open-source licenses: one of the fundamental rights granted by an open-source license is the right to fork a project if you want to. Commented Oct 9 at 16:27
  • 13
    In fact, IIUC, you can't prevent people creating independent implementations even if the language is fully proprietary; the only thing you can stop them doing is using the same name (by trademarking it). Commented Oct 9 at 19:42
  • 2
    @gidds You can potentially patent bits of your language (implementation) as well. Commented Oct 9 at 19:51
  • 1
    ... but patenting an invention is expensive and takes a long time, and may need to be done separately in multiple jurisidictions. Even if an invention is eligible, patenting is not a practical option unless you have money to burn or you plausibly expect to recoup your costs through sales or similar. And of course, protecting your ability to recoup costs plus more is the whole idea behind of patents. Commented Oct 9 at 20:18
  • 2
    @Student Frame challenge: Others taking your language in a direction you disagree with is probably a good thing: Clearly your language is useful enough for them to want to continue maintaining it, so your work will be recognized. FOSS is all about authors giving up control to the users of their software. If these users hard fork, there probably is a good reason for that, and the fork helps your project stay useful and relevant to the forking users, even if your original project diverges. Commented Oct 10 at 17:43
13

You seem to have asked your actual question in a comment, so I'm going to answer that:

Thank you for your response. Actually my plan is to publish the language as an open-source project. But your last point is exactly the thing that I would like to prevent: that the language gets different clowns, developed in directions I do not agree. Is there any sort of open-source license which prevents others from "stealing" the language from me?

You have expressed two conflicting desires:

[I would like] to publish the language as an open-source project.

vs

I would like to prevent: that the language gets different [clones], developed in directions I do not agree [with; ...] others from "stealing" the language from me

The whole point of open source is to allow people to "steal" someone else's work - but the intention is for people to "steal in a good way", i.e. copy, modify and distribute their own version, with attribution, to achieve something of general public benefit.

If you expressly want to retain "ownership", then depending on what exactly "ownership" means to you, you would be wanting to keep your language proprietary, and not publish it as open source.

However, you'd probably end up without any users that way: certainly, it was common for people to use proprietary languages back in 2000, but by now there's very few people who would choose to use a brand new proprietary language for anything since there's so many open source ones already available now.


So, I am going to suggest what seems to be the standard sensible route that is followed:

Publish the language implementation (interpreter, documentation, etc.) as open source, but at the same time, trademark the name of the language and keep this trademark well defended. Make clear in your README (or similar) that the name is trademarked and that if anyone clones the project they must do so under a different name.

This means that if anyone wants to distribute a modified version of the language, they can either send you a pull request and await your approval of the change (and then you, as upstream, get to release it yourself), or they can release it independently but in a way that makes it abundantly clear that their version isn't the "original, official, trusted version".

(Do not patent anything - it's widely accepted by now that in the world of software, this achieves no practical benefit, isn't even legally possible in many jurisdictions, and only encumbers your work and results in no one using it.)


As for what license to pick - if indeed you do decide to publish as open source - there are broadly two schools of thought, permissive (e.g. BSD, MIT, etc.) versus copyleft (typically the GPL family: LGPL, GPL, AGPL in order from least to most restrictive). I won't elaborate on the details here, but suffice to say that what you pick will depend on what matters most to you: making it easy for people to use your work, or preventing companies from exploiting your work without "giving anything back"? If your prime motivation is to make it easy for people to use your work, then you want a permissive license, but you then accept the risk that your work will be exploited; conversely, if you want to avoid your work being exploited, you want a restrictive license, but you then accept that people might decide against using your work in favor of a more permissive alternative.

1
  • 4
    It sounds like OP is looking for "source available", which is the meaning that a lot of people associate (wrongly) with the phrase "open source", where anyone can read and debug through the source but the creator retains ownership rights, including the right to forbid making copies of derivative works. Your recommendation of "open source + trademarked official release" is probably a better path. Commented Oct 10 at 16:12
8

what those licenses mean for the ownership of the language and it's further development.

Nothing.
Programming languages cannot be owned.

Copyright does not apply to spoken, written, or coding languages, only to works made in them. Patenting a programming language is explicitly impossible in the EU under Article 52 of the European Patent Code:

(2)The following in particular shall not be regarded as inventions within the meaning of paragraph 1: (c)schemes, rules and methods for performing mental acts, playing games or doing business, and programs for computers;

Copyright could apply in theory, if the PL was based on something like Klingon, making it impractical. But even in Paramount v. Axanar, while the court ruled for Paramount, it stated that the Klingon language itself is not subject to copyright.

Whoever invented the first PL (a contested question) had a shot at patenting it, but that ship has sailed 70+ years ago. Any new PL will be considered derivative of the extensive existing body of public domain PLD work. Specific elements of a PL can be patented, e.g. if you invent an O(log N) sorting algorithm and build it into the language, but the rest of it can still be used by others.

Since you intend to keep it open-source, there's nothing you need to do: just pick the licenses you want for your tools. Maybe add a license to your language specification to make it clear that it's public.

Realistically, a simple plain text request not to fork your language will be followed by 99%+ of the FOSS community, so no one with the ability to do so will even try. Unless it overtakes the world by storm like Kotlin or Flutter, but those came from Jetbrains and Google to begin with.

5
  • Thank you for your nice explanation! I actually am more concerned about Non-FOSS people stealing ideas/use-cases etc, my concern is not how the FOSS community uses/works/reshapes it. Commented Oct 10 at 7:18
  • @Student Basically the law regards languages as something non-ownable, like air on Earth. You can own an air tank, a compressor, a novel method for purifying air, but Earth's atmosphere is free for all. Commented Oct 10 at 11:56
  • 3
    @Student in that case, a strong copyleft license, perhaps even AGPL, would seem like the obvious choice. That way, anyone who forks your work has to give back their modifications to the community, and thus becomes part of the FOSS community. Commented Oct 10 at 17:38
  • @Student You should edit this into your question, as it makes a big difference. Please ensure that your question includes as much detail as possible. Commented Oct 11 at 23:49
  • @Student ideas aren't property and can't be stolen. Some specific inventions can be patented, and those patents can be treated somewhat like "property" (and in some corrupt jurisdictions, patentable inventions can include software). Use cases aren't property either, and can't be patented - but the actual text & diagrams used to describe a specific use case may have sufficient novelty and creativity to be covered by copyright laws....and even then, it wouldn't be difficult for someone to write up a similar use case in their own words to avoid any risk of infringement. Commented Oct 13 at 14:31

Your Answer

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

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.