Los lenguajes de script simplifican y agilizan la programación, por lo que no es de extrañar que su uso esté muy extendido en el desarrollo web.

Sin embargo, ese no es su único campo de aplicación. También hay lenguajes de scripts para sistemas operativos, software de análisis estadístico, aplicaciones de oficina, motores de juegos y muchos otros tipos de plataformas.

En este post, aprende qué significan exactamente y conoce los mejores ejemplos de lenguajes de scripting en 2024.

Los lenguajes de scripts pueden realizar diferentes acciones dentro de un entorno de tiempo de ejecución particular, como automatizar la ejecución de tareas, mejorar la funcionalidad del software principal, realizar configuraciones, extraer datos de conjuntos de datos y otros.

Los lenguajes de scripts pueden surgir de dos maneras:

  1. Un entorno de ejecución puede introducir su propio lenguaje de script, como Bash para el sistema operativo GNU o VBA para las aplicaciones de Microsoft Office.
  2. Un entorno de ejecución puede adoptar un lenguaje de script existente, por ejemplo, la concha de MongoDB mongo ha sido construida alrededor de JavaScript.

Por otro lado, a veces es el lenguaje de script el que existe primero y crea su propia plataforma matriz, por extraño que esto pueda parecer.

Esto es lo que ocurrió en el caso de Node.js, un entorno de ejecución de backend que fue creado para permitir a los desarrolladores web usar JavaScript no solo en el frontend sino también en el backend, siguiendo el paradigma de «JavaScript en todas partes».

¿Qué Significa «Scripting» en la Programación?

La acción de scripting es esencialmente escribir una serie de comandos que son interpretados uno por uno por una aplicación o un motor de escritura. Aunque el script guía a la plataforma sobre lo que debe hacer (le da un script para leer e interpretar), la ejecución es realizada por el entorno de ejecución y no por el propio lenguaje de scripting.

Esto es lo que diferencia a los lenguajes de scripting de los lenguajes de programación como Java, que se pueden «Write Once Run Anywhere (escribir una vez, ejecutar en cualquier lugar)» (eslogan oficial de Java que significa que los programas de Java pueden ejecutarse como aplicaciones autónomas en cualquier entorno; desde que se acuñó también se ha convertido en el principio WORA que se refiere a las capacidades multiplataforma).

Lenguajes de Scripting vs. Lenguajes de Programación

Aunque los términos «lenguaje de script» y «lenguaje de programación» se usan frecuentemente de manera intercambiable, no significan la misma cosa.

Plataforma Específica vs. Plataforma Agnóstica

Los lenguajes de scripts son específicos de la plataforma, mientras que los lenguajes de programación son agnósticos de la plataforma (multiplataforma), ya que tienen la capacidad de ejecutarse a sí mismos. Por ejemplo, puedes ejecutar un programa Java en cualquier sistema operativo.

(Principalmente) Interpretado vs. Compilado

Mientras que los lenguajes de programación se compilan, los lenguajes de scripts se interpretan en su mayoría, aunque hay algunos lenguajes de scripts que se compilan e interpretan a la vez, como Python y Groovy.

«Compilado» significa que un lenguaje de programación tiene su propio compilador que traduce la sintaxis en código máquina antes del tiempo de ejecución (runtime). En cambio, los lenguajes de scripts son interpretados línea por línea durante el tiempo de ejecución por el intérprete de la plataforma en la que se están ejecutando.

Más Rápido vs. Más Lento en Runtime

Debido a esta diferencia en la implementación, los lenguajes de programación son más rápidos que los lenguajes de scripts, ya que no tienen que ser compilados en tiempo real. Los compiladores también realizan una gestión colectiva de errores antes de la ejecución, mientras que los intérpretes evalúan el código línea por línea, de modo que hacen una pausa (o se detienen completamente) cada vez que encuentran un error.

Esto también aumenta el tiempo total de ejecución de los lenguajes de scripts, aunque en el hardware moderno y más rápido, esto es menos problemático que antes.

Más vs. Menos Intensivo en Codificación

Los lenguajes de programación son más intensivos en codificación, ya que hay que hacer muchas cosas manualmente que son manejadas por la plataforma en el caso de los lenguajes de scripts. Si utilizas un lenguaje de scripts tienes que escribir muchos menos códigos.

Aplicaciones Independientes vs. Aplicaciones que Forman Parte de una Pila

Hay algunas cosas que simplemente no puedes hacer con un lenguaje de scripts. Lo más importante es que no se pueden crear aplicaciones autónomas de escritorio y móviles con un lenguaje de scripts, ya que no hay un entorno de ejecución que las interprete.

