9

先日、友人のWorldofWarcraftアドオンのスクリプトを微調整しました。彼は、アドオンを編集できることに驚いていました。アドオンは「オープンソース」でした。(Word of WarcraftのアドオンはLuaスクリプト言語で書かれています)「もちろんできます。すべてのスクリプトは「オープンソース」です」と言いたくなりました。

本当?確かに、一部のスクリプトはバイトコードにコンパイルできますが、ほとんどすべてのスクリプトが解釈されませんか?つまり、スクリプトを解釈するデバイスには、定義上、「ソース」が必要ではありませんか?

4

8 に答える 8

17

それはあなたが「オープンソース」をどのように解釈するかに依存します。

確かに、あなたはソースコードを持っていますが、通常、それはオープンソースが意味するものではありません。通常、オープンソースはライセンスを指します。何か「オープンソース」を持っているということは、多くの場合、ソースを再配布することを含め、あらゆる目的のためにソースを自由に変更できることを意味します。

ソースを持っているだけでは、一般的なソフトウェアの意味でオープンソースにはなりません。スクリプトが著作権で保護されている場合、オープンソースライセンスが明示的に付与されている場合を除いて、技術的に「クローズ」されます。変更することはできますが、作者の許可なしに再配布すると、暗黙の(または明示的に登録された)著作権に違反することになります。

于 2009-01-09T03:09:11.837 に答える
14

オープンソースはライセンスに関するものです。スクリプトには、作成者(または雇用者などの著作権所有者)が必要とする任意のライセンスを含めることができます。したがって、答えは「いいえ」です。

通常、スクリプトは、スクリプトが作成されたのと同じ形式で配布されます。コンパイルされた形式ではありません。だからあなたはソースを見ることができます。それは彼らがオープンソースであるという意味ではありません。

于 2009-01-09T03:09:07.187 に答える
4

いいえ。

「オープン ソース」とは、ソース コードを表示できることと同じではありません。オープン ソース ライセンスとは、そのソース コードから作品を派生させる法的権利に関するものです。

他の人の作品を取得し、明示的な同意なしに変更して再配布する場合は、著作権を侵害し、法律に違反しています。

于 2009-01-12T22:46:00.623 に答える
2

「オープンソース」とは、ソースがあることを意味するだけでなく、変更の有無にかかわらずコードを再配布する法的権利を説明するためにも使用されます。

著作権とライセンスに基づいて、多くのスクリプトはオープンソースではありません。

于 2009-01-09T03:09:09.933 に答える
1

多くの人が指摘しているように、ソースにアクセスできるからといって、それを好きなように操作できるわけではありません。

あなたが尋ねる

ほとんどすべてのスクリプトが解釈されませんか? つまり、スクリプトを解釈するデバイスは、定義上、「ソース」を必要としないのでしょうか。

いいえ。インタープリターでも、ソースは解釈される前にいくつかの変換を経ます。最終的に解釈される形式は、多くの場合、スタック ベースまたはレジスタ ベースの仮想マシンの一連の命令です。このような命令は通常「バイトコード」と呼ばれます。内部ツリーを比較的効率的に解釈することも可能です。主に教育目的で設計された通訳者は、さらに非効率的な方式を使用する場合があります。

一部の実装では、内部形式を取得してディスクに書き込み、そこから再度読み取って解釈することができます。通常、認識される利点は、

  • 内部フォームが書き込まれる前に最初の処理段階が一度実行され、その後何度も再利用されるため、プログラムのロードと実行が高速になります。

  • 内部フォームは、ソース コードをのぞき見から保護します。

主な欠点は、典型的な内部形式は通常、ソース コードよりも移植性が低いことです。これは、おそらくバイト オーダーまたはワード サイズの違いが原因です。

Lua の特定のケースでは、luacコンパイラはバイトコードをディスクに書き込みます。バイトコードは移植性がなく、コンパイラはすでに非常に高速であるため、めったに使用されません。World of Warcraft の特定のケースでは、Lua を使用してインターフェイスを変更し、エクスペリエンスをカスタマイズすることを実際に奨励しています。彼らは誰もがコードを共有することを望んでいるので、オープン ソースを維持します。WoW には 1,000 万人を超える加入者がおり、少なくとも 5,000 人がコードに貢献しています。これはコードを提供したユーザー ベースの 0.5% であり、職業としてのプログラミングの将来について私は嬉しく思います。

于 2009-01-09T04:58:42.113 に答える
0

インタプリタ用のプログラムを配布するには、ソースを送信する必要あります(ただし、必ずしも理解しやすいソースである必要はありません)。これは、これらの用語がよく使用される方法で、がオープンまたはフリーであることを自動的に意味するものではありません。

于 2009-01-09T03:10:10.507 に答える
0

ゲームの利用規約で、アドオンをオープン ソースとしてライセンスする必要があることを読んだことを覚えているようですが、今は見つけられないので、想像していたのかもしれません。ただし、すべての実際のケースではそうです。

于 2009-01-16T10:19:43.030 に答える
-1

Luaやその他のスクリプト言語をコンパイルして、さまざまな方法でそれらを隠すことができます。ソースがデフォルトで開かれるのは、他の言語の場合よりも一般的であり、必要ではありません。

于 2009-01-09T03:07:59.717 に答える