Visual Basic (VB) antes de .NET , a veces denominado Visual Basic clásico , [1] [2] es un lenguaje de programación de tercera generación , basado en BASIC y un entorno de desarrollo integrado (IDE), de Microsoft para Windows conocido por soportar el desarrollo rápido de aplicaciones (RAD) de aplicaciones de interfaz gráfica de usuario (GUI), programación basada en eventos y tanto el consumo como el desarrollo de componentes a través de la tecnología del Modelo de objetos componentes (COM).
VB se lanzó por primera vez en 1991. La versión final fue la 6 (VB6) en 1998. El 8 de abril de 2008, Microsoft dejó de brindar soporte al IDE de VB6, relegándolo a la categoría de legado . El equipo de Microsoft VB aún mantiene la compatibilidad con las aplicaciones de VB6 a través de su programa "It Just Works" en los sistemas operativos Windows compatibles. [3]
Microsoft modificó significativamente VB para la tecnología .NET y lo rebautizó como Visual Basic .NET (VB.NET), para luego volver a denominarlo Visual Basic . Por lo tanto, Visual Basic puede hacer referencia a una versión clásica, a una versión .NET o a ambas. Este artículo trata sobre las versiones anteriores a .NET.
Así como BASIC fue pensado originalmente para ser fácil de aprender, Microsoft pretendía lo mismo para VB. [4] [5]
El desarrollo de una aplicación VB se realiza exclusivamente a través del entorno de desarrollo integrado (IDE) de VB , una aplicación del conjunto de herramientas Visual Studio de esa época. A diferencia de las versiones modernas de Visual Studio que admiten muchos lenguajes, incluido VB (.NET), el IDE de VB solo admite VB.
En 2014, algunos desarrolladores de software todavía preferían Visual Basic 6.0 sobre su sucesor, Visual Basic .NET . [6] Visual Basic 6.0 fue seleccionado como el lenguaje de programación más temido por los encuestados de la encuesta anual para desarrolladores de Stack Overflow en 2016, 2017 y 2018. [7] [8] [9]
Como era la intención de las variantes anteriores de BASIC , VB fue pensado para tener una curva de aprendizaje baja . Además, el IDE fue pensado para promover la productividad; incluso para aplicaciones GUI complejas. La programación implica organizar visualmente componentes o controles en un formulario , especificar atributos y acciones para esos componentes y escribir código que dirija el comportamiento. Dado que los componentes tienen atributos y acciones predeterminados, un programador puede desarrollar un programa simple sin escribir mucho código.
Los programas creados con versiones anteriores sufrieron problemas de rendimiento, pero computadoras más rápidas y la compilación de código nativo hicieron que esto fuera un problema menor.
Dado que un programa VB se compila como un código ejecutable nativo en lugar de interpretarse como las antiguas variantes de BASIC, se ejecuta relativamente rápido y requiere relativamente poco espacio de almacenamiento. Pero, a partir de la versión 5, requiere que se carguen archivos de biblioteca relativamente grandes en tiempo de ejecución; alrededor de 1 MB. Las bibliotecas de tiempo de ejecución principales se incluyen de forma predeterminada en Windows 2000 y versiones posteriores, pero los componentes de tiempo de ejecución extendidos requieren consideraciones de instalación adicionales. Las versiones anteriores de Microsoft Windows (95/98/NT) requieren que las bibliotecas de tiempo de ejecución se distribuyan con el ejecutable.
Los formularios se crean utilizando técnicas de arrastrar y soltar . Se utiliza una herramienta para colocar controles (por ejemplo, cuadros de texto, botones, etc.) en el formulario (ventana). Los controles tienen atributos y controladores de eventos asociados a ellos. Los valores predeterminados se proporcionan cuando se crea el control, pero el programador puede cambiarlos. Muchos valores de atributos se pueden modificar durante el tiempo de ejecución según las acciones del usuario o los cambios en el entorno, lo que proporciona una aplicación dinámica. Por ejemplo, se puede insertar código en el controlador de eventos de cambio de tamaño del formulario para cambiar la posición de un control de modo que permanezca centrado en el formulario, se expanda para llenar el formulario, etc. Al insertar código en el controlador de eventos para una pulsación de tecla en un cuadro de texto, el programa puede traducir automáticamente el texto que se está ingresando, o incluso evitar que se inserten ciertos caracteres.
El desarrollo en el IDE se organiza como un proyecto que puede configurarse para generar como resultado un programa ( EXE ), una biblioteca de vínculo dinámico (DLL) o una biblioteca de control ActiveX (OCX), que es una DLL especializada.
Los controles proporcionan la funcionalidad gráfica de una aplicación GUI y los programadores adjuntan código a los controladores de eventos para realizar acciones. Por ejemplo, un control desplegable muestra una lista de elementos. Cuando el usuario selecciona un elemento, se llama automáticamente a un controlador de eventos que ejecuta el código que el programador adjuntó al controlador.
En el caso de una DLL, el código VB no suele ofrecer ninguna interfaz de usuario y, en su lugar, proporciona objetos COM a otros programas. Esto permite funciones como el procesamiento del lado del servidor o un módulo complementario.
A través de la tecnología COM, la memoria no utilizada se recupera para su reutilización mediante el recuento de referencias ; la recuperación se realiza cuando el recuento llega a cero. VB reduce el recuento cuando una variable queda fuera de ámbito o cuando se asigna a Nothing
. Este diseño evita las fugas de memoria que afectan a algunos lenguajes más antiguos, como C y C++. Se diferencia significativamente del enfoque más moderno de recolección de basura .
VB proporciona una gran biblioteca de objetos de utilidad y proporciona soporte básico para la programación orientada a objetos .
A diferencia de muchos otros lenguajes de programación, el código de VB no distingue entre mayúsculas y minúsculas , aunque el IDE transforma las palabras clave en mayúsculas y minúsculas estándar y los nombres de las variables para que coincidan con las mayúsculas y minúsculas utilizadas en otras partes del proyecto. Cabe destacar que la comparación de cadenas distingue entre mayúsculas y minúsculas de forma predeterminada.
El compilador de VB se comparte con otros lenguajes de la suite Visual Studio, C y C++. Sin embargo, de forma predeterminada, las restricciones en el IDE no permiten la creación de algunos destinos (archivos DLL de modelos de Windows) y modelos de subprocesos, pero con el paso de los años, los desarrolladores han logrado eludir estas restricciones.
Visual Basic tiene características y características notables que en algunos casos son diferentes a otras variantes de BASIC o de otros lenguajes comunes:
' This is a comment
A = B = C
no da como resultado que los valores de A, B y C sean iguales. El resultado booleano de "¿B es igual a C?" se almacena en ATrue
tiene un valor numérico −1. VB almacena un Boolean como un entero con signo de complemento a dos con todos unos en binario para verdadero y cero para falso. Esto es evidente cuando se realiza una Not
operación (bit a bit) en el valor de complemento a dos 0, que devuelve el valor de complemento a dos −1, en otras palabras . Esta funcionalidad inherente se vuelve especialmente True = Not False
útil cuando se realizan operaciones lógicas en los bits individuales de un entero como And
, Or
y . [18] Esta definición de también es consistente con BASIC desde la implementación de Microsoft BASIC de principios de la década de 1970 y también está relacionada con las características de las instrucciones de CPU en ese momento.Xor
Not
True
Option Base
declaración se puede utilizar para establecer el límite inferior predeterminado, pero algunos afirman que su uso genera confusión al leer el código y es mejor evitarlo especificando siempre explícitamente el límite inferior. Esta característica poco común del lenguaje existe en Visual Basic .NET, pero no en VBScript .OPTION BASE
Fue introducido por ANSI, con el estándar ANSI Minimal BASIC a finales de la década de 1970.Round
función [19] ? Round(2.5, 0)
da 2, ? Round(3.5, 0)
da 4./
) de modo que la división de un entero por otro produce un resultado que puede parecer más intuitivo desde una perspectiva matemática. VB proporciona un operador de división de enteros ( \
) que trunca.variant
. Sin embargo, esto se puede cambiar con instrucciones Deftype como DefInt
, DefBool
, DefVar
, DefObj
, DefStr
. Hay 12 Deftype
instrucciones en total ofrecidas por Visual Basic 6.0. El tipo predeterminado se puede anular para una declaración específica utilizando un carácter de sufijo especial en el nombre de la variable ( #
para Double, !
para Single, &
para Long, %
para Integer, $
para String y @
para Currency) o utilizando la frase clave As (type)
. VB se puede configurar para requerir declaraciones de variables a través de Option Explicit
.BYTE informó en 1989 que, basándose en su experiencia con el desarrollo de software para Macintosh, Microsoft "quiere proporcionar un entorno de desarrollo que imite el entorno de entrega". El manejo de cadenas de BASIC era preferible al de C, dijo Greg Lobdell de la compañía, al desarrollar las aplicaciones principalmente de procesamiento de transacciones que Microsoft esperabaque crearan las herramientas de programación orientada a objetos . [20] Visual Basic 1.0 se introdujo en 1991. El diseño de arrastrar y soltar para crear la interfaz de usuario se deriva de un prototipo de generador de formularios desarrollado por Alan Cooper y su compañía llamado Tripod . [21] [22] [23] Microsoft contrató a Cooper y sus asociados para desarrollar Tripod en un sistema de formularios programables para Windows 3.0 , bajo el nombre de código Ruby (sin relación con el posterior lenguaje de programación Ruby ). Tripod no incluía un lenguaje de programación en absoluto. Microsoft decidió combinar Ruby con el lenguaje Basic para crear Visual Basic. El generador de interfaz Ruby proporcionó la parte "visual" de Visual Basic, y esto se combinó con el motor "EB" Embedded BASIC diseñado para el sistema de base de datos "Omega" abandonado de Microsoft. Ruby también proporcionó la capacidad de cargar bibliotecas de vínculos dinámicos que contenían controles adicionales (en aquel entonces llamados "gizmos"), que más tarde se convirtieron en la interfaz VBX . [24]
Microsoft desarrolló muchos derivados de VB (clásico), incluidos:
Las versiones anteriores a la 5 compilaban el código en código P , que se interpreta en tiempo de ejecución. Los beneficios del código P incluyen portabilidad y tamaños de archivo binarios más pequeños, pero generalmente ralentiza la ejecución, ya que un intérprete agrega una capa al entorno de ejecución. Las aplicaciones de VB requieren el entorno de ejecución de Microsoft VB MSVBVM##.DLL, donde ## es un número de versión, ya sea 50 o 60. MSVBVM60.dll viene de serie con Windows en todas las ediciones desde Windows 98 hasta Windows 11, aunque algunas ediciones de Windows 7 no lo incluyen. Sin embargo, para Windows 95, el proceso de instalación de la aplicación requiere la DLL que necesita el programa. VB 5 y 6 pueden compilar código en código nativo o P, pero el entorno de ejecución aún es necesario para las funciones integradas y la administración de formularios.
Las críticas a VB (antes de VB.NET) incluyen: [32]
Todas las versiones del IDE de Visual Basic, desde la 1.0 hasta la 6.0, ya no reciben soporte de Microsoft. Los entornos de ejecución asociados tampoco reciben soporte, excepto el entorno de ejecución principal de Visual Basic 6, que Microsoft admite oficialmente durante la vida útil de Windows 10 [35] y Windows 11. [ 36] Los componentes de terceros que se enviaron con Visual Studio 6.0 no están incluidos en esta declaración de soporte. Algunos componentes heredados de Visual Basic aún pueden funcionar en plataformas más nuevas, a pesar de que Microsoft y otros proveedores no los admiten. La documentación de Visual Basic 6.0, su interfaz de programación de aplicaciones y herramientas se cubre mejor en la última versión de MSDN antes de Visual Studio.NET 2002. Las versiones posteriores de MSDN se centraron en el desarrollo de .NET y se eliminaron partes importantes de la documentación de programación de Visual Basic 6.0 a medida que el lenguaje evolucionó y finalizó el soporte para el código más antiguo. Aunque el soporte del proveedor para Visual Basic 6 ha finalizado y el producto nunca ha sido compatible con las últimas versiones de Windows, partes clave del entorno aún funcionan en plataformas más nuevas. Es posible conseguir que un subconjunto del entorno de desarrollo funcione en versiones de 32 y 64 bits de Windows Vista, Windows 7, Windows 8, Windows 10 y Windows 11. [37] Debido a su persistente popularidad, [38] existen intentos de terceros para brindarle mayor soporte, como Rubberduck. [39]
El siguiente fragmento de código muestra un cuadro de mensaje que dice "¡Hola, mundo!" mientras se carga la ventana:
Private Sub Form_Load () ' Ejecuta un cuadro de mensaje simple que dice "¡Hola, mundo!" MsgBox "¡Hola, mundo!" End Sub
Este fragmento crea un contador que sube 1 valor cada segundo (es necesario agregar una etiqueta y un control de temporizador al formulario para que esto funcione) hasta que se cierra el formulario o se produce un desbordamiento de enteros :
Opción Explícita Dim Contar como entero Sub privado Form_Load () Contar = 0 Timer1 . Interval = 1000 ' unidades de milisegundos Fin Sub Sub privado Timer1_Timer () Contar = Contar + 1 Label1 . Caption = Contar Fin Sub
Puedes elegir un lenguaje en función de lo fácil que sea aprenderlo. Para principiantes, Visual Basic es una buena opción. [~snip] Una gran ventaja de Visual Basic es que es un lenguaje popular porque es fácil de aprender.
de aspectos positivos: Visual Basic es fácil de aprender y está ampliamente disponible.
{{cite web}}
: Mantenimiento de CS1: postscript ( enlace )... ganó el reconocimiento de la industria como el "Padre de Visual Basic". (Los abogados de Microsoft enviaron una vez a Cooper una orden de cese y desistimiento, exigiéndole que dejara de usar ese título. Pero después de que Cooper se quejara, Gates arregló las cosas e incluso lo elogió como "Pionero de Windows" en una conferencia de la industria.)