¿Qué es un lenguaje de scripting? ¿Cuál es la diferencia entre este y un lenguaje de programación?
Los lenguajes de scripting generalmente se refieren a tareas de programación simples, como los scripts de shell. El lenguaje de scripting es un lenguaje especial entre HTML y lenguajes de programación como JAVA, Visual Basic, C++, etc. Aunque está más cerca de este último, no tiene la gramática y las reglas complejas y rigurosas de los lenguajes de programación. Existen muchas diferencias entre los lenguajes de sistema y los lenguajes de scripting, pero las principales son: Nivel de abstracción: Esta es la diferencia más importante y obvia. Los lenguajes de scripting proporcionan abstracciones de nivel superior a los programadores. Esto es evidente en el hecho de que en el lenguaje mismo existen estructuras de datos avanzadas, como estructuras de listas y diccionarios, así como anidamientos y operaciones simples y convenientes en dichas estructuras. Esto puede crear un programa muy exitoso. Definición de tipo: los lenguajes del sistema suelen estar fuertemente tipados y estáticamente tipados. Esto significa que los tipos de todas las variables deben especificarse en el programa y verificarse en el momento de la compilación. Por el contrario, los lenguajes de secuencias de comandos son las definiciones de tipos más flexibles, sin ninguna declaración de tipos y con verificación dinámica de tipos en tiempo de ejecución. Ejecución: Se compilan las características del lenguaje del sistema. Los programas se compilan en binarios ejecutables. Por otro lado, los lenguajes de scripting se caracterizan por la interpretación, es decir, las instrucciones se ejecutan inmediatamente sin un estado intermedio de compilación. Esto significa que el lenguaje de programación es interactivo (puede escribir comandos cuando se le solicite y ver los resultados), lo cual es otra gran ventaja. Esto elimina por completo el proceso de compilación del ciclo de edición-compilación-ejecución. Velocidad: Los tres puntos anteriores son ejemplos típicos del compromiso entre la velocidad y la eficiencia de los lenguajes de script, por un lado, y la facilidad de uso y el poder de las expresiones, por el otro. Esto hace que la velocidad de ejecución de los lenguajes de script sea un orden de magnitud más lenta que la de los lenguajes del sistema. Este es el aspecto más difamado de los lenguajes de programación. La penalización en el rendimiento no es realmente un problema porque la idea es utilizar un lenguaje de programación para componer componentes que estén escritos en un lenguaje de sistemas rápido como C. Entonces, todo lo que necesita ejecutarse rápido lo hará porque está implementado en un lenguaje rápido. Los lenguajes de secuencias de comandos solo se utilizan para unir cosas y, por lo general, estos no son cuellos de botella de rendimiento (o, si lo son, debe volver a examinar su diseño).