<p>In Python, you use the term <code>print</code>. If there was another language that worked in the exact same way as Python, but used slightly different terms (like <code>Print</code>), would this be allowed?</p>
<p>How similar is too similar for programming languages?</p>

<language-design><language-comparison><python><design-choice-comparison>
Are you allowed to use almost identical language to another language?
CC BY-SA 4.0
2023-06-04T20:38:28.947Z
There are no rules, you can make whatever language you want. Python is released under a license that allows modification. If that language is useful is another matter though
mousetail 'he-him'
CC BY-SA 4.0
2023-06-04T20:48:17.763Z
Welcome to PLDI! Just to clarify, are you talking about one specific feature being the same (like how `print` works) while the rest of the language is different, or the entire language being almost identical, with the only difference being something like `print` vs. `Print`? (or both?)
rydwolf
CC BY-SA 4.0
2023-06-04T21:04:39.997Z
"Allowed" by who?
kaya3
CC BY-SA 4.0
2023-06-04T22:14:27.590Z
I think this is better suited for law.stackexchange.com as this is a legal question. Also, in addition to copyright law as mentioned by Hormer's answer, there are active patents related to language design and implementation.
Longinus
CC BY-SA 4.0
2023-06-04T22:18:50.037Z
This also depends on your jurisdiction.
Longinus
CC BY-SA 4.0
2023-06-04T23:12:42.273Z
Welcome! In terms of what is strictly _possible_, it might be useful to look at examples of language forks that don't actually deviate from the parent language, e.g. [Rust](https://www.rust-lang.org/) and [Crab](https://crablang.org/). I'd agree that this is more about legality than language design or implementation.
quiet_laika
CC BY-SA 4.0
2023-06-05T08:40:17.630Z
Your question as worded can be taken several ways. Are you worried about copyright violation? or about whether you can call your implementation of a language by the same name if you change it slightly.
A solution in the later case is to say it is a _dialect_ of the parent language.
Bruce Adams
<p>You can make any language you want. Many languages take strong inspiration from one or more others and significantly overlap (consider C→C++). It's also very common for operations like <code>print</code> to have similar names and functionality between languages either from inspiration or parallel evolution.</p>
<p>There have been legal cases asserting copyright over APIs, but consensus and precedent currently suggests that they are not copyrightable, so an independent language with only similar operations is likely to be clear. If you were to take the existing Python implementation (or another language's) and modify it, you would need to follow the licensing terms that made it available to you, and the same is true for taking existing written specifications.</p>
<p>A language that is exactly like Python except for some function names is probably not all that <em>useful</em>, but there are systems that take an existing programming language translate keywords and builtins to other natural languages, for example. These might have value in some circumstances. Otherwise, a language that is identical up to alpha-renaming is unlikely to get much use from anybody, so you might consider that &quot;too close&quot; from an adoption perspective.</p>
<p>If you have more specific concerns about e.g. legal liability for something then you'd need to ask your lawyer.</p>

CC BY-SA 4.0
2023-06-04T20:53:01.183Z
2023-06-04T20:53:01.183Z
Michael Homer
# Are you allowed to use almost identical language to another language?
Posted by: username_0 on 2023-06-04
In Python, you use the term `print`. If there was another language that worked in the exact same way as Python, but used slightly different terms (like `Print`), would this be allowed?

How similar is too similar for programming languages?
**Tags:** language-design language-comparison python design-choice-comparison
> **Comments:**
> **username_1**: There are no rules, you can make whatever language you want. Python is released under a license that allows modification. If that language is useful is another matter though  
> **username_2**: Welcome to PLDI! Just to clarify, are you talking about one specific feature being the same (like how `print` works) while the rest of the language is different, or the entire language being almost identical, with the only difference being something like `print` vs. `Print`? (or both?)  
> **username_3**: "Allowed" by who?  
> **username_4**: I think this is better suited for law.stackexchange.com as this is a legal question. Also, in addition to copyright law as mentioned by Hormer's answer, there are active patents related to language design and implementation.  
> **username_4**: This also depends on your jurisdiction.  
> **username_5**: Welcome! In terms of what is strictly _possible_, it might be useful to look at examples of language forks that don't actually deviate from the parent language, e.g. [Rust](https://www.rust-lang.org/) and [Crab](https://crablang.org/). I'd agree that this is more about legality than language design or implementation.  
> **username_6**: Your question as worded can be taken several ways. Are you worried about copyright violation? or about whether you can call your implementation of a language by the same name if you change it slightly.
A solution in the later case is to say it is a _dialect_ of the parent language.  
---
## 1 answers
### Answer by username_7 on 2023-06-04. Score: 4 | Accepted answer
You can make any language you want. Many languages take strong inspiration from one or more others and significantly overlap (consider C→C++). It's also very common for operations like `print` to have similar names and functionality between languages either from inspiration or parallel evolution.

There have been legal cases asserting copyright over APIs, but consensus and precedent currently suggests that they are not copyrightable, so an independent language with only similar operations is likely to be clear. If you were to take the existing Python implementation (or another language's) and modify it, you would need to follow the licensing terms that made it available to you, and the same is true for taking existing written specifications.

A language that is exactly like Python except for some function names is probably not all that *useful*, but there are systems that take an existing programming language translate keywords and builtins to other natural languages, for example. These might have value in some circumstances. Otherwise, a language that is identical up to alpha-renaming is unlikely to get much use from anybody, so you might consider that "too close" from an adoption perspective.

If you have more specific concerns about e.g. legal liability for something then you'd need to ask your lawyer.
---
