9 Stimmen

Sind Skripte per Definition "quelloffen"?

Neulich habe ich ein Skript für das World of Warcraft-Addon eines Freundes überarbeitet. Er war überrascht, dass man die Addons bearbeiten konnte, dass sie "Open Source" waren. (World of Warcraft-Addons sind in der Skriptsprache Lua geschrieben). Ich wollte schon sagen: "Klar kannst du das - alle Skripte sind 'Open Source'."

Ist das wahr? Sicher, einige Skripte können zu Bytecode kompiliert werden, aber werden nicht fast alle Skripte interpretiert? Das heißt, braucht das Gerät, das das Skript interpretiert, nicht per Definition den "Quellcode"?

17voto

Dan Herbert Punkte 94074

Das hängt davon ab, wie man "Open Source" interpretiert.

Sicher, Sie haben den Quellcode, aber das ist normalerweise nicht genau das, was Open Source bedeutet. Normalerweise bezieht sich Open Source auf die Lizenzierung. Etwas "Open Source" zu haben bedeutet, dass Sie den Quellcode für jeden Zweck verändern dürfen, in vielen Fällen auch weitergeben dürfen.

Nur weil man den Quelltext hat, ist es noch nicht Open Source im Sinne der allgemeinen Software. Wenn das Skript urheberrechtlich geschützt ist, ist es technisch gesehen "geschlossen", außer in Fällen, in denen eine Open-Source-Lizenz ausdrücklich angegeben ist. Sie können es zwar verändern, aber wenn Sie es ohne die Erlaubnis des Autors weitergeben, verletzen Sie dessen implizites (oder ausdrücklich eingetragenes) Urheberrecht.

14voto

John M Punkte 12793

Offene Quelle geht es um die Lizenzvergabe. Ein Drehbuch kann jede vom Autor (oder Urheberrechtsinhaber, z. B. einem Arbeitgeber) gewünschte Lizenz haben. Die Antwort lautet also "Nein".

Skripte werden in der Regel in der Form verteilt, in der sie geschrieben wurden - also nicht in kompilierter Form. Sie können also den Quellcode sehen. Das heißt aber nicht, dass sie Open Source sind.

4voto

Rob Punkte 47351

Nein.

"Open Source" ist nicht dasselbe wie die Möglichkeit, den Quellcode einzusehen; bei der Open-Source-Lizenzierung geht es um die gesetzlicher Anspruch um Werke aus diesem Quellcode abzuleiten.

Wenn Sie das Werk einer anderen Person nehmen, es verändern und ohne deren ausdrückliche Zustimmung weiterverbreiten, verletzen Sie deren Urheberrecht, und gegen das Gesetz verstoßend .

2voto

Darron Punkte 20861

"Open Source" bedeutet nicht nur, dass Sie über den Quellcode verfügen, sondern auch, dass Sie das Recht haben, den Code mit oder ohne Änderungen weiterzuverbreiten.

Aufgrund des Urheberrechts und der Lizenzierung sind viele Skripte pas offene Quelle.

1voto

Norman Ramsey Punkte 193087

Wie bereits von vielen angemerkt, gibt die Tatsache, dass Sie Zugang zur Quelle haben, Ihnen nicht das Recht, damit zu tun, was Sie wollen.

Sie fragen

Werden nicht fast alle Skripte interpretiert? Das heißt, braucht das Gerät, das das Skript interpretiert, nicht per Definition die "Quelle"?

Nein. Selbst in einem Interpreter durchläuft die Quelle mehrere Transformationen, bevor sie interpretiert wird. Die Form, die schließlich interpretiert wird, ist oft eine Folge von Anweisungen für eine stapel- oder registerbasierte virtuelle Maschine; solche Anweisungen werden gewöhnlich "Bytecode" genannt. Es ist auch möglich, interne Anweisungen zu interpretieren Bäume relativ effizient. Dolmetscher, die in erster Linie für Lehrzwecke konzipiert sind, können sogar noch weniger effiziente Systeme verwenden.

Einige Implementierungen erlauben es, die interne Form auf die Festplatte zu schreiben, von der sie dann wieder gelesen und interpretiert werden kann. Die vermeintlichen Vorteile sind in der Regel

  • Programme werden schneller geladen und ausgeführt, weil die ersten Verarbeitungsschritte einmal durchgeführt werden, bevor das interne Formular geschrieben wird, und dann immer wieder verwendet werden.

  • Das interne Formular schützt den Quellcode vor neugierigen Blicken.

Der Hauptnachteil besteht darin, dass eine typische interne Form in der Regel weniger portabel ist als Quellcode, etwa aufgrund von Unterschieden in der Byte-Reihenfolge oder der Wortgröße.

Im speziellen Fall von Lua ist die luac Compiler schreibt den Bytecode auf die Festplatte. Er wird nur selten verwendet, da die Bytecodes nicht portabel sind und der Compiler bereits recht schnell ist. Im speziellen Fall von World of Warcraft sind sie sogar Ermutigung zur Verwendung von Lua, um die Schnittstelle zu ändern Sie wollen, dass jeder den Code mit anderen teilt, und halten ihn daher quelloffen. WoW hat über 10 Millionen Abonnenten, und mindestens 5000 Leute haben Code beigesteuert. Das ist also ein halbes Prozent der Nutzerbasis, die etwas Code beigesteuert haben, was mir Anlass zu frohen Gedanken über die Zukunft der Programmierung als Beruf gibt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X