scripting - programa - lua script roblox
¿Los scripts son de "código abierto" por definición? (8)
El otro día, modifiqué un guión para el complemento de World of Warcraft de un amigo. Le sorprendió que pudiera editar los complementos, que eran de "código abierto". (Los complementos de Word of Warcraft están escritos en el lenguaje de guiones de Lua). Quería decir: "Claro que sí, todos los guiones son ''de código abierto''".
¿Es eso cierto? Claro, algunos scripts se pueden compilar en bytecode, pero no se interpretan casi todos los scripts? Es decir, ¿el dispositivo que interpreta la secuencia de comandos no necesita la "fuente", por definición?
"Código abierto" no solo significa que tiene la fuente, sino que también se usa para describir su derecho legal de redistribuir el código con o sin modificaciones.
En función de los derechos de autor y las licencias, muchos scripts no son de código abierto.
Como lo señalaron muchos, el hecho de que tenga acceso a la fuente no le da el derecho de hacer lo que quiera con ella.
Usted pregunta
¿No se interpretan casi todos los guiones? Es decir, ¿el dispositivo que interpreta la secuencia de comandos no necesita la "fuente", por definición?
No. Incluso en un intérprete, la fuente pasa por varias transformaciones antes de ser interpretada. La forma que finalmente se interpreta es a menudo una secuencia de instrucciones para una máquina virtual basada en pila o basada en registro; tales instrucciones se suelen llamar "bytecode". También es posible interpretar árboles internos de manera relativamente eficiente. Los intérpretes diseñados principalmente con fines didácticos pueden usar esquemas incluso menos eficientes.
Algunas implementaciones le permiten tomar el formulario interno y escribirlo en el disco, desde donde puede volver a leerse e interpretarse. Las ventajas percibidas son usualmente
Los programas cargan y se ejecutan más rápido porque las etapas de procesamiento iniciales se realizan una vez antes de que se escriba la forma interna, y luego se reutilizan una y otra vez.
La forma interna protege el código fuente de miradas indiscretas.
La principal desventaja es que una forma interna típica suele ser menos portátil que el código fuente, tal vez debido a las diferencias en el orden de los bytes o el tamaño de la palabra.
En el caso particular de Lua, el compilador luac
escribirá bytecode en el disco. Rara vez se utiliza porque los códigos de bytes no son portátiles y porque el compilador ya es bastante rápido. En el caso particular de World of Warcraft, en realidad están alentando a las personas a usar Lua para modificar la interfaz y personalizar la experiencia; quieren que todos compartan código y lo mantengan de código abierto. WoW tiene más de 10 millones de suscriptores y al menos 5000 personas han contribuido con el código. entonces ese es un medio por ciento de la base de usuarios que ha contribuido con algún código, lo que me da pensamientos felices sobre el futuro de la programación como profesión.
Para distribuir un programa para un intérprete, debe enviar una fuente (aunque no necesariamente una fuente comprensible). Esto no significa automáticamente que sea Open or Free en la forma en que se usan estos términos.
Puede compilar Lua y otros lenguajes de scripting y oscurecerlos de varias maneras. Solo es más común, no más necesario, que la fuente se abra de manera predeterminada que en otros idiomas.
No.
"Código abierto" no es lo mismo que poder ver el código fuente; La licencia de código abierto se refiere al derecho legal de obtener trabajos de ese código fuente.
Si toma el trabajo de otra persona, lo modifica y lo redistribuye sin su consentimiento explícito, está infringiendo sus derechos de autor y violando la ley .
El código abierto es sobre licencias. Un script puede tener cualquier licencia que el autor (o titular de los derechos de autor, como un empleador) desee. Por tanto, la respuesta es no".
Es el caso de que los scripts se distribuyan normalmente de la misma forma en que están escritos, sin formato compilado. Entonces puedes ver la fuente. Eso no quiere decir que sean de código abierto.
Me parece recordar haber leído algo en los términos y condiciones del juego que requieren que los complementos tengan licencia como fuente abierta, pero parece que no puedo encontrarlo ahora, así que tal vez lo estaba imaginando. En todos los casos prácticos, están pensados.
Depende de cómo interpreta "código abierto".
Claro, usted tiene el código fuente, pero típicamente eso no es exactamente lo que significa Open Source. Por lo general, el código abierto se refiere a la licencia. Tener algo de "código abierto" significa que usted es libre de modificar la fuente para cualquier propósito, incluida la redistribución en muchos casos.
El solo hecho de tener la fuente no lo convierte en fuente abierta en el sentido general del software. Si el script está protegido por derechos de autor, entonces está técnicamente "cerrado", excepto en los casos en que se otorga explícitamente una licencia de código abierto. Puede modificarlo, pero si lo redistribuye sin el permiso del autor, está en violación de sus derechos de autor implícitos (o explícitamente registrados).