DEV Community

Baltasar García Perez-Schofield
Baltasar García Perez-Schofield

Posted on • Edited on

Descanse en paz, VBScript

En 1996 nacía VBScript, un lenguaje de script basado en Visual Basic para "dar vida" a las por entonces novedosas páginas web en HTML.

VBScript en Windows

Este lenguaje solo era soportado por Internet Explorer, que al menos por necesidad, también soportaba JavaScript. Su uso seguía las mismas pautas que JavaScript, como podemos ver en este ejemplo (que sería parte de un archivo HTML):

<html>
<body>
<script type="text/vbscript">
    document.write("Hola desde VBScript.")
</script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Este ejemplo... no podrás probarlo porque ya ni siquiera Edge (el antiguo) soporta VBScript. Pero podemos hacernos una idea, ¿no?

Lo cierto es que este no es el mejor ejemplo, porque más allá de las llamadas comunes al DOM, lo único que podremos apreciar es la falta de punto y coma (';') al final de la instrucción. En este caso, además JavaScript permitiría omitirlo, así que... vamos a por otro:

<html>
<body>
<script type="text/vbscript">
    Dim nombre as String

    nombre = InputBox("Dame tu nombre:")
    document.write("Tu nombe es: " & nombre)
</script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Aquí ya podemos hacernos una mejor idea sobre cómo era el lenguaje, que está fuertemente basado en Visual Basic. Los comentarios se marcan con el apóstrofe, como en muchas antiguas versiones de BASIC... me pregunto si funcionaría REM (la palabra clave para comentarios "original"). Colocar as String detrás de Dim y el nombre de la variable es opcional, ya que VBScript no es fuertemente tipado.

<html>
<body>
<script type="text/vbscript">
    Function superficieCirculo(ByVal r)
       superficieCirculo = r * r * 3.14
    End Function

    Dim x

    x = InputBox("Dame un radio:")
    document.write("La superficie es: " & superficieCirculo(x))
</script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Aquí tenemos un ejemplo un pelín más complejo porque involucra crear una función y tomar su resultado.

En fin, ah... ¿qué por qué ese título? VBScript ha "muerto" oficialmente (octubre de 2023). Ya no será incluido en nuevas versiones de Windows. En todo caso, si lo necesitas, podrás bajártelo e instalártelo.

La pregunta es... ¿por qué esta opción, si al fin y al cabo ya nadie lo usaba? Resutla que además de servir como lenguaje de scripting para HTML, diferentes versiones se adaptaron para la gestión del sistema operativo, y también para MS Office (VBA, o Visual Basic for Applications). Estas también se eliminan, ya que aunque se utilizaran bastante más, eran un problema como vector de ataque para la gente amante de virus y troyanos.

Por cierto, ya sé que te has quedado con ganas de saber cómo se hace lo mismo con JavaScript:

<html>
<body>
<script type="text/javascript">
    function superficieCirculo(r)
    {
       return r * r * 3.14;
    }

    let x = parseInt(prompt("Dame un radio:"));

    if (x != null) {
        document.write("La superficie es: " + superficieCirculo(x));
    }
</script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

En fin, otro peso muerto del que Microsoft se ha deshecho... 30 años después..., no como otras compañías, que no soportan sus servicios ni diez años, ¿no Google?

EDITADO:

¿Hay alguna forma de ejecutar VBScript? Lo cierto es que sí, hay varias.

  • ClearScript:

Para utilizar ClearScript, necesitas una máquina Windows y dotnet.

El proyecto ClearScript ofrece una forma sencilla de añadir scripting a una aplicación C#. En Linux, funciona el motor V8, por ejemplo, pero para VBScript es necesario tener Windows, pues lo que hace es exponer el intérprete.

Crea un proyecto C# y desde NuGET añade ClearScript. A partir de ahí, se puede instanciar un motor de VBScript y ejecutar instrucciones en su interior.

using Microsoft.ClearScript.Windows;


Console.WriteLine( "VBScript en .NET!!" );

// create a script engine
using (var engine = new VBScriptEngine()) {
    engine.Execute( "print \"Hola desde VBScript\"" );
}
Enter fullscreen mode Exit fullscreen mode
  • FreeBasic:

No se trata de ningún port the Visual Basic Script, pero lo cierto es que FreeBasic persigue una gran compatibilidad con el antiguo QuickBasic, y por tanto es muy compatible con VBScript. ¡Por cierto, es un compilador, no un intérprete... y es multiplataforma!

DIM nombre as String

INPUT "Dame tu nombre: "; nombre
PRINT "Hola, " & nombre
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
ruthmoog profile image
ruthmoog

Keep in mind that you are going to have to support and maintain your code for at least 30 years and it will certainly affect your decisions 😄

Collapse
 
baltasarq profile image
Baltasar García Perez-Schofield

Sure! Microsoft has always maintained the "backwards compatibility" mantra. But then, that's a very big company...