Por ejemplo, se pueden utilizar frameworks PHP como WordPress y Laravel solo para sitios y aplicaciones web porque utilizan el navegador web como entorno de ejecución. Del mismo modo, las aplicaciones móviles de WordPress se ejecutan en entornos de ejecución móviles, como Capacitor, que incorporan vistas de la web.

Lenguajes de Scripts vs. Lenguajes de Programación – Resumen de las Diferencias

Así que las principales diferencias entre los lenguajes de programación y los de scripts son las siguientes:

Lenguajes de scripting Lenguajes de programación
Específicos de plataforma Independientes de la plataforma (multiplataforma)
(Mayoritariamente) interpretado Compilado
Más lento en tiempo de ejecución Más rápido en tiempo de ejecución
Menos intensivo en código Más intensivo en código
Crea aplicaciones como parte de un stack Crea aplicaciones independientes

Confusiones Sobre los Lenguajes de Scripts

Existen algunas confusiones sobre los lenguajes de scripts con los que te encontrarás frecuentemente, así que echemos un vistazo antes de sumergirnos en los mejores lenguajes de scripts.

Lo más importante es que no tiene mucho sentido hablar de lenguajes de scripts frontend vs. backend, a pesar de que muchos artículos que se encuentran en toda la web utilizan este tipo de agrupación.

En realidad, solo hay un lenguaje de scripts de interfaz actualmente en uso, y es JavaScript (existían otros antes, como ActionScript y JScript, pero ahora todos están obsoletos).

No es el frontend contra el backend lo que es importante en el contexto de los lenguajes de scripts, sino los entornos de ejecución en los que un lenguaje de scripts se puede ejecutar.

Ten en cuenta que «frontend» solo significa algo (imagen, fuente, marca, hoja de estilo, script, otro tipo de archivo estático) que un navegador web puede interpretar. Por ejemplo, intenta abrir un archivo PHP directamente desde el navegador web: no puedes, porque un servidor de aplicaciones PHP tiene que interpretarlo – por lo que PHP es un lenguaje de scripts backend en el contexto del desarrollo web, mientras que la capa de aplicación de una pila de servidores (por ejemplo, LAMP) en el contexto de los lenguajes de scripts.

Además del desarrollo de la web (el scripting de frontend y backend), los lenguajes de scripts también pueden utilizarse para múltiples cosas como la programación y configuración de sistemas operativos y aplicaciones/entornos específicos, la manipulación de conjuntos de datos, la automatización de tareas y muchas otras.

Un lenguaje de scripts también puede funcionar en múltiples entornos.

¿Cuáles No Son Lenguajes de Scripts?

Antes de entrar en los mejores lenguajes de scripts, veamos los lenguajes de codificación que a veces se llaman falsamente lenguajes de scripts, pero no se puede hacer scripts con ellos:

  • Lenguajes de marcado, como HTML y XML. En HTML, hay atributos para el manejo de eventos como onclick y onmouseover, pero estos siguen siendo llamadas de JavaScript.
  • Lenguajes de hojas de estilo, como CSS, Sass y LESS.
  • Cualquier tipo de biblioteca o framework construido sobre cualquier lenguaje de programación, como jQuery, PostCSS, React, Vue, Angular, Rails, Grails, Django, Laravel, WordPress y otros.
  • Lenguajes que se compilan en un lenguaje de scripts, como TypeScript y CoffeeScript.
  • SQL como para gestionar datos en sistemas de gestión de bases de datos relacionales (RDBMS) como MySQL y MariaDB. No te dejan escribir funcionalidad dinámica. Sin embargo, muchos RDBMS tienen conchas que permiten utilizar un lenguaje de scripts (por ejemplo, JavaScript o Python en el MySQL Shell).
  • Entornos de tiempo de ejecución para uno o más lenguajes de scripts, como el NodeJS.

¿Cuáles Son los 13 Mejores Lenguajes de Script?

Hay muchos excelentes lenguajes de scripts que merecerían una mención en esta guía, pero ya no se están siendo activamente desarrollados. Sin embargo, los siguientes 13 lenguajes de scripting se actualizan regularmente y también se utilizan en la producción.

Así que si estás pensando en aprender un nuevo lenguaje de scripts como una nueva trayectoria profesional, todos valen la pena intentarlo.

1. JavaScript/ECMAScript

JavaScript
JavaScript

JavaScript es una implementación del estándar ECMA-262 que define el lenguaje de script de propósito general ECMAScript (ES). En otras palabras, JavaScript es un dialecto del lenguaje ECMAScript, por lo tanto no tiene una especificación autónoma, sino que utiliza la misma sintaxis que ECMAScript.

JavaScript tiene funciones de primera clase (las funciones son tratadas como variables) y soporta la programación orientada a objetos basada en prototipos (los objetos existentes son reutilizados como prototipos).

