Qu'est-ce qui constitue un langage de programmation et comment protège-t-on un langage de programmation?

12

J'ai décidé de créer mon propre langage de programmation, principalement pour le plaisir. Cependant, je me suis intéressé à l'aspect juridique de tout cela.

Vous pouvez, par exemple, autoriser des programmes spécifiques sous des conditions spécifiques. Cependant, comment procédez-vous pour octroyer une licence à une langue ? De plus, je ne parle pas seulement de l'implémentation du langage (compilateur et VM), mais de la norme elle-même. Y a-t-il autre chose dans un langage de programmation qui me manque?

Ce que j'aimerais réaliser avec une telle licence:

  1. Faites-le complètement FOSS (un langage peut-il même être FOSS, ou est-ce l'implémentation qui peut être FOSS?)
  2. S'établir en tant qu'auteur (pouvez-vous légalement être l'auteur d'une langue? Ou, encore une fois, juste la mise en œuvre?)
  3. Faites en sorte que toute personne implémentant mon langage soit tenue de m'attribuer (style MIT. Veuillez noter que je n'ai aucun espoir pour quiconque le fasse, cependant, j'apprends juste.)

Je pense que la solution consisterait à octroyer une licence distincte à la machine virtuelle et au compilateur pour ma langue, en tant que «mise en œuvre officielle», puis à autoriser le document de conception comme langue elle-même .

Qu'est-ce que je manque exactement ici?

jcora
la source
10
Re (1): Une spécification de langue n'est pas un logiciel, donc FOSS ne s'applique pas. De plus, si je tombais sur une langue dont l'auteur avait tenté une telle chose, pour quelque raison que ce soit, je serais extrêmement prudent (c'est-à-dire que je ne l'utiliserais probablement pas du tout). Cela sent la dépendance au contrôle, la méfiance et la mauvaise connaissance des questions juridiques.
Je ne sais pas trop quel est votre objectif final. Peut-être que si nous le savions, nous pourrions vous aider à combler les lacunes quant à la façon d'y parvenir. Il serait également utile de savoir qui est votre marché cible.
pdr
Attendez, comment étiqueter quelque chose qui pue la dépendance au contrôle, @delnan? Ou parliez-vous du droit d'auteur sur une spécification? AFAIK, le copyright n'est pas intrinsèquement mauvais, il ne doit pas du tout être restrictif.
jcora
1
Je suppose que je garderai alors la spécification dans le domaine public.
jcora
1
Je ne suis pas avocat, mais le copyright d'un document (même s'il spécifie une langue) n'est pas le copyright d'une langue. Par exemple, j'utilise des dictionnaires protégés par des droits d'auteur et je parle français sans les violer.
Basile Starynkevitch

Réponses:

15

Clause de non-responsabilité.IANAL ();

Vous ne pouvez pas plus protéger un langage de programmation que vous ne pouvez protéger un langage parlé. Vous pouvez autoriser une implémentation particulière du langage et même vendre ce compilateur comme Borland l'a fait avec Delphi pendant de nombreuses années.

De nombreuses langues ont aujourd'hui un BDFL (Benevolent Dictator for Life) qui détermine ce qui entre dans la langue et ce qui ne l'est pas. Python, Ruby et Perl en sont tous des exemples.

D'autres langues ont officiellement conçu des normes par l'une des nombreuses commissions de normalisation, généralement ANSI, ECMA ou ISO. Les exemples incluent C, C ++ et Javascript.

Certaines langues tombent dans des zones plus troubles en raison de la politique entre les entreprises. Java en est un exemple, car Microsoft siège sur certains des tableaux de normes.

Certaines langues passent de l'une à l'autre, généralement du BDFL au standardisé, C est un bon exemple.

Selon la spécification du langage, certains rédacteurs du compilateur peuvent implémenter différentes fonctionnalités de différentes manières (CPython vs PyPy par exemple) ou ajouter des fonctionnalités (Microsoft C ++ vs GNU C ++ ou MySQL vs PostGreSQL vs SQL Server)

