Che cosa costituisce un linguaggio di programmazione e come si fa a tutelare un linguaggio di programmazione?


12

Ho deciso di creare un mio linguaggio di programmazione, principalmente solo per divertimento. Tuttavia, mi sono interessato all'aspetto legale di tutto ciò.

Ad esempio, è possibile concedere in licenza programmi specifici in base a termini specifici. Tuttavia, come si fa a ottenere una licenza per una lingua ? Inoltre, non intendo solo l'implementazione del linguaggio (compilatore e VM), ma lo standard stesso. C'è qualcos'altro in un linguaggio di programmazione che mi manca?

Cosa vorrei ottenere con tale licenza:

  1. Rendilo completamente FOSS (una lingua può anche essere FOSS o è l'implementazione che può essere FOSS?)
  2. Stabilirmi come autore (puoi legalmente essere un autore di una lingua? O, ancora, solo l'implementazione?)
  3. Fai in modo che chiunque implementi la mia lingua sia tenuto ad attribuirmi (in stile MIT. Tieni presente che non ho speranze che nessuno lo faccia mai, sto solo imparando).

Penso che la soluzione sarebbe quella di concedere in licenza separatamente la VM e il compilatore per la mia lingua, come "l'implementazione ufficiale", e quindi concedere in licenza il documento di progettazione come la lingua stessa .

Cosa mi manca esattamente qui?


10
Ri (1): una specifica della lingua non è un software, quindi FOSS non si applica. Inoltre, se mi imbattessi in una lingua il cui autore ha tentato una cosa del genere, per qualsiasi scopo, sarei estremamente cauto (vale a dire, probabilmente non lo userei affatto). Puzza di dipendenza da controllo, sfiducia e scarsa conoscenza delle questioni legali.

Sono un po 'perplesso su quale sia il tuo obiettivo finale qui. Forse se lo sapessimo, potremmo aiutarti a colmare le lacune su come raggiungerlo. Inoltre sarebbe utile sapere chi è il tuo mercato di riferimento.
pdr

Aspetta, in che modo etichettare qualcosa puzza di dipendenza da controllo, @delnan? O ti riferivi al copyright di una specifica? AFAIK, il diritto d'autore non è intrinsecamente malvagio, non deve essere affatto restrittivo.
jcora,

1
Immagino che manterrò le specifiche di dominio pubblico allora.
jcora,

1
Non sono un avvocato, ma il copyright di un documento (anche se specifica una lingua) non è il copyright di una lingua. Ad esempio, uso dizionari nazionali protetti da copyright e parlo francese senza violarli.
Basile Starynkevitch l'

Risposte:


15

Disclaimer.IANAL ();

Non puoi tutelare un linguaggio di programmazione come non puoi tutelare un linguaggio parlato. Puoi concedere in licenza una particolare implementazione della lingua e persino vendere quel compilatore in modo molto simile a quello che Borland ha fatto con Delphi per molti anni.

Molte lingue oggi hanno un BDFL (Benevolent Dictator for Life) che determina cosa entra nella lingua e cosa no. Python, Ruby e Perl ne sono tutti esempi.

Altre lingue hanno ufficialmente progettato gli standard da una delle diverse schede standard, in genere ANSI, ECMA o ISO. Gli esempi includono C, C ++ e Javascript.

Alcune lingue cadono in aree più oscure a causa del politicismo tra le aziende. Java è un esempio perché Microsoft si trova su alcune delle schede standard.

Alcune lingue si spostano dall'una all'altra, in genere da BDFL a standardizzato, C è un buon esempio.

A seconda delle specifiche del linguaggio, alcuni autori di compilatori possono implementare funzionalità diverse in modi diversi (ad esempio CPython vs PyPy) o aggiungere funzionalità (Microsoft C ++ vs GNU C ++ o MySQL vs PostGreSQL vs SQL Server)


1
Loglan è un precedente per lo stato non protetto da copyright delle lingue costruite. Lojban è effettivamente una reimplementazione aperta di Loglan. D'altra parte, Sun ha fatto causa a Microsoft per l' implementazione di Visual J ++ di Java ...
Jon Purdy,

2
@JonPurdy: con Java, è un problema di marchio, non di copyright. Guarda come LiveScript è diventato Javascript, mentre era nell'interesse combinato di Sun / Netscape, in seguito Microsoft ha rilasciato JScript per mostrare la somiglianza evitando problemi con i marchi, e poi tutti hanno accettato ECMAScript come nome comune.
pdr

1
@ JonPurdy, @ pdr Penso che ci siano stati anche problemi di diritto contrattuale nella controversia tra Sun e Microsoft. Microsoft aveva concesso in licenza la tecnologia JVM di Sun e parte della licenza stava accettando di non produrre implementazioni non standard di Java.
Charles E. Grant,

1
@pdr Per quanto ricordo, c'era una specifica molto precisa su ciò che un'implementazione Java dovrebbe fornire (incluse alcune migliaia di test che l'implementazione dovrebbe superare). Microsoft è stata citata in giudizio perché avevano un'implementazione non standard (probabilmente per bloccare gli utenti distribuendo applet che avrebbero funzionato solo con Internet Explorer). Dopo il fallimento della strategia di distribuzione di un'implementazione non standard di Java, Microsoft ha continuato a creare C #.
Giorgio,

3
@Giorgio - appunto. Ciò a cui Sun stava obiettando era che MSFT chiamava il loro linguaggio Java mentre apportava cambiamenti significativi (per bloccarlo alla piattaforma MSFT) essenzialmente stavano producendo un Java contraffatto
Martin Beckett,

8

Qualsiasi tentativo di limitare / controllare / possedere una lingua è destinato al fallimento. Affinché una lingua venga ampiamente utilizzata, le persone devono sentire a) che risolve un problema meglio di una lingua esistente e stabilita eb) sono a loro agio che non si troveranno improvvisamente dalla parte sbagliata di una licenza / legge completo da uomo. Se pensano che sia persino possibile, andranno altrove.

Offro la tragedia assoluta di Java, interpretata da Larry Ellison (AKA Oracle) e Google. Ellison ha eseguito un faceplant legale su scala globale che ha realizzato 2 cose:

  1. Ha mostrato al mondo che avrebbe citato in giudizio chiunque pensasse di poter ottenere denaro, e
  2. Ha garantito che i futuri sviluppi che non erano assolutamente già legati a Java avrebbero scelto qualcosa di diverso da Java.

Google non si è limitato a vincere questa causa, ma ha sviscerato le patetiche pretese di brevetto e copyright di Oracle. Dopo questo, nessuno che conosco porrà alcuna fede di sorta in qualsiasi "tecnologia open source" che ha le impronte digitali di Oracle su di esso (si pensi: MySQL).

Se vuoi, puoi saltare secoli di sviluppo dietro Java e passare direttamente all'ignoranza ... chiedi a tutti gli sviluppatori di firmare un contratto prima di poter usare il tuo nuovo linguaggio.


1
+1 per renderlo perfettamente chiaro. Hai centrato il tuo secondo punto su Java. Questo è stato un fattore importante nel decidere se continuare a usare Java o creare un linguaggio simile da solo. Tuttavia, non mi aspetto che le persone lo usino, come ho già detto, è per scopi personali ed educativi. Ma vorrei tenere aperte le mie opzioni.
jcora,

1
Aggiornamento: nel maggio 2014 un tribunale del circuito federale ha annullato tale decisione e ha affermato che le API potevano essere protette da copyright. eff.org/deeplinks/2014/05/…
nessuno

Ma quello non era il vero punto del mio post. Dopo la totale debacle del power-play di Oracle con Java, nessuno nella loro mente giusta, e con qualsiasi conoscenza della storia, metterà consapevolmente questo tipo di cappio attorno al collo della loro azienda o progetto. Semmai, l'inversione da parte della Corte d'appello serve solo a dare un peso ancora maggiore all'argomento dell'uso solo di strumenti e linguaggi OSS. È sorprendente, e profondamente ironico, che un buco come Larry Ellison dovrebbe essere la persona che guida il vero valore del software Libre / Free anche per il capitalista o l'uomo d'affari più duro.
Peter Rowell,

2

Potresti scrivere una grammatica per la tua lingua e far valere il tuo copyright. Ovviamente, ciò non ti proteggerebbe da qualcuno che scrive una grammatica diversa che descrive la stessa lingua.

La mia più grande domanda sarebbe "perché dovresti volerlo". Dopo tutto, probabilmente vuoi che le persone adottino la tua lingua. Se qualcun altro ha affermato di averlo creato, semplicemente avere una buona presenza sul web sarebbe sufficiente per permetterti di chiamarli bugiardo.

Come altri hanno notato, se il tuo obiettivo principale è impedire ad altri di rubare la nametua lingua, un marchio sarebbe più utile.


Scrivere una grammatica per la lingua non la proteggerebbe comunque. L'unica cosa che farebbe è impedire a qualcun altro di riscrivere la grammatica in un modo simile a te. Potrei scrivere una grammatica per la lingua inglese, che però non ti impedirebbe di poter pubblicare su SE.
Gavin Coates,

Gavin - Ho scritto .... "che non ti proteggerebbe da qualcuno che scrive una grammatica diversa che descrive la stessa lingua". Spero che ciò chiarisca che un simile copyright non proteggerebbe la lingua, ma solo quel modo di descrivere la lingua. Tuttavia, potrebbe far sentire meglio una persona.
Dominic Cronin,

1

Nel tempo ci sono state diverse risposte a questa domanda:

Nel 2012, una domanda simile è stata risolta "non è possibile" nel caso Oracle vs Google sull'uso dell'API Java in Android e una risposta simile è stata data nel caso dell'implementazione di WPL del linguaggio di programmazione SAS nel proprio prodotto. La logica di questa risposta era che l'interoperabilità tra le diverse implementazioni di un linguaggio richiede la copia della sintassi di un linguaggio di programmazione, e quindi farlo dovrebbe essere consentito in base alle regole del "fair use".

Nel 2014, tuttavia, la corte d'appello degli Stati Uniti ha deciso che la giusta risposta legale era effettivamente "sì, è possibile", sulla base del fatto che l'interoperabilità (o meno) era fornita e in base a quali regole è a sola discrezione del copyright originale titolare. In questa interpretazione più recente, se qualcuno non vuole che tu sia compatibile con il suo linguaggio di programmazione, API o altre specifiche dell'interfaccia, ha tutto il diritto di fermarti.

In poche parole, a partire dal 2014 è probabilmente corretto supporre: sì, un linguaggio di programmazione (la sua sintassi, struttura e sequenza di costrutti del linguaggio) può essere protetto da copyright

Si noti che la legge sul copyright è soggetta all'interpretazione locale e che le regole del proprio Paese potrebbero essere diverse. In caso di dubbi consultare un avvocato ...

(rimosso il resto dell'argomento, vedere la cronologia)

Disclaimer: IANAL


Annnddd ... questa sentenza è stata appena annullata. Oracle appellò e questa volta i giudici non erano programmatori.
jmoreno,

@jmoreno grazie per averlo segnalato. aggiornata la risposta per riflettere questo nuovo sviluppo ...
miraculixx

Voglio solo dirlo, non un avvocato o uno psichiatra, solo un programmatore, ma la sentenza del 2014 mi sembra del tutto assurda. Sono un sacco di comandi!
jmoreno,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.