Ejemplo de Código

ECMAScript utiliza una sintaxis de corchetes. El siguiente ejemplo de código JavaScript suma los números del 1 al 10 y envía el resultado a la consola (puedes probarlo en la consola JavaScript de tu navegador web pulsando F12):

let total = 0, count = 1;

while (count <= 10) {
    total += count;
    count += 1;
}

console.log(total);
// 55

Fuente: Eloquent JavaScript by Marijn Haverbeke: Introduction

Casos y Entornos de Uso

JavaScript es el lenguaje de scripts utilizado por los navegadores web modernos, como el motor V8 de Chrome y el motor SpiderMonkey de Mozilla. Además, el desarrollo web de frontend, puede ser usado en entornos que no sean de navegadores también. El entorno de ejecución NodeJS ha sido creado para permitir a los desarrolladores web utilizarlo en el backend.

Las conchas de algunos sistemas de gestión de bases de datos NoSQL, como MongoDB y Apache CouchDB, y algunos sistemas de gestión de bases de datos relacionales, como el mencionado MySQL Shell, también lo utilizan como lenguaje de scripts.

2. PHP

PHP
PHP

PHP es un lenguaje de scripts de propósito general y código abierto utilizado en el desarrollo web de backend. El acrónimo originalmente significaba ‘Personal Home Page (Página de Inicio Personal)’, ya que PHP fue creado para añadir funcionalidades dinámicas a las páginas HTML estáticas.

Desde entonces, el PHP ha evolucionado hasta convertirse en un lenguaje autónomo, por lo que ahora el acrónimo se utiliza en el sentido de ‘Preprocesador de Hipertexto’. PHP está escrito de forma suelta (no tienes que declarar los tipos de datos de las variables), puede ser incrustado en documentos HTML, y también tiene características orientadas a objetos.

Ejemplo de Código

PHP tiene una sintaxis parecida a la de C. El siguiente ejemplo de código PHP crea una matriz numérica con cuatro elementos, hace un bucle a través de ellos, multiplica cada elemento por dos, y desajusta la variable $value cuando el bucle termina.

<?php
$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {
   $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)

unset($value);
?>

Fuente: PHP documentation: Control Structures

Casos y Entornos de Uso

PHP puede ser ejecutado en diferentes servidores HTTP, siendo Apache y Nginx los más populares.

Las pilas de servidores PHP más comunes son LAMP (Linux, Apache, MySQL, PHP), LEMP (Linux, Nginx, MySQL, PHP – usado por Kinsta), WAMP (Windows, Apache, MySQL, PHP), y MAMP (macOS, Apache, MySQL, PHP).

También es utilizado por muchos sistemas de gestión de contenidos populares (CMS) como WordPress, Drupal y Joomla, y frameworks de aplicación web como Laravel, Symfony y CodeIgniter, que están construidos sobre el lenguaje PHP y lo mejoran con funcionalidades adicionales.

También puede utilizar PHP para el desarrollo local de WordPress. Consulte nuestra guía detallada sobre las principales diferencias entre Javascript y PHP.

3. Python

Python
Python

Python es actualmente el segundo lenguaje de codificación más popular en GitHub (después de JavaScript). Es amado por su sintaxis clara y concisa – cuando se codifica en Python, hay que escribir mucho menos que en la mayoría de los lenguajes.

Python es un proyecto de código libre y abierto, gestionado por la Fundación de Software Python. Soporta los paradigmas de programación estructurada, orientada a objetos y funcional, y tiene una extensa Biblioteca Estándar que es una colección de módulos Python de uso común.

Ejemplo de Código

Python no usa corchetes y los punto y coma son opcionales, así que el código es fácil de leer y escribir. El siguiente ejemplo de código Python pasa por números enteros entre 0 y 4, y los imprime:

count = 0
while count < 5:
   print(count)
      count += 1

Fuente: Learn Python: Loops

Casos y Entornos de Uso

La implementación de Python más popular es CPython, escrita en el lenguaje C. También es la implementación de referencia que se descarga junto con el lenguaje Python. Aunque Python es un lenguaje interpretado, CPython utiliza tanto un paso de compilación como de interpretación. Primero, compila el código fuente en código de bytes (no es lo mismo que el código máquina) que interpreta en tiempo de ejecución.

Además de CPython, Python tiene otros entornos de ejecución también, el más importante es PyPy que omite el paso de compilación y solo hace interpretación JIT – just in time (justo a tiempo). Las implementaciones de Python son multiplataforma, lo que significa que se ejecutan en múltiples sistemas operativos, incluyendo Linux, Windows y MacOS.