Ingénieur du monde
la source
1
Loglan est un précédent pour le statut non protégé par le droit d'auteur des langues construites. Lojban est en réalité une réimplémentation ouverte de Loglan. D'un autre côté, Sun a poursuivi Microsoft pour leur implémentation Visual J ++ de Java…
Jon Purdy
2
@ JonPurdy: Avec Java, c'est un problème de marque, pas un problème de droit d'auteur. Regardez comment LiveScript est devenu Javascript, alors que c'était dans l'intérêt combiné de Sun / Netscape, plus tard Microsoft a publié JScript pour montrer la similitude tout en évitant les problèmes de marque, puis plus tard tout le monde a accepté ECMAScript comme nom commun.
pdr
1
@ JonPurdy, @ pdr Je pense qu'il y avait aussi des problèmes de droit des contrats dans le différend entre Sun et Microsoft. Microsoft avait concédé sous licence la technologie JVM à Sun et une partie de la licence acceptait de ne pas produire d'implémentations non standard de Java.
Charles E. Grant
1
@pdr Pour autant que je me souvienne, il y avait une spécification très précise sur ce qu'une implémentation Java devrait fournir (y compris quelques milliers de tests qu'une implémentation devrait réussir). Microsoft a été poursuivi en justice parce qu'il avait une implémentation non standard (probablement pour verrouiller les utilisateurs en distribuant des applets qui ne fonctionneraient qu'avec Internet Explorer). Après l'échec de la stratégie de distribution d'une implémentation non standard de Java, Microsoft a continué à créer C #.
Giorgio
3
@Giorgio - précisément. Ce à quoi Sun s'opposait, c'était que MSFT appelait leur langage Java tout en apportant des modifications importantes (pour le verrouiller sur la plate-forme de MSFT), essentiellement, ils produisaient un Java contrefait
Martin Beckett
8

Toute tentative de restreindre / contrôler / posséder une langue est vouée à l'échec. Pour qu'une langue soit largement utilisée, les gens doivent sentir a) qu'elle résout un problème mieux que certaines langues existantes et établies, et b) qu'ils sont à l'aise de ne pas se retrouver soudainement du mauvais côté d'une licence / loi costume. S'ils pensent que c'est même possible, ils iront ailleurs.

J'offre la tragédie absolue de Java, interprétée par Larry Ellison (AKA Oracle) et Google. Ellison a réalisé une mise en page juridique à l'échelle mondiale qui a accompli 2 choses:

  1. Il a montré au monde qu’il allait poursuivre quiconque pensait pouvoir obtenir de l’argent, et
  2. Il a garanti que les développements futurs qui n'étaient pas absolument liés à Java choisiraient autre chose que Java.

Google n'a pas seulement remporté ce procès, ils ont éviscéré les revendications pathétiques d'Oracle en matière de brevets et de droits d'auteur. Après cela, je ne connais personne placera une foi que ce soit dans une « technologie open source » qui a les empreintes digitales d'Oracle sur elle (pensez: MySQL).

Si vous le souhaitez, vous pouvez ignorer les siècles des développeurs derrière Java et passer directement à l'ignorance ... demandez simplement à tous les développeurs de signer un contrat avant de pouvoir utiliser votre nouveau langage.

Peter Rowell
la source
1
+1 pour le rendre parfaitement clair. Vous avez frappé le clou avec votre 2e point sur Java. Cela a été un facteur majeur dans la décision de continuer à utiliser Java ou de créer moi-même un langage similaire. Cependant, je ne m'attends pas vraiment à ce que les gens l'utilisent, comme je l'ai dit, c'est à des fins personnelles et éducatives. Mais, je voudrais garder mes options ouvertes.
jcora
1
Mise à jour: en mai 2014, un tribunal de circuit fédéral a annulé cette décision et a déclaré que les API pouvaient être protégées par le droit d'auteur. eff.org/deeplinks/2014/05/…
personne
Mais ce n'était pas le vrai point de mon message. Après la débâcle totale du jeu de puissance d'Oracle avec Java, personne dans son bon sens, et avec une connaissance de l'histoire, ne placera sciemment ce genre de corde autour du cou de leur entreprise ou de leur projet. En tout état de cause, le renversement par la Cour d'appel ne fait que donner encore plus de poids à l'argument pour utiliser uniquement les outils et les langages OSS. Il est étonnant et profondément ironique qu'un trou ** comme Larry Ellison soit la personne qui permette de faire valoir la véritable valeur du logiciel Libre / Free, même pour le capitaliste ou l'homme d'affaires le plus hardi.
Peter Rowell
2

