¿Cuándo se considera un lenguaje de scripting? [cerrado]


¿Qué hace de un lenguaje un lenguaje de scripting? He oído a algunas personas decir "cuando se interpreta en lugar de compilado". Eso haría de PHP (por ejemplo) un lenguaje de scripting. ¿Es ese el único criterio? O hay otros criterios?

Véase también:

Author: Shog9, 2008-09-19

30 answers

Un lenguaje de scripting es un lenguaje que "escribe" otras cosas para hacer cosas. El enfoque principal no es principalmente la construcción de sus propias aplicaciones tanto como conseguir una aplicación existente para actuar de la manera que desee, por ejemplo, JavaScript para navegadores, VBA para MS Office.

 52
Author: moffdub,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-19 10:56:16

Simple. Cuando lo uso, es un lenguaje dinámico moderno, cuando lo usas, ¡es simplemente un lenguaje de scripting!

 93
Author: Martin Beckett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-22 02:48:56

Tradicionalmente, cuando se habla de la diferencia entre scripting y programación, los scripts se interpretan y los programas se compilan. Un lenguaje puede ser ejecutado de diferentes maneras - interpretado o compilado (a bytecode o código máquina). Esto no hace un lenguaje uno u otro.

En algunos ojos, la forma en que usa un lenguaje lo convierte en un lenguaje de scripting (por ejemplo, los desarrolladores de juegos que desarrollan principalmente en C++ escribirán los objetos en Lua). Nuevo, las líneas están borrosas - un lenguaje puede ser utilizado para una programación por una persona y el mismo lenguaje puede ser utilizado para el lenguaje de scripting por otra.

Esto es del artículo de wikipedia sobre lenguajes de scripting:

Un lenguaje de script, lenguaje de script o lenguaje de extensión es un lenguaje de programación que permite el control de una o más aplicaciones de software. Los "scripts" son distintos del código central de la aplicación, ya que generalmente están escritos en lenguaje diferente y a menudo son creados o al menos modificados por el usuario final. Los scripts a menudo se interpretan a partir de código fuente o bytecode, mientras que las aplicaciones que controlan se compilan tradicionalmente a código máquina nativo. Los lenguajes de scripting casi siempre están integrados en las aplicaciones que controlan.

Notará el uso de "usualmente"," a menudo"," tradicionalmente "y" casi siempre " - todos estos le dicen que no hay ningún conjunto de atributos distintos que hagan un lenguaje específico un "lenguaje de scripting".

 41
Author: Oded,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:10:50

"Un guion es lo que le das a los actores. Un programa es lo que le das a la audiencia."Larry Larry Wall

Realmente no creo que haya mucha diferencia más. Los llamados lenguajes de" scripting " a menudo se compilan quickly muy rápidamente, y en tiempo de ejecución. Y algunos de los lenguajes de " programación "también se compilan en tiempo de ejecución (piense en JIT) y la primera etapa de" compilación " es la comprobación de sintaxis y la resolución de recursos.

No te quedes colgado realmente no es importante.

 31
Author: Clinton Pierce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 13:39:11

Mi definición sería un lenguaje que normalmente se distribuye como fuente en lugar de como binario.

 25
Author: kenny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-19 11:09:00

Hay muchas respuestas posibles a esto.

Primero: no es realmente una cuestión de la diferencia entre un lenguaje de scripting y un lenguaje de programación, porque un lenguaje de scripting es un lenguaje de programación. Es más una cuestión de qué rasgos hacen que algún lenguaje de programación sea un lenguaje de scripting mientras que otro lenguaje de programación no es un lenguaje de scripting.

Segundo: es muy difícil decir qué es un lenguaje XYZ, si ese XYZ es "scripting", "programación funcional", "programación orientada a objetos" o lo que sea. La definición de lo que es "programación funcional", es bastante clara, pero nadie sabe lo que es un "lenguaje de programación funcional".

La programación funcional o la programación orientada a objetos son estilos de programación ; puede escribir en un estilo funcional o en un estilo orientado a objetos en prácticamente cualquier lenguaje. Por ejemplo, el Conmutador del Sistema de Archivos Virtual de Linux y el Modelo de Controlador de Linux son orientado a objetos a pesar de estar escrito en C, mientras que mucho código Java o C# que se ve en la web es muy procedimental y no orientado a objetos en absoluto. OTOH, he visto un código Java muy funcional.

Entonces, si la programación funcional y la programación orientada a objetos son simplemente estilos que se pueden hacer en cualquier lenguaje, entonces ¿cómo se define un "lenguaje de programación orientado a objetos"? Se podría decir que un lenguaje de programación orientado a objetos es un lenguaje que permite programación orientada a objetos. Pero eso no es mucho de una definición: todos los lenguajes permiten la programación orientada a objetos, por lo tanto todos los lenguajes son orientados a objetos? Por lo tanto, usted dice, bien un lenguaje está orientado a objetos, si obliga a programar en un estilo orientado a objetos. Pero eso tampoco es una definición: todos los lenguajes permiten la programación funcional, por lo tanto ¿ningún lenguaje está orientado a objetos?

Así que, para mí, he encontrado la definición siguiente:

Un lenguaje es un lenguaje de scripting (lenguaje orientado a objetos / lenguaje funcional) si ambos

  • facilita scripting (programación orientada a objetos / programación funcional), es decir, no sólo permite pero hace fácil y natural y contiene características que ayudar a con ella, Y
  • te anima y te guía hacia la creación de scripts (programación orientada a objetos / programación funcional).

Así que, después de cinco párrafos, he llegado a: "un lenguaje de scripting es un lenguaje para scripting". Qué gran definición. NI.

Obviamente, ahora necesitamos mirar la definición de "scripting".

Aquí es donde entra el tercer problema: mientras que el término "programación funcional" está bien definido y solo el término "lenguaje de programación funcional" es problemático, desafortunadamente con scripting, tanto el término "scripting" como el término "lenguaje de scripting" están mal definidos.

Bueno, en primer lugar scripting es programación. Es sólo un tipo especial de programación. IOW: cada script es un programa, pero no cada programa es un script; el conjunto de todos los scripts es un subconjunto apropiado del conjunto de todos los programas.

En mi opinión personal, lo que hace scripting scripting y lo distingue de otros tipos de programación, es que {

Los scripts manipulan en gran medida objetos que

  • no fueron creados por el script,
  • tienen una vida independiente de la escritura y{[56]]}
  • viven fuera del dominio del script.

Además, los tipos de datos y algoritmos utilizados generalmente no están definidos por el script, sino por el entorno externo.

Piense en un script de shell: los scripts de shell normalmente manipulan archivos, directorios y procesos. La mayoría de los archivos, directorios y los procesos en su sistema probablemente no fueron creados por el script actualmente en ejecución. Y no desaparecen cuando el script sale: su vida es completamente independiente del script. Y no son realmente parte del guion, tampoco, son parte del sistema. No iniciaste tu script escribiendo clases File y Directory, esos tipos de datos no son de tu incumbencia: simplemente asumes que están ahí, y ni siquiera sabes (ni necesitas saber) cómo funcionan. Y no implemente sus propios algoritmos, ya sea, por ejemplo, para el recorrido de directorios solo use find en lugar de implementar su propia búsqueda de amplitud primero.

En resumen: un script se adhiere a un sistema más grande que existe independientemente del script, manipula una pequeña parte del sistema y luego sale.

Ese sistema más grande puede ser el sistema operativo en caso de un script de shell, el DOM del navegador en caso de un script de navegador, un juego (por ejemplo, World of Warcraft con Lua o Second Life con el lenguaje de Scripting Linden), una aplicación (por ejemplo, el lenguaje AutoLISP para macros de AutoCAD o Excel / Word / Office), un servidor web, un paquete de robots o algo completamente distinto.

Tenga en cuenta que el aspecto de scripting es completamente ortogonal a todos los demás aspectos de los lenguajes de programación: un lenguaje de scripting puede ser fuertemente o débilmente tipeado, estrictamente o vagamente tipeado, estático o dinámicamente tipeado, nominalmente, estructuralmente o duck tipeado, diablos puede incluso ser sin tipo. Puede ser imperativo o funcional, orientado a objetos, procedimental o funcional, estricto o perezoso. Sus implementaciones pueden ser interpretadas, compiladas o mezcladas.

Por ejemplo, Mondrian es un lenguaje de scripting funcional perezoso estrictamente tipado estáticamente con una implementación compilada.

Sin embargo, todo esto es discutible, porque la forma en que el término lenguaje de scripting es realmente usado en el mundo real, no tiene nada que ver con nada de lo anterior. Lo más a menudo se utiliza simplemente como un insulto, y la definición es bastante simple, incluso simplista:

  • real lenguaje de programación: mi lenguaje de programación
  • lenguaje de scripting: su lenguaje de programación

Esta parece ser la forma en que el término se usa con mayor frecuencia.

 16
Author: Jörg W Mittag,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 15:17:45

Es como el porno, lo sabes cuando lo ves. La única definición posible de un lenguaje de scripting es:

A language which is described as a scripting language.

Un poco circular, ¿no? (Por cierto, no estoy bromeando).

Básicamente, no hay nada que haga de un lenguaje un lenguaje de scripting excepto que es llamado así, especialmente por sus creadores. El principal conjunto de lenguajes de scripting modernos es PHP, Perl, JavaScript, Python, Ruby y Lua. Tcl es el primer gran lenguaje de scripting moderno (no fue el primer scripting el lenguaje, sin embargo, me olvido de lo que es, pero me sorprendió saber que era anterior a Tcl).

Describo las características de los principales lenguajes de scripting en mi artículo :

 A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

La mayoría son tipeados e interpretados dinámicamente, y la mayoría no tienen semántica definida fuera de su implementación de referencia. Sin embargo, incluso si su implementación principal se compila o se jita, eso no cambia la "naturaleza" del lenguaje.

La única pregunta que queda es cómo puedes saber si un nuevo lenguaje es un lenguaje de scripting. Bueno, si se llama lenguaje de scripting, es uno. Así que Factor es un lenguaje de scripting (o al menos lo era cuando se escribió), pero, digamos, Java no lo es.

 16
Author: Paul Biggar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-13 16:28:45

"Lenguaje de scripting" es uno de esos conceptos difusos que pueden significar muchas cosas. Generalmente se refiere al hecho de que existe un proceso de un paso en el código fuente de la ejecución.

Por ejemplo, en Perl se hace: perl my_source.pl

Dados los criterios anteriores, PHP es un lenguaje de scripting (aunque se puede tener un proceso de "compilación", por ejemplo, cuando se usa el Codificador Zend para "proteger" el código fuente).

PS. A menudo (pero no siempre) los lenguajes de scripting son interpretar. También a menudo (pero de nuevo, no siempre) los lenguajes de scripting se escriben dinámicamente.

 5
Author: Cd-MaN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-22 09:51:54

Todos los lenguajes de scripting son lenguajes de programación. Así que estrictamente hablando, no hay diferencia.

El término no se refiere a ninguna propiedad fundamental del lenguaje, se refiere al uso típico del lenguaje. Si el uso típico es escribir programas cortos que principalmente hacen llamadas a código preexistente, y algún procesamiento simple en los resultados, (es decir, si el uso típico es escribir scripts), entonces es un lenguaje de scripting.

 5
Author: Joren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 13:54:04

Creo que el Sr. Roberto RobertoUsalimschy tiene una muy buena respuesta o la pregunta en 'Programación en Lua':

Sin embargo, la característica distintiva de idiomas interpretados no es que ellos no se compilan, pero que cualquier el compilador es parte del lenguaje tiempo de ejecución y que, por lo tanto, es posible (y fácil) ejecutar código generado sobre la marcha

 4
Author: Rodrigo Lopez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-21 21:27:22

Una división es

  • scripting = dinámicamente interpretado
  • normal = compilado

Un lenguaje interpretado dinámicamente se interpreta en tiempo de ejecución, mientras que un lenguaje compilado se compila antes de la ejecución.

Debo añadir que como Jörg ha señalado, la distinción interpretada / compilada no es una característica del lenguaje, sino del motor de ejecución.

También podría interesarle esta explicación de Type system , que es relacionado y se centra más en el aspecto del lenguaje, en lugar del motor de ejecución. La mayoría de los lenguajes de scripting se escriben dinámicamente, mientras que los lenguajes "normales"se escriben estáticamente.

En general, la división de lenguajes tipeados estáticamente vs dinámicamente está mejor definida y tiene más implicaciones en la usabilidad del lenguaje.

 4
Author: Timo Westkämper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:21:42

Un lenguaje de scripting es típicamente :

  1. Dinámicamente escrito
  2. Interpretado, con muy poco énfasis en el rendimiento, pero buena portabilidad
  3. Requiere mucho menos código repetitivo , lo que conduce a la creación de prototipos muy rápida
  4. Se utiliza para tareas pequeñas, adecuado para escribir un solo archivo para ejecutar algún "script" útil.

Mientras que un lenguaje sin scripts es normalmente : 1. Tipado estáticamente 2. Compilado, con énfasis en rendimiento 3. Requiere más código repetitivo, lo que lleva a una creación de prototipos más lenta, pero más legibilidad y capacidad de mantenimiento a largo plazo 4. Utilizado para grandes proyectos, se adapta a muchos patrones de diseño

Pero es más una diferencia histórica hoy en día, en mi opinión. Javascript y Perl se escribieron con scripts pequeños y simples en mente, mientras que C++ se escribió con aplicaciones complejas en mente; pero ambos se pueden usar de cualquier manera. Y muchos lenguajes de programación, modernos y antiguos por igual, blur la línea de todos modos (y era borroso en el primer lugar!).

Lo triste es que he conocido a algunos desarrolladores que detestan lo que perciben como "lenguajes de scripting", pensando que son más simples y no tan poderosos. Mi opinión es que el viejo cliché-utilizar la herramienta adecuada para el trabajo.

 3
Author: Oak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 13:50:39

Los lenguajes de scripting fueron pensados originalmente como mecanismos de control para aplicaciones escritas en un lenguaje de programación duro. Los programas compilados no se podían modificar en tiempo de ejecución, por lo que el scripting daba flexibilidad a las personas.

Más notablemente, shell script estaba automatizando procesos en el kernel del sistema operativo (tradicionalmente, AppleScript en Macs); un rol que cada vez más pasaba a manos de Perl, y luego fuera de él a Python últimamente. He visto Scheme (particularmente en su implementación Astuta) utilizado para declarar escenas raytracing; y recientemente, Lua es muy popular como el lenguaje de programación para escribir juegos - hasta el punto de que la única cosa hard-coded en muchos juegos nuevos es el motor de gráficos/física, mientras que toda la lógica del juego está codificada en Lua. De la misma manera, se pensó que JavaScript escribía el comportamiento de un navegador web.

Los lenguajes se emanciparon; ahora nadie piensa en el sistema operativo como una aplicación (o piensa mucho en ello), y muchos lenguajes de scripting comenzó a ser utilizado para escribir aplicaciones completas de su propia. El nombre en sí se volvió sin sentido, y se extendió a muchos idiomas interpretados en uso hoy en día, independientemente de si están diseñados para ser interpretados desde dentro de otro sistema o no.

Sin embargo," lenguajes de scripting "definitivamente no es sinónimo de" lenguajes interpretados " - por ejemplo, BASIC fue interpretado durante la mayor parte de su vida (es decir, antes de que perdiera su acronimicidad y se convirtiera en Visual Basic), sin embargo, nadie realmente piensa en es como scripting.

ACTUALIZACIÓN: Material de lectura como de costumbre disponible en Wikipedia.

 3
Author: Amadan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:02:24

Primer punto, un lenguaje de programación no es un "lenguaje de scripting" o algo más. Puede ser un "lenguaje de scripting" y algo más.

Segundo punto, el implementador del lenguaje le dirá si es un lenguaje de scripting.

Su pregunta debería decir "¿En qué implementaciones un lenguaje de programación sería considerado un lenguaje de scripting?", no " ¿Cuál es la diferencia entre un lenguaje de scripting y un lenguaje de programación?". No hay entre.

Sin embargo, consideraré un lenguaje un lenguaje de scripting si se usa para proporcionar algún tipo de ware medio. Por ejemplo, consideraría la mayoría de las implementaciones de JavaScript un lenguaje de scripting. Si JavaScript se ejecutara en el sistema operativo, no en el navegador, entonces no sería un lenguaje de scripting. Si PHP se ejecuta dentro de Apache, es un lenguaje de scripting. Si se ejecuta desde la línea de comandos, no lo es.

 3
Author: Marcus Adams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:36:25

Veo un lenguaje de scripting como cualquier cosa que no requiera un paso de 'compilar' de sensación de peso abierto. La característica principal desde el punto de vista de los programadores es: edita el código y lo ejecuta de inmediato.

Por lo tanto, consideraría JavaScript y PHP como lenguajes de scripting, mientras que ActionScript 3/Flex no es realmente.

 3
Author: Peter Mortensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-13 16:50:59

Mi amigo y yo acabamos de tener este argumento: Cuál es la diferencia entre un lenguaje de programación y un lenguaje de scripting.

Un argumento popular es que los lenguajes de programación son compilados y los lenguajes de scripting son interpretados - Sin embargo creo que este argumento es completamente falso...¿Por qué?

  1. Chakra & V8 (motores JavaScript de Microsoft y Google) compilan código antes de la ejecución
  2. QBasic se interpreta-hace esto Qbasic un " scripting" el lenguaje?

Sobre esa base, este es mi argumento para la diferencia entre un lenguaje de programación y un lenguaje de scripting:

Un lenguaje de programación se ejecuta a nivel de máquina y tiene acceso a la propia máquina (memoria, gráficos, sonido, etc.).

Un lenguaje de scripting está en caja de arena y solo tiene acceso a los objetos expuestos a la caja de arena. No tiene acceso directo a la máquina subyacente.

 3
Author: series0ne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-27 11:54:11

En Mi opinión, diría que lenguajes interpretados dinámicamente como PHP, Ruby, etc... todavía son lenguas "normales". Yo diría que ejemplos de lenguajes de "scripting" son cosas como bash (o ksh o tcsh o lo que sea) o sqlplus. Estos lenguajes se utilizan a menudo para encadenar programas existentes en un sistema en una serie de comandos coherentes y relacionados, tales como:

  1. copiar A.txt to / tmp / work /
  2. ejecute el proceso de limpieza nocturna en la base de datos servidor
  3. registre los resultados y envíelos al sysdamin

Así que diría que la diferencia (para mí, de todos modos) está más en cómo usas el lenguaje. Lenguajes como PHP, Perl, Ruby podrían ser usados como" lenguajes de scripting", pero usualmente los veo usados como" lenguajes normales " (excepto Perl que parece ir en ambos sentidos.

 2
Author: FrustratedWithFormsDesigner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 13:52:59

Simplemente voy a seguir adelante y migrar mi respuesta de la pregunta duplicada


El nombre "Scripting language" se aplica a un rol muy específico: el lenguaje que escribe comandos para enviar a una aplicación de software existente. (como un "guion"tradicional de tv o película)

Por ejemplo, érase una vez, las páginas web HTML eran aburridas. Siempre estaban estáticos. Entonces un día, Netscape pensó, " Oye, ¿qué pasa si dejamos que el navegador lea y actúe sobre pequeños comandos en la página?"Y como eso, Javascript se formó.

Un comando javascript simple es el comando alert(), que indica/ordena al navegador (una aplicación de software) que está leyendo la página web que muestre una alerta.

Ahora, ¿se relaciona alert(), de alguna manera, con el C++ o cualquier lenguaje de código que el navegador realmente use para mostrar la alerta? Por supuesto que no. Alguien que escribe "alert()" en un .la página html no comprende cómo el navegador realmente muestra la alerta. Sólo está escribiendo una comando que el navegador interpretará.

Veamos el código javascript simple

<script>
var x = 4
alert(x)
</script>

Estas son instrucciones que se envían al navegador, para que el navegador interprete en sí mismo. El lenguaje de programación que el navegador va a través de establecer realmente una variable a 4, y poner que en un alert...it no tiene ninguna relación con javascript.

Llamamos a esa última serie de comandos un "script" (por lo que está encerrada en etiquetas <script>). Solo por la definición de "script", en el sentido tradicional: Una serie de instrucciones y comandos enviados a los actores. Todo el mundo sabe que un guion (un guion de película), por ejemplo, es un guion.

El guion (guion) es no los actores, o la cámara, o los efectos especiales. El guión les dice qué hacer.

Ahora, ¿qué es un lenguaje de scripting , exactamente?

Hay muchos lenguajes de programación que son como diferentes herramientas en una caja de herramientas; algunos lenguajes fueron diseñados específicamente para ser usados como scripts.

Javascript es un ejemplo obvio; hay muy pocas aplicaciones de Javascript que no caigan dentro del ámbito del scripting.

ActionScript (el lenguaje para animaciones Flash) y sus derivados son lenguajes de scripting, ya que simplemente emiten comandos al reproductor/intérprete de Flash. Claro, hay abstracciones como la programación orientada a objetos, pero todo eso es simplemente un medio para el fin: enviar comandos al flash player.

Python y Ruby también se usan comúnmente como lenguajes de scripting. Por ejemplo, una vez trabajé para una compañía que usaba Ruby para escribir comandos para enviar a un navegador que estaban en las líneas de, "ir a este sitio, haga clic en este enlace..."para hacer algunas pruebas automatizadas básicas. Yo era no un "Desarrollador de software" de ninguna manera, en ese trabajo. Acabo de escribir scripts que envían comandos a la computadora para enviar comandos al navegador.

, Debido a su naturaleza, los lenguajes de scripting rara vez son 'compilados' that es decir, traducidos a código máquina, y leídos directamente por la computadora.

Incluso las aplicaciones GUI creadas a partir de Python y Ruby son scripts enviados a una API escrita en C++ o C. Le dice a la aplicación C qué hacer.

Hay una línea de vaguedad, por supuesto. ¿Por qué no se puede decir que Machine Language / C son lenguajes de scripting, porque son scripts que el equipo utiliza para interactuar con la placa base básica/gráficos ¿tarjetas / chips?

Hay algunas líneas que podemos dibujar para aclarar:

  1. Cuando puedes escribir un lenguaje de scripting y ejecutarlo sin "compilar", es más una especie de script directo. Por ejemplo, no es necesario hacer nada con un guion para decirle a los actores qué hacer con él. Ya está ahí, usado, tal cual. Por esta razón, excluiremos a los lenguajes compilados de ser llamados lenguajes de scripting, aunque puedan ser usados para propósitos de scripting en algunas ocasiones.

  2. El lenguaje de scripting implica comandos enviados a una aplicación de software compleja; esa es la razón por la que escribimos scripts en primer lugar so por lo que no necesita conocer las complejidades de cómo funciona el software para enviarle comandos. Por lo tanto, los lenguajes de scripting tienden a ser lenguajes que envían comandos (relativamente) simples a aplicaciones de software complejas {en este caso, el lenguaje de máquina y el código ensamblador no cortan se.

 2
Author: Justin L.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-19 09:58:29

Puedo sugerir que los lenguajes de scripting han sido un término del que mucha gente se está alejando. Diría que en su mayoría se reduce a lenguajes compilados y lenguajes dinámicos hoy en día.

Quiero decir que realmente no se puede decir algo como Python, o Ruby son lenguajes de "scripting" en este día y edad (incluso tienes cosas como IronPython y JIT-su-idioma favorito, la diferencia se ha difuminado aún más).

Para ser honesto, personalmente no siento que PHP sea un scripting el lenguaje nunca más. No esperaría que a la gente le guste categorizar PHP de manera diferente a decir Java en su currículum.

 2
Author: Robert Gould,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-13 17:08:05

Los lenguajes de scripting tienden a ejecutarse dentro de un motor de scripting que es parte de una aplicación más grande. Por ejemplo, JavaScript se ejecuta dentro del motor de scripting de su navegador.

 1
Author: Martin OConnor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-19 10:54:02

Un lenguaje de scripting es un lenguaje que se interpreta cada vez que se ejecuta el script, implica tener un intérprete y la mayoría son muy legibles por humanos, para ser útil un lenguaje de scripting es fácil de aprender y usar.

Cada lenguaje compilable se puede convertir en un lenguaje de script y viceversa todo depende de la implementación de un intérprete o un compilador, como por ejemplo, C++ tiene un intérprete por lo que se puede llamar un lenguaje de script si se usa (no es muy práctico en general, ya que C++ es un lenguaje muy complejo), uno de los lenguajes de script más útiles en la actualidad es Python...

Entonces, para responder a su pregunta, la definición es sobre el uso de un intérprete para ejecutar programas con scripts rápidos y fáciles, para abordar tareas simples o prototipos de aplicaciones.El uso más poderoso que se puede hacer de los lenguajes de script es incluir la posibilidad de que cada uso extienda una aplicación compilada.

 1
Author: Panic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 05:38:04

Prefiero que la gente no use el término "lenguaje de scripting" ya que creo que disminuye el esfuerzo. Tomemos un lenguaje como Perl, a menudo llamado "lenguaje de scripting".

  • Perl es un lenguaje de programación!
  • Perl se compila como Java y C++. Simplemente se compila mucho más rápido!
  • Perl tiene objetos y espacios de nombres y cierres.
  • Perl tiene IDEs y depuradores y perfiladores.
  • Perl tiene capacitación y apoyo y comunidad.
  • Perl no es solo web. Perl no es solo administrador de sistemas. Perl no es solo la cinta adhesiva de Internet.

¿Por qué necesitamos distinguir entre un lenguaje como Java que está compilado y Ruby que no lo está? ¿Cuál es el valor en el etiquetado?

Para más información sobre esto, ver http://xoa.petdance.com/Stop_saying_script .

 1
Author: Andy Lester,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-22 03:01:57

Una diferencia importante es mecanografía fuerte (versus mecanografía débil). Los lenguajes de scripting a menudo se escriben débilmente, lo que hace posible escribir pequeños programas más rápidamente. Para programas grandes esto es una desventaja, ya que inhibe al compilador/intérprete para encontrar ciertos errores de forma autónoma, por lo que es muy difícil refactorizar el código.

 1
Author: Dimitri C.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-23 10:44:30

Los lenguajes de scripting son lenguajes de programación donde los programas se entregan típicamente a los usuarios finales en una forma textual legible y donde hay un programa que puede aparentemente ejecutar ese programa directamente. (El programa bien puede compilar el script internamente; eso no es relevante aquí porque no es visible para el usuario.)

Es relativamente común que los lenguajes de scripting puedan soportar una sesión interactiva donde los usuarios pueden simplemente escribir su programa y tener se ejecuta inmediatamente. Esto se debe a que se trata de una extensión trivial del requisito esencial del primer párrafo; el principal requisito adicional es la adición de un mecanismo para averiguar cuándo se completa una instrucción mecanografiada para que pueda enviarse al motor de ejecución.

 1
Author: Donal Fellows,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:13:42

Para una toma ligeramente diferente de la pregunta. Un lenguaje de scripting es un lenguaje de programación, pero un lenguaje de programación no es necesariamente un lenguaje de scripting. Un lenguaje de scripting se utiliza para controlar o escribir un sistema. Ese sistema podría ser un sistema operativo donde el lenguaje de scripting sería bash. El sistema podría ser un servidor web con PHP el lenguaje de scripting. Los lenguajes de scripting están diseñados para llenar un nicho específico; son lenguajes específicos de dominio. Sistemas interactivos han interpretado lenguajes de scripting dando lugar a la noción de que los lenguajes de scripting son interpretados; sin embargo, esto es una consecuencia del sistema y no del lenguaje de scripting en sí.

 1
Author: phreed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:22:11

Un lenguaje de scripting es un lenguaje que configura o extiende un programa existente.
Un Lenguaje de Scripting es un lenguaje de programación.

 1
Author: Romain Hippeau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-20 14:39:41

La definición de "lenguaje de scripting" es bastante confusa. Lo basaría en las siguientes consideraciones:

  1. Los lenguajes de scripting no suelen tener pasos de compilación visibles para el usuario. Normalmente, el usuario puede ejecutar programas en un solo comando.

  2. Los programas en lenguajes de scripting normalmente se pasan en forma de código fuente.

  3. Los lenguajes de scripting normalmente tienen tiempos de ejecución que están presentes en un gran número de sistemas, y los se instala fácilmente en la mayoría de los sistemas.

  4. Los lenguajes de scripting tienden a ser multiplataforma y no específicos de la máquina.

  5. Los lenguajes de scripting facilitan la llamada a otros programas y la interfaz con el sistema operativo.

  6. Los lenguajes de scripting suelen ser fácilmente insertables en sistemas más grandes escritos en lenguajes de programación más convencionales.

  7. Los lenguajes de scripting normalmente están diseñados para facilitar la programación, y con mucha menos consideración para la velocidad de ejecución. (Si desea una ejecución rápida, el consejo habitual es codificar las partes que consumen mucho tiempo en algo como C, e incrustar el lenguaje en C o llamar a bits C desde el lenguaje.)

Algunas de las características que enumeré anteriormente son ciertas para las implementaciones, en cuyo caso me refiero a las implementaciones más comunes. Ha habido intérpretes de C, con (AFAIK) ningún paso de compilación obvio, pero eso no es cierto para la mayoría de las implementaciones de C. Usted podría ciertamente compilar un programa Perl a código nativo, pero así no es como se usa normalmente. Algunas otras características son de naturaleza social. Algunos de los criterios anteriores se superponen en cierta medida. Como he dicho, la definición es difusa.

 1
Author: David Thornley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-06-15 21:34:53

Un lenguaje de scripting es un lenguaje de programación diseñado para integrarse y comunicarse con otros lenguajes de programación. También puede decir que instruye a otros a hacer cosas

 1
Author: Debaprasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-25 04:32:26

Yo diría que el lenguaje de scripting es el que manipula fuertemente las entidades que no define por sí mismo. Por ejemplo, JavaScript manipula objetos DOM proporcionados por el navegador, PHP opera una enorme biblioteca de funciones basadas en C, y así sucesivamente. Por supuesto no es una definición precisa, más una forma de pensar si es.

 0
Author: Michael Pliskin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-19 10:54:34

Si no/no se ejecutaría en la CPU, es un script para mí. Si un intérprete necesita ejecutarse en la CPU debajo del programa, entonces es un script y un lenguaje de scripting.

¿No hay razón para hacerlo más complicado que esto?

Por supuesto, en la mayoría (99%) de los casos, está claro si un lenguaje es un lenguaje de scripting. Pero considere que una máquina virtual puede emular el conjunto de instrucciones x86, por ejemplo. ¿No haría esto el bytecode x86 un lenguaje de scripting cuando se ejecuta en un ¿VM? ¿Qué pasaría si alguien escribiera un compilador que convirtiera el código perl en un ejecutable nativo? En este caso, ya no sabría cómo llamar al idioma en sí. Sería la salida lo que importaría, no el idioma.

Por otra parte, no soy consciente de que se haya hecho algo como esto, así que por ahora todavía me siento cómodo llamando a lenguajes interpretados lenguajes de scripting.

 0
Author: anon6439,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-22 00:51:21