El lenguaje Python se utiliza frecuentemente en el aprendizaje automático, en el desarrollo web de backend (siendo Django el framework web más popular), en el análisis de datos, en la automatización, en la computación científica y en el web scraping.

Para saber cuál es la mejor forma de aprender Python, consulta nuestra entrada del blog sobre tutoriales de Python.

4. Ruby

Ruby
Ruby

Ruby es un lenguaje de scripts de código abierto y propósito general con una sintaxis compacta y fácil de leer. Sigue los principios de la programación orientada a objetos y te permite escribir código limpio y lógico, lo que lo convierte en uno de los lenguajes de programación más fáciles de aprender. En Ruby, todo es un objeto, incluso los tipos que son primitivos en la mayoría de los lenguajes, como los booleanos y los enteros.

Los conceptos orientados a los objetos como la herencia, las mezclas y las metaclases también se utilizan mucho.

Aunque Ruby tiene un diseño puramente orientado a los objetos, también soporta programación procedimental (las funciones y variables definidas fuera de las clases pertenecen al objeto Self) y programación funcional (a través de funciones anónimas, cierres y continuaciones).

Ejemplo de Código

 

Ruby tiene una sintaxis concisa similar a la de Python. El siguiente ejemplo de código Ruby define la clase KaraokeSong como una subclase de la clase Song:

class KaraokeSong < Song
   def initialize(name, artist, duration, lyrics)
      super(name, artist, duration)
      @lyrics = lyrics
   end
end

Fuente: Programming Ruby reference guide: Classes, Objects, and Variables

Casos y Entornos de Uso

Ruby se utiliza principalmente en el desarrollo web de backend, potenciando algunos robustos marcos de aplicación web como Ruby on Rails. Muchos sitios web y aplicaciones populares se ejecutan en Ruby on Rails, como Airbnb, Shopify, GitHub y Hulu.

Ruby es también el lenguaje en el que están escritas muchas herramientas populares de desarrollo web, entre las que destacan el preprocesador Sass CSS, el generador de sitios web estáticos de Jekyll y el entorno de la máquina virtual Vagrant.

La implementación por defecto de Ruby es YARV (Yet Another Ruby Virtual Machine). Cambió el intérprete original de Ruby El Intérprete de Ruby de Matz (también Ruby MRI o CRuby) que había sido criticado por problemas de velocidad y escalabilidad.

También hay varios entornos de ejecución que compiten por Ruby, como JRuby (permite ejecutar Ruby en la máquina virtual de Java), mruby (una implementación ligera que se puede incrustar en la aplicación), TruffleRuby (el intérprete de Ruby de Oracle construido sobre GraalVM), Rubinius (una máquina virtual nativa de la nube para Ruby), y otros.

5. Groovy

Groovy
Groovy

Groovy es un increíble lenguaje flexible escrito para la Máquina Virtual de Java (JVM – Java Virtual Machine) que puede ser usado tanto como lenguaje de programación como de scripting. Es un proyecto de código abierto mantenido por la Fundación de Software Apache. Groovy es un lenguaje orientado a objetos que extiende la superclase java.lang.Object.

Admite tanto el scripting estático como el dinámico (la comprobación de tipos puede realizarse tanto en tiempo de compilación como en tiempo de ejecución) y tiene soporte nativo para listas, matrices asociativas, expresiones regulares y lenguajes de marcado como HTML y XML.

Puedes usar Groovy junto con las bibliotecas de Java existentes.

Ejemplo de Código

Groovy tiene una sintaxis compatible con Java, usando paréntesis rizados. El siguiente ejemplo de código Groovy define la clase Coordinates con las propiedades de latitud y longitud y el método getAt():

@Immutable
class Coordinates {
   double latitude
   double longitude

   double getAt(int idx) {
      if (idx == 0) latitude
      else if (idx == 1) longitude
      else throw new Exception("Wrong coordinate index, use 0 or 1")
   }
}

Fuente: Groovy Documentation: Semantics

Casos y Entornos de Uso

A medida que Groovy compila en código de bytes de Java, se puede utilizar como un lenguaje de programación de propósito general similar a Java. En este caso, puedes compilar el código fuente en código de bytes antes del tiempo de ejecución usando el compilador Groovyc (el equivalente a javac).

Sin embargo, también hay muchas implementaciones de Groovy que te permiten utilizarlo como lenguaje de scripts. Las más populares son el marco de aplicación web Grails (antes conocido como Groovy on Grails) y la herramienta de construcción de automatización Gradle, pero existen varias otras también.

6. Perl

Perl
Perl