Vous pouvez écrire une grammaire pour votre langue et faire valoir vos droits d'auteur sur cela. Bien sûr, cela ne vous protégerait pas contre une personne écrivant une grammaire différente décrivant la même langue.

Ma plus grande question serait "pourquoi voudriez-vous". Après tout, vous voulez probablement que les gens adoptent votre langue. Si quelqu'un d'autre a prétendu l'avoir créé, alors simplement avoir une bonne présence sur le Web serait suffisant pour vous permettre de le traiter de menteur.

Comme d'autres l'ont fait remarquer, si votre objectif principal est d'empêcher les autres de voler la namelangue de votre, une marque serait plus utile.

Dominic Cronin
la source
Écrire une grammaire pour la langue ne la protégerait toujours pas. La seule chose que cela ferait, c'est d'empêcher quelqu'un d'autre de réécrire la grammaire de la même manière que vous. Je pourrais écrire une grammaire pour la langue anglaise, cela ne vous empêcherait pas de publier sur SE cependant.
Gavin Coates
Gavin - j'ai écrit ... "cela ne vous protégerait pas contre quelqu'un qui écrit une grammaire différente qui décrit la même langue." J'espère que cela montre clairement qu'un tel droit d'auteur ne protégerait pas la langue, seulement cette façon de décrire la langue. Pourtant - cela pourrait aider une personne à se sentir mieux.
Dominic Cronin
1

Il y a eu différentes réponses à cette question au fil du temps:

En 2012, une question similaire a été répondu « vous ne pouvez pas » dans l'Oracle vs Google cas sur l'utilisation de l'API Java dans Android, et une réponse similaire a été donnée dans le cas de la mise en œuvre de WPL du langage de programmation SAS dans leur propre produit. La justification de cette réponse était que l'interopérabilité entre les différentes implémentations d'un langage nécessite la copie de la syntaxe d'un langage de programmation, et que cela devrait donc être autorisé en vertu des règles de "fair use".

En 2014, cependant, la cour d'appel des États-Unis a décidé que la réponse juridique juste était effectivement "oui, vous pouvez", au motif que pour assurer l'interopérabilité (ou non), et selon quelles règles est à la seule discrétion du droit d'auteur d'origine titulaire. Dans cette interprétation la plus récente, si quelqu'un ne veut pas que vous soyez compatible avec son langage de programmation, son API ou toute autre spécification d'interface, il a le droit de vous arrêter.

En un mot, à partir de 2014, il est probablement juste de supposer: oui, un langage de programmation (sa syntaxe, sa structure et sa séquence de constructions de langage) peuvent être protégés par le droit d'auteur

Notez que la loi sur le droit d'auteur est sujette à une interprétation locale et que les règles de votre pays peuvent différer. En cas de doute, consultez un avocat ...

(supprimé le reste de l'argument, voir l'historique)

Avertissement: IANAL

miraculixx
la source
Annnddd ... cette décision vient d'être annulée. Oracle a appelé, et cette fois les juges n'étaient pas des programmeurs.
jmoreno
@jmoreno merci de l'avoir signalé. a mis à jour la réponse pour refléter ce nouveau développement ...
miraculixx
Je veux juste dire, pas un avocat ou un psychiatre, juste un programmeur, mais la décision de 2014 me semble insensée. C'est un tas de commandes!
jmoreno