Domanda

L'altro giorno, ho modificato una sceneggiatura per il componente aggiuntivo World of Warcraft di un amico. Fu sorpreso che tu potessi modificare i componenti aggiuntivi, che erano "open source". (Gli addon di Word of Warcraft sono scritti nel linguaggio di scripting Lua) Mi sono ritrovato a voler dire " Sicuro che puoi — tutti gli script sono "open source". & Quot;

È vero? Certo, alcuni script possono essere compilati in bytecode, ma quasi tutti gli script non sono interpretati? Vale a dire, il dispositivo che interpreta lo script non ha bisogno di " source, " per definizione?

È stato utile?

Soluzione

Dipende da come interpreti " open source " ;.

Certo, hai il codice sorgente, ma in genere non è esattamente ciò che significa Open Source. Di solito open source si riferisce alla licenza. Per avere qualcosa " open source " significa che sei libero di modificare la fonte per qualsiasi scopo, inclusa la ridistribuzione in molti casi.

Il solo fatto di avere il sorgente non lo rende open source nel senso generale del software. Se lo script è protetto da copyright, è tecnicamente "chiuso". tranne nei casi in cui una licenza Open Source viene esplicitamente data. Potresti modificarlo, ma se lo ridistribuisci senza il permesso dell'autore stai violando il loro copyright implicito (o esplicitamente registrato).

Altri suggerimenti

Open source riguarda le licenze. Una sceneggiatura può avere qualsiasi licenza richiesta dall'autore (o dal titolare del copyright, come un datore di lavoro). Quindi la risposta è "no".

In genere gli script sono distribuiti nella stessa forma in cui sono scritti, senza formato compilato. Quindi puoi vedere la fonte. Ciò non significa che siano open source.

No.

" Open source " non è la stessa cosa di essere in grado di visualizzare il codice sorgente; le licenze open source riguardano il diritto legale di derivare opere da quel codice sorgente.

Se prendi il lavoro di qualcun altro, lo modifichi e lo ridistribuisci senza il suo esplicito consenso, stai violando il loro copyright e infrangendo la legge .

" Open Source " non significa solo che hai la fonte, ma è anche usato per descrivere il tuo diritto legale di ridistribuire il codice con o senza modifiche.

Basato sul copyright & amp; licenze, molti script sono non open source.

Come notato da molti, solo perché hai accesso alla fonte non ti dà il diritto di fare ciò che ti piace.

Chiedi

  

Non quasi tutti gli script sono interpretati? Vale a dire, il dispositivo che interpreta lo script non ha bisogno di " source, " per definizione?

No. Anche in un interprete, la fonte subisce diverse trasformazioni prima di essere interpretata. Il modulo che viene infine interpretato è spesso una sequenza di istruzioni per una macchina virtuale basata su stack o basata su registro; tali istruzioni sono generalmente chiamate "bytecode". È anche possibile interpretare alberi interni in modo relativamente efficiente. Gli interpreti progettati principalmente per scopi didattici possono utilizzare schemi ancora meno efficienti.

Alcune implementazioni ti consentono di prendere il modulo interno e scriverlo su disco, dal quale può essere riletto e interpretato. I vantaggi percepiti sono generalmente

  • I programmi si caricano e si eseguono più velocemente perché le fasi di elaborazione iniziale vengono eseguite una volta prima che il modulo interno venga scritto, quindi riutilizzato più volte.

  • Il modulo interno protegge il codice sorgente da occhi indiscreti.

Lo svantaggio principale è che una tipica forma interna è generalmente meno portabile del codice sorgente, forse a causa delle differenze nell'ordine dei byte o nella dimensione delle parole.

Nel caso particolare di Lua, il compilatore luac scriverà bytecode su disco. Viene usato raramente perché i bytecode non sono portatili e perché il compilatore è già abbastanza veloce. Nel caso particolare di World of Warcraft, in realtà stanno incoraggiando le persone a usare Lua per modificare l'interfaccia e per personalizzare il Esperienza; vogliono che tutti condividano il codice e quindi lo mantengano open source. WoW ha oltre 10 milioni di abbonati e almeno 5000 persone hanno contribuito al codice. quindi questo è il mezzo percento della base di utenti che ha contribuito con un po 'di codice, il che mi dà pensieri felici sul futuro della programmazione come professione.

Per distribuire un programma per un interprete, devi inviare la fonte (anche se non necessariamente comprensibile). Ciò non significa automaticamente che sia Open or Free nel modo in cui questi termini vengono spesso utilizzati.

Mi sembra di ricordare di aver letto qualcosa nei termini e nelle condizioni del gioco che richiede che i componenti aggiuntivi siano concessi in licenza come open source, ma non riesco a trovarlo ora, quindi potrei averlo immaginato. In tutti i casi pratici lo sono però.

Puoi compilare Lua e altri linguaggi di scripting e oscurarli in vari modi. È solo più comune - non più necessario - che la fonte sia aperta per impostazione predefinita rispetto al caso con altre lingue.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top