Perl es un lenguaje de scripting de propósito general que ha existido por más de treinta años (desde 1987). Originalmente, fue creado como un lenguaje de scripts UNIX para el procesamiento de informes. De ahí viene también su nombre, ya que el acrónimo Perl significa «Practical Extraction and Reporting Language (Lenguaje Práctico de Extracción y Reporte)».

El lenguaje Perl se hizo popular en la década de 1990 cuando los programadores comenzaron a utilizarlo ampliamente para la elaboración de scripts CGI (Common Gateway Interface – Interfaz de entrada común), que es una especificación de interfaz más antigua para los servidores web (actualmente, se utiliza principalmente en los sitios heredados).

A pesar de ser un jugador relativamente temprano, Perl sigue siendo el decimoprimero en el índice TIOBE y el vigésimo primer idioma más popular en GitHub (en octubre de 2020).

Ejemplo de Código

La sintaxis de Perl es similar a la del lenguaje C. El ejemplo de código Perl que se muestra a continuación define primero la subrutina square() que calcula y devuelve el cuadrado de un número, luego pasa el valor 8 como argumento, ejecuta la subrutina y guarda el resultado en la variable $sq:

sub square {
   my $num = shift;
   my $result = $num * $num;
   return $result;
}

$sq = square(8);

Fuente: Perl docs: Perl Intro

Casos y Entornos de Uso

Aunque hoy en día no es la elección más frecuente de los desarrolladores web, Perl puede ser utilizado con éxito en el desarrollo de backend. Además del entorno de ejecución CGI, también se ejecuta en los servidores web Apache y Nginx – la pila LAMP es en realidad LAMPP, que significa Linux, Apache, MySQL, PHP, y Perl.

También existen algunos marcos de desarrollo web Perl, siendo los más populares Catalyst, Mojolicious y Dancer.

El Perl es usado por varios sitios web y aplicaciones notables como Amazon, IMDB, Booking.com, y el iPlayer de la BBC. También se usa en otras áreas, como la programación de redes y la administración de sistemas. También puedes consultar la Red de Archivo Integral de Perl (CPAN – Perl Archive Network) donde hay más de 25.000 proyectos de Perl de código abierto disponibles para su descarga.

7. Lua

Lua
Lua

Lua es un lenguaje de scripting rápido y ligero. La palabra «lua» significa «luna» en portugués, ya que el lenguaje es desarrollado y mantenido por la Pontificia Universidad Católica de Río de Janeiro en Brasil. Lua apoya los paradigmas de programación de procedimiento, orientado a objetos y funcional.

Como el intérprete de Lua está escrito en C, puede ser fácilmente incorporado a las aplicaciones usando su API C. Dicho esto, se puede utilizar Lua para ampliar las aplicaciones existentes escritas en lenguajes basados en C como C, C++, C#, Java, Perl, Ruby y otros.

Ejemplo de Código

Lua tiene una sintaxis concisa y fácil de leer, similar a la de Python y Ruby. El siguiente ejemplo de código de Lua muestra cómo usar la declaración if-then-else. Primero, evalúa la variable op, luego realiza operaciones aritméticas básicas dependiendo de su valor:

if op == "+" then
   r = a + b
elseif op == "-" then
   r = a - b
elseif op == "*" then
   r = a * b
elseif op == "/" then
   r = a / b
else
   error("invalid operation")
end

Fuente: Programming in Lua reference guide: Statements

Casos y Entornos de Uso

La implementación predeterminada de Lua no interpreta directamente el código fuente, sino que primero lo compila en código de bytes que luego ejecuta en la máquina virtual Lua. Como todo esto sucede en tiempo de ejecución, no hay ningún paso de compilación manual que necesites realizar (aunque puedes optar por compilar Lua antes del tiempo de ejecución para mejorar el rendimiento).

Hay otras implementaciones de Lua también, como LuaJIT, LuaVela, y muchas otras.

Lua se usa frecuentemente para desarrollar videojuegos, como Angry Birds, World of Warcraft y Grim Fandango. Como es fácil de incrustar, también es una elección frecuente para dispositivos incrustados como decodificadores, paneles de instrumentos de coches (por ejemplo, Volvo), cámaras IP (por ejemplo, Cisco), y otros.

También puede ser usado en el desarrollo web, ya que tanto el servidor Apache como el Nginx tienen un módulo Lua (aquí está el mod_lua de Apache, y aquí el ngx_http_lua_module de Nginx). Wikipedia eligió Lua como su lenguaje de scripting de plantillas, y la interfaz de usuario de Adobe Photoshop Lightroom está escrita en Lua también.

8. Bash

Bash

Bash es el nombre de un intérprete de línea de comandos (concha) para el sistema operativo GNU y el lenguaje de scripts correspondiente. Linux es, de hecho, el sistema operativo GNU que usa el núcleo de Linux (un núcleo es la parte central del sistema operativo, es el primer programa que carga el sistema operativo).

Bash es un reemplazo del original UNIX Bourne shell (sh) – el acrónimo Bash significa «Bourne Again SHell» (un juego de palabras con «concha nacida de nuevo»).

Además de ser el superconjunto de la sintaxis del la concha Bourne, Bash también incluye características de otros lenguajes de scripts de shell como KornShell (ksh) y C shell (csh) – por ejemplo, edición en línea de comandos e historia de comandos. Puede utilizar Bash tanto en un modo interactivo (ejecutando un comando a la vez y esperando la respuesta de la máquina) como en un modo de scripting (ejecutando un conjunto de comandos – un script Bash – a la vez).

Ejemplo de Código

Como la mayoría de los lenguajes de scripts CLI, Bash tiene una sintaxis simple y descriptiva. El siguiente ejemplo de código Bash selecciona un archivo de la carpeta actual y emite un mensaje que contiene el nombre y el índice del archivo:

select fname in *;
do
   echo you picked $fname \($REPLY\)
   break;
done

Fuente: Bash Reference Manual: Conditional Constructs

Casos y Entornos de Uso

Puedes utilizar Bash para realizar cambios y llevar a cabo diferentes acciones relacionadas con tu sistema operativo, como ejecutar comandos, llevar a cabo tareas que la mayoría de la gente haría utilizando una interfaz gráfica de usuario (por ejemplo, crear, mover o eliminar carpetas y archivos), personalizar y automatizar tareas administrativas, conectarse a un servidor remoto y muchas otras.

Bash es el shell por defecto de muchos sistemas operativos basados en Unix, incluyendo la mayoría de las distribuciones de Linux y todas las versiones de macOS hasta macOS Catalina que reemplazaron Bash con Z shell (Zsh) en 2019. También puedes ejecutar scripts Bash en Windows 10, usando la capa de compatibilidad del subsistema Windows para Linux (WSL) desarrollada por Microsoft.

9. PowerShell

PowerShell

Originalmente, PowerShell era un shell de línea de comandos y un lenguaje de scripts únicamente para el sistema operativo Windows. Desde entonces, Microsoft lo abrió y lo trasladó desde el .NET Framework, que solo puede crear aplicaciones de Windows, al .NETCore, que puede crear aplicaciones para Windows, Linux y MacOS. Esto significa que PowerShell es ahora multiplataforma.

También se ha cambiado el nombre de Windows PowerShell a PowerShell Core, que corresponde al marco subyacente. A diferencia de la mayoría de los shells de línea de comandos, PowerShell acepta y devuelve objetos .NET en lugar de texto plano, lo que da lugar a nuevas oportunidades en la automatización de tareas.

Ejemplo de Código

PowerShell tiene una sintaxis compacta que hace que trabajar en la línea de comandos sea más rápido. El ejemplo de código de PowerShell que se muestra a continuación crea una copia de seguridad del archivo boot.ini y lo guarda en el archivo boot.bak:

Copy-Item -Path C:\boot.ini -Destination C:\boot.bak

Fuente: PowerShell Documentation: Working with Files and Folders

Casos y Entornos de Uso

Puedes utilizar PowerShell en los sistemas operativos Windows, Linux, macOS, y algunos dispositivos ARM (por ejemplo, prendas de vestir, reproductores multimedia, tabletas y otros dispositivos electrónicos de consumo).

Puedes usar PowerShell para la administración del sistema, la automatización de tareas y la gestión de la configuración. Para encontrar los módulos y scripts de PowerShell, puede revisar PowerShell Galery y la colección oficial de scripts de muestra de Microsoft, también.

10. R

R

R es tanto un entorno de software como un lenguaje de scripts que puedes utilizar para la computación estadística, el análisis de datos y la visualización gráfica. Es un proyecto GNU libre y de código abierto y una implementación del lenguaje de computación estadística S (ya no está en desarrollo activo).

R te permite utilizar muchas técnicas estadísticas diferentes, como las pruebas estadísticas clásicas, la agrupación, el análisis de series temporales, el modelado lineal y no lineal, y otras.

Ejemplo de Código

La sintaxis de R es diferente de la mayoría de los lenguajes de scripting y tiene algunos elementos inusuales, también – por ejemplo, el operador primario de asignación es <- en lugar del signo = igual y tiene bucles sin bucles – ver más sobre las peculiaridades de la sintaxis de la R en esta guía para principiantes de la R por Sharon Machlis.

El siguiente ejemplo de código R define un atributo de names para el vector de la fruit (estructura básica de datos en R que contiene elementos del mismo tipo) que utiliza nombres alfanuméricos (orange, banana, apple, peach) para ayudar a identificar sus componentes. Más tarde, el subvector de lunch (u otro) puede acceder a cada componente utilizando su alias:

> fruit <- c(5, 10, 1, 20)
> names(fruit) <- c("orange", "banana", "apple", "peach")
> lunch <- fruit[c("apple","orange")]

Fuente: An Introduction to R: Index vectors; selecting and modifying subsets of a data set

Casos y Entornos de Uso

El entorno de software R es multiplataforma; puedes ejecutarlo en sistemas operativos Windows, Linux y MacOS. La implementación R por defecto también está disponible en otros lenguajes de scripts como Python y Perl. Esto significa que puedes acceder a toda la funcionalidad estadística de R usando estos lenguajes de scripting.

Además del entorno R por defecto, puedes usar el lenguaje de scripts R en otros entornos también, como pqR (significa ‘a pretty quick version of R’ – una versión bastante rápida de la R) y Renjin (una implementación de la R encima de la Máquina Virtual de Java).

11. VBA

VBA

VBA significa Visual Basic para Aplicaciones y es una implementación del lenguaje de programación Visual Basic 6 (no está en desarrollo activo desde 2008). Ha sido creado para las aplicaciones de Microsoft Office para permitir a los desarrolladores automatizar tareas repetitivas, añadir nuevas funcionalidades e interactuar con los usuarios finales de los documentos.

Similar a Visual Basic, VBA sigue el paradigma de programación por eventos que pone en el centro eventos como las acciones del usuario que dirigen el flujo del programa.

Como las aplicaciones de Microsoft Office tienen una interfaz gráfica de usuario, puedes adjuntar scripts VBA a los botones de menú, atajos de teclado, macros (patrones programables) y eventos OLE (Object Linking and Embedding que te permite controlar una aplicación desde otra; Microsoft technology es el propietario).

Ejemplo de Código

Como el VBA se basa en el Visual Basic (que es una ampliación del BASIC), utiliza una sintaxis similar a los lenguajes de la familia del BASIC (Beginners’ All-purpose Symbolic Instruction Code), lo que significa que es muy apto para principiantes.

El ejemplo de código VBA que figura a continuación utiliza el método GetCertificateDetail() del objeto SignatureInfo para obtener la fecha de caducidad de un certificado digital:

Sub GetCertDetails()
Dim objSignatureInfo As SignatureInfo
Dim varDetail As Variant

strDetail = objSignatureInfo.GetCertificateDetail(certdetExpirationDate)

End Sub

Fuente: Office VBA Reference: SignatureInfo object

Casos y Entornos de Uso

El lenguaje de scripts VBA está incorporado en la mayoría de las aplicaciones de Microsoft Office, respectivamente Access, Excel, Office para Mac, Outlook, PowerPoint, Project, Publisher, Visio, y Word – cada uno tiene una guía de referencia separada en el sitio de documentación de Microsoft, mientras que los conceptos generales de VBA se detallan en la referencia de la biblioteca.

Además de las aplicaciones de Microsoft Office, hay otras aplicaciones que también son compatibles con VBA, como AutoCAD y CorelDRAW.

12. Emacs Lisp

Emacs Lisp

Emacs Lisp es un lenguaje de scripts de dominio específico diseñado para el editor de texto Emacs de GNU. Es un dialecto de la familia de lenguajes de programación Lisp (el nombre proviene de LISt Processor).

Dado que Emacs Lisp ha sido diseñado para ser utilizado dentro de un editor de código, viene con un conjunto de características específicas para ese entorno, como el escaneo y análisis sintáctico de texto, el buffer (objetos con texto editable) y la gestión de pantalla, entre otras.

El lenguaje de script Emacs Lisp está estrechamente integrado con la propia interfaz del editor, por lo que cada comando es también una función Lisp que se puede llamar desde el script, y los parámetros de personalización son también variables Lisp.

Ejemplo de Código

La sintaxis de Emacs Lisp se basa en una notación de prefijos completamente entre paréntesis que puede ser un poco difícil de leer al principio si no se ha trabajado antes con ningún lenguaje Lisp.

El siguiente ejemplo de código Emacs Lisp define dos variables (símbolos) y asigna una lista de valores a cada una de ellas: una lista de árboles (pine, fir, oak, maple) a los símbolos de trees y una lista de herbívoros (gazelle, antelope, zebra) a los símbolos de herbivores:

(setq trees '(pine fir oak maple)
   herbivores '(gazelle antelope zebra))

Fuente: An Introduction to Programming in Emacs Lisp: Setting the Value of a Variable

Casos y Entornos de Uso

El editor de texto Emacs es una aplicación multiplataforma que puede instalarse en máquinas Windows, Linux y MacOS.

Usando el lenguaje de scripts Emacs Lisp, puedes extender y personalizar el editor de código, repetir y automatizar procesos, crear gráficos, restringir el enfoque a áreas específicas (para seguridad), buscar expresiones regulares, almacenar texto, definir modos y mapas de teclas, hacer preguntas a los usuarios y realizar muchas otras acciones.

También hay algunos marcos de configuración para Emacs Lisp – Doom Emacs y Spacemacs son los más conocidos.

13. GML

GML

El acrónimo GML significa «GameMaker Language». Es un buen ejemplo de un lenguaje de scripts específico de un dominio usado en el desarrollo de juegos. GML es un lenguaje de scripts propietario que pertenece a GameMaker Studio 2, un motor de juego multiplataforma y plataforma de desarrollo propiedad y mantenida por YoYo Games.

Aunque el GML se utiliza principalmente para controlar los objetos del juego, no es un lenguaje orientado a los objetos sino a los procedimientos. Permite llamar scripts personalizados desde cualquier objeto del juego.

Además del lenguaje de scripts GML, GameMaker Studio 2 también tiene una herramienta de scripts visuales llamada Drag and Drop (DnD). Debido a la naturaleza flexible de GameMaker Studio 2, también puedes mezclar DnD con tus guiones GML.

Ejemplo de Código

La sintaxis de GML es similar a la de JavaScript y otros lenguajes de tipo C.

El siguiente ejemplo de código GML hace que un objeto del juego se mueva horizontalmente hacia el puntero del ratón en la pantalla a una velocidad de 5 píxeles por paso. Una vez que alcanza la posición actual del puntero, el script crea una capa de efecto de explosión, la ejecuta (hay un efecto de explosión en la pantalla), y luego destruye la instancia (el efecto de explosión se elimina):

if mp_linear_step(mouse_x, mouse_y, 5, 0) {
   instance_create_layer(x, y, "Effects", obj_Explosion);
   instance_destroy();
}

Fuente: GameMaker Studio 2 Docs — Scripting — Referencia GML — Movimiento y Colisiones — Planificación del Movimiento

Casos y Entornos de Uso

GML es interpretado por GameMaker Studio 2 que debes comprar si quieres desarrollar juegos en este lenguaje de scripts.

Los precios dependen de la plataforma para la que quieras crear los juegos: los juegos para Mac y Windows son los más baratos; los juegos de escritorio multiplataforma (Windows, macOS, Ubuntu), los juegos web HTML5, los juegos UWP (Universal Windows Platform) y los juegos para móviles multiplataforma (Android, Fire, iOS) están en la gama media; y los juegos para PS4, Xbox One y Nintendo Switch son los más caros.

Algunos ejemplos de videojuegos creados con GML incluyen Blackhole, 10 Second Ninja X, Death’s Gambit, Deltarune, y varios otros.

Resumen

No hay duda de que los lenguajes de scripts son fascinantes. Tienen muchas variaciones, sintaxis e implementaciones diferentes, y pueden ser usados para muchas cosas.

Desde la construcción de sitios web dinámicos, a la automatización de la administración de sistemas, a la creación de videojuegos, y así sucesivamente.

Las tres cosas más importantes que hay que recordar sobre los lenguajes de scripts son:

No pueden funcionar por sí mismos, pero siempre necesitan un entorno (implementación, runtime) con un intérprete para ese lenguaje de scripts.

A veces se pueden utilizar lenguajes de scripts de propósito general para acceder a entornos y plataformas creados principalmente para otros lenguajes de programación o de escritura. Piensa en JRuby (te permite ejecutar Ruby en la máquina virtual de Java), Renjin (implementación de R también en la JVM), Rpy2 (interfaz R que puedes usar desde Python), como buenos ejemplos.

Por último, antes de aprender un nuevo lenguaje de scripts, siempre es una buena idea comprobar su popularidad actual usando el índice TIOBE o GitHut.

Dependiendo de ello, también encontrarás más o menos scripts de muestra, repositorios GitHub, librerías de módulos, guías de referencia, manuales detallados y escaparates de aplicaciones que te ayudarán a iniciarte en el lenguaje… ¡Y a conseguir proyectos y trabajos mejor pagados!

Anna Monus

Anna Monus es redactora y editora técnica profesional, y trata temas de desarrollo web, programación, computación en la nube, cultura tecnológica, accesibilidad y otros temas de vanguardia. Su trabajo ha sido publicado por las mayores publicaciones técnicas y blogs de todo el mundo, como IBM Cloud, Envato, Raygun, Hongkiat, LogRocket y otros. Más información en su sitio web o en X @azaleamollis.