-5
$\begingroup$

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?

$\endgroup$
7
  • 6
    $\begingroup$ 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 $\endgroup$
    – mousetail
    Jun 4, 2023 at 20:38
  • $\begingroup$ 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?) $\endgroup$ Jun 4, 2023 at 20:48
  • 5
    $\begingroup$ "Allowed" by who? $\endgroup$
    – kaya3
    Jun 4, 2023 at 21:04
  • 2
    $\begingroup$ 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. $\endgroup$
    – Longinus
    Jun 4, 2023 at 22:14
  • $\begingroup$ This also depends on your jurisdiction. $\endgroup$
    – Longinus
    Jun 4, 2023 at 22:18

1 Answer 1

4
$\begingroup$

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.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged .