¿Por qué un script PHP se llama script? ¿Qué los hace un guión?

Para ampliar la respuesta de Vipin Saxena:

Los programas están escritos en texto legible para humanos. Los lenguajes de programación suelen ser lenguajes de secuencias de comandos o lenguajes compilados.

En un lenguaje compilado, un compilador toma su texto legible por humanos y lo convierte en binarios y ceros que son directamente utilizados por la CPU de su computadora (o su computadora de destino). El programa compilado se conoce como “el binario”. El binario no es legible por humanos.

En un lenguaje de secuencia de comandos, un intérprete toma el texto legible por humanos y recorre las líneas de texto, una por una, y las ejecuta. El código no se convierte en binario, el intérprete es binario y solo está leyendo y ejecutando su script.

Un compilador tarda un tiempo en convertir su programa en binario y, al hacerlo, intenta optimizar las cosas para que el programa se ejecute lo más rápido posible con la menor cantidad de recursos posible. Toda la optimización ocurre antes de que se ejecute su programa.

Un intérprete generalmente no puede optimizar su código, por lo que los scripts tienden a ejecutarse más lentamente que los programas compilados.

Hay algunos idiomas que ejecutarán un script y también lo compilarán.

Por ejemplo, los scripts de Python tienen un tipo de archivo de “.py”. La versión compilada de un script de Python tendrá el tipo de archivo “.pyc” o “.pyo”. Si no ha cambiado el avance lento en el archivo .py, solo ejecutará la versión compilada y se ejecutará mucho más rápido que el script .py.

La ventaja de un lenguaje de secuencias de comandos es que puede recorrer fácilmente su código para depurarlo. Con cada línea de un script, puede ver cuáles son los contenidos variables y puede ver cómo el programa salta dentro de su código. Puede recorrer su código con un lenguaje compilado, es un poco más complicado.

Su script debe ejecutarse en cualquier computadora que tenga un intérprete para ese idioma. Un binario compilado solo se ejecutará en la computadora / CPU para la que fue compilado.

Con un script, cualquiera que quiera saber cómo funciona su código puede leer el script, por lo que su propiedad intelectual no está protegida.

Con una aplicación compilada, es difícil (no imposible) “descompilar” el binario y volver a convertirlo en un código legible donde alguien pueda descubrir lo que está haciendo y luego hacer lo mismo en su programa.

Swift es un buen híbrido donde normalmente es un lenguaje compilado, pero puede ejecutar el código Swift en el “Playground”, que es un intérprete. Aprenda como si fuera un script, compile cuando se ejecute de la manera que desee.

Los lenguajes de secuencias de comandos no requieren el paso de compilación y se interpretan más bien.

Podemos diseñar un intérprete para el lenguaje C y usarlo como un lenguaje de secuencias de comandos, y al mismo tiempo, podemos diseñar un compilador para JavaScript y usarlo como un lenguaje de programación. Un ejemplo en vivo de esto es V8, el motor JavaScript de Google Chrome, que compila el código JavaScript en código máquina, en lugar de interpretarlo.

Existen diferentes definiciones, pero en el caso de PHP nunca se trata de compilación o código objeto, etc. Solo se trata del código fuente, e incluso el código fuente se carga en el servidor. Luego, OPcache convertirá la fuente en algo más eficiente, pero eso no es visible para usted como desarrollador. Usted como desarrollador nunca tiene que lidiar con otra cosa que no sea el código fuente. Eso es lo que yo llamaría un lenguaje de script, pero supongo que es un área gris.

Los programas que se ejecutan en un servidor web y generan dinámicamente HTML para la salida a las máquinas cliente se han denominado tradicionalmente scripts. Pero son programas como cualquier otro. La misma convención se aplica a los programas que se ejecutan dentro de un navegador, como el software JavaScript.