Visual Basic (clásico) - Visual Basic (classic)

Visual Basic
Visual Basic 6.0 logo.png
Visual Basic 6.0 en Windows XP.png
IDE de Visual Basic 6.0 en Windows XP
Paradigma Basado en objetos y controlado por eventos
Desarrollador Microsoft
Apareció por primera vez Mayo de 1991 ; Hace 30 años ( 1991-05 )
Lanzamiento estable
6,0 / 1998 ; Hace 23 años ( 1998 )
Disciplina de mecanografía Estático , fuerte
SO Microsoft Windows y MS-DOS
Sitio web msdn .microsoft .com / en-us / library / windows / desktop / ms788229 .aspx
Implementaciones importantes
Microsoft Visual Studio
Influenciado por
BÁSICO
Influenciado
Visual Basic .NET , Windows Forms , Gambas , Xojo , Basic4ppc , Basic4android y NS Basic

El Visual Basic original (también conocido como Classic Visual Basic ) es un lenguaje de programación basado en eventos de tercera generación de Microsoft conocido por su modelo de programación Component Object Model (COM) lanzado por primera vez en 1991 y declarado heredado durante 2008. Microsoft pretendía Visual Basic para que sea relativamente fácil de aprender y usar. Visual Basic se deriva de BASIC y permite el desarrollo rápido de aplicaciones (RAD) de la interfaz gráfica de usuario (GUI) de aplicaciones, acceso a bases de datos utilizando Data Access Objects , Objetos de datos remotos , o de objetos de datos ActiveX , y la creación de ActiveX controles y objetos.

Un programador puede crear una aplicación utilizando los componentes proporcionados por el propio programa de Visual Basic. Con el tiempo, la comunidad de programadores desarrolló componentes de terceros. Los programas escritos en Visual Basic también pueden hacer uso de la API de Windows , que requiere declaraciones de funciones externas.

La versión final fue la versión 6 en 1998. El 8 de abril de 2008, Microsoft dejó de admitir Visual Basic 6.0 IDE . El equipo de Microsoft Visual Basic aún mantiene la compatibilidad con las aplicaciones de Visual Basic 6.0 a través de su programa "It Just Works" en los sistemas operativos Windows compatibles.

En 2014, algunos desarrolladores de software aún preferían Visual Basic 6.0 sobre su sucesor, Visual Basic .NET . Visual Basic 6.0 fue seleccionado como el lenguaje de programación más temido por los encuestados de la encuesta anual de desarrolladores de Stack Overflow en 2016, 2017 y 2018.

Un dialecto de Visual Basic, Visual Basic para Aplicaciones (VBA), se utiliza como lenguaje de macro o scripting en varias aplicaciones de Microsoft e ISV , incluido Microsoft Office .

Características del idioma

Al igual que el lenguaje de programación BASIC , Visual Basic fue diseñado para tener una curva de aprendizaje fácil . Los programadores pueden crear aplicaciones GUI simples y complejas . La programación en VB es una combinación de organizar visualmente componentes o controles en un formulario , especificar atributos y acciones para esos componentes y escribir líneas adicionales de código para obtener más funcionalidad. Dado que VB define atributos y acciones predeterminados para los componentes, un programador puede desarrollar un programa simple sin escribir mucho código. Los programas creados con versiones anteriores sufrieron problemas de rendimiento, pero las computadoras más rápidas y la compilación de código nativo han hecho que esto sea un problema menor. Aunque los programas VB se pueden compilar en ejecutables de código nativo a partir de la versión 5 , aún requieren la presencia de alrededor de 1 MB de bibliotecas en tiempo de ejecución. 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 aún deben instalarse. Las versiones anteriores de Windows (95/98 / NT) requieren que las bibliotecas en tiempo de ejecución se distribuyan con el ejecutable.

Un formulario vacío en Visual Basic 6

Los formularios se crean mediante 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. 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 en función de las acciones del usuario o cambios en el entorno, proporcionando 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 reposicionar un control de modo que permanezca centrado en el formulario, se expanda para completar el formulario, etc. Al insertar código en el controlador de eventos para presionar una tecla en un cuadro de texto, el programa puede traducir automáticamente el caso del texto que se ingresa, o incluso evitar que se inserten ciertos caracteres.

Visual Basic puede crear ejecutables (archivos EXE), controles ActiveX o archivos DLL, pero se utiliza principalmente para desarrollar aplicaciones de Windows y para interactuar con sistemas de bases de datos. Se pueden usar cuadros de diálogo con menos funcionalidad para proporcionar capacidades emergentes. Los controles proporcionan la funcionalidad básica de la aplicación, mientras que los programadores pueden insertar lógica adicional dentro de los controladores de eventos apropiados. Por ejemplo, un cuadro de combinación desplegable muestra automáticamente una lista. Cuando el usuario selecciona un elemento, se llama a un controlador de eventos que ejecuta el código que el programador creó para realizar la acción para ese elemento de la lista. Como alternativa, un componente de Visual Basic puede no tener interfaz de usuario y, en su lugar, proporcionar objetos ActiveX a otros programas a través del Modelo de objetos componentes (COM). Esto permite el procesamiento del lado del servidor o un módulo adicional.

El tiempo de ejecución recupera la memoria no utilizada mediante el recuento de referencias , que depende de que las variables salgan del alcance o se establezcan en Nada , evitando el problema de las pérdidas de memoria que son posibles en otros lenguajes. Existe una gran biblioteca de objetos de utilidad y el lenguaje proporciona soporte básico para la programación orientada a objetos . A diferencia de muchos otros lenguajes de programación, Visual Basic generalmente no distingue entre mayúsculas y minúsculas, aunque transforma las palabras clave en una configuración estándar de mayúsculas y minúsculas y obliga a que las mayúsculas y minúsculas de los nombres de las variables se ajusten al caso de la entrada en la tabla de símbolos. Las comparaciones de cadenas distinguen entre mayúsculas y minúsculas de forma predeterminada. El compilador de Visual Basic se comparte con otros lenguajes de Visual Studio (C, C ++). Sin embargo, de forma predeterminada, las restricciones del IDE no permiten la creación de algunos destinos (DLL del modelo de Windows) y modelos de subprocesamiento, pero a lo largo de los años, los desarrolladores han pasado por alto estas restricciones.

Caracteristicas

Las ventanas de código en Visual Basic, que muestran una función que usa las instrucciones If, Then, Else y Dim

Visual Basic se basa en las características de BASIC.

  • En lugar de identificarse solo por el número de línea, el código puede agruparse en subrutinas o métodos con nombre: Sub ... End Sub . Visual Basic admite números de línea agregados por el usuario hasta la versión 6 o posterior.
  • Las sentencias de código no tienen ningún carácter de terminación que no sea un final de línea (retorno de carro / salto de línea). Las versiones desde al menos VB 3.0 permitían que las declaraciones puedan ser implícitamente multilínea con concatenación de cadenas o usando explícitamente el carácter de subrayado (_) al final de las líneas.
  • Los comentarios de código se realizan con un solo carácter de apóstrofe ('), como: ' This is a comment.
  • Los bloques de instrucciones en bucle comienzan y terminan con palabras clave: Do ... Loop, While ... End While, For ... Next .
  • No es posible la asignación de varias variables. A = B = C no implica que los valores de A, B y C sean iguales. El resultado booleano de "Is B = C?" se almacena en A. El resultado almacenado en A sería, por tanto, falso o verdadero.
  • La constante booleanaTrue tiene un valor numérico -1. Esto se debe a que el tipo de datos booleano se almacena como un entero con signo de complemento a dos . En esta construcción, -1 se evalúa como todos 1 en binario (el valor booleano True) y 0 como todos 0 (el valor booleano False). Esto es evidente cuando se realiza una Notoperación (bit a bit) en el valor de complemento a dos 0, que devuelve el valor de complemento a dos −1, en otras palabras True = Not False. Esta funcionalidad inherente convierte en especialmente útil cuando se realizan operaciones lógicas en los bits individuales de un número entero tal como And, Or, Xory Not. Esta definición de Truetambié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 la CPU en ese momento.
  • Los operadores lógicos y bit a bit están unificados. Esto es diferente a algunos lenguajes derivados de C (como Perl ), que tienen operadores lógicos y bit a bit separados. De nuevo, esta es una característica tradicional de BASIC.
  • Base de matriz variable . Las matrices se declaran especificando los límites superior e inferior de una manera similar a Pascal y Fortran . También es posible utilizar la instrucción Option Base para establecer el límite inferior predeterminado. El uso de la instrucción Option Base puede generar confusión al leer el código de Visual Basic y es mejor evitarlo especificando siempre explícitamente el límite inferior de la matriz. Este límite inferior no se limita a 0 o 1, porque también se puede establecer mediante declaración. De esta forma, tanto el límite inferior como el superior son programables. En lenguajes con más subíndices limitados, el límite inferior de la matriz no es variable. Este rasgo poco común existe en Visual Basic .NET pero no en VBScript .
OPTION BASE fue introducido por ANSI, con el estándar para ANSI Mínimo BASIC a fines de la década de 1970.
  • Integración relativamente fuerte con el sistema operativo Windows y el Modelo de objetos componentes . Los tipos nativos para cadenas y matrices son los tipos COM dedicados, BSTR y SAFEARRAY.
  • Redondeo bancario como comportamiento predeterminado al convertir números reales a enteros con la Roundfunción. ? Round(2.5, 0)da 2, ? Round(3.5, 0)da 4.
  • Los enteros se promueven automáticamente a reales en expresiones que involucran al operador de división normal ( /) de modo que la división de un entero por otro produce el resultado intuitivamente correcto. VB proporciona un operador de división de enteros específico ( \) que se trunca.
  • Por defecto, si una variable no ha sido declarada o si no se especifica ningún carácter de declaración de tipo, la variable es de tipo Variant. Sin embargo, esto puede cambiar con las declaraciones DefType tales como DefInt, DefBool, DefVar, DefObj, DefStr. Hay 12 Deftypedeclaraciones en total ofrecidas por Visual Basic 6.0. El tipo predeterminado se puede anular para una declaración específica usando 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 usando la frase clave As (type). VB también se puede configurar en un modo en el que solo las variables declaradas explícitamente se pueden usar con el comando Option Explicit.

Historia

Alan Cooper creó el diseño de arrastrar y soltar para la interfaz de usuario de Visual Basic.

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 llamada Tripod . Microsoft contrató a Cooper y sus asociados para desarrollar Tripod en un sistema de formulario programable para Windows 3.0 , bajo el nombre en código Ruby (sin relación con el lenguaje de programación Ruby posterior ). Tripod no incluía ningún lenguaje de programación. 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 contienen controles adicionales (entonces llamados "gizmos"), que luego se convirtió en la interfaz VBX .

Cronología

Visual Basic para MS-DOS
Icono de VB DOS

Decenio de 1990

  • El proyecto 'basic Thunder' se inició en 1990. Thunder persistió hasta la última versión de Visual Basic en nombre de la función interna principal, "ThunderRTMain".
  • Visual Basic 1.0 (mayo de 1991) se lanzó para Windows en la feria comercial Comdex / Windows World en Atlanta, Georgia.
  • Visual Basic 1.0 para DOS se lanzó en septiembre de 1992. El lenguaje en sí no era del todo compatible con Visual Basic para Windows, ya que era la próxima versión de los compiladores BASIC basados ​​en DOS de Microsoft, QuickBASIC y BASIC Professional Development System. La interfaz utilizó una interfaz de usuario basada en texto , utilizando caracteres ASCII extendidos para simular la apariencia de una GUI .
  • Visual Basic 2.0 se lanzó en noviembre de 1992. El entorno de programación era más fácil de usar y se mejoró su velocidad. En particular, las formas se convirtieron en objetos instanciables, sentando así los conceptos fundamentales de los módulos de clase que se ofrecieron más tarde en VB4.
  • Visual Basic 3.0 se lanzó en el verano de 1993 y llegó en versiones estándar y profesional. VB3 incluía la versión 1.1 del motor de base de datos Microsoft Jet que podía leer y escribir bases de datos Jet (o Access) 1.x.
  • Visual Basic 4.0 (agosto de 1995) fue la primera versión que pudo crear programas de Windows de 32 bits y de 16 bits . Tiene tres ediciones; Estándar, Profesional y Empresarial. También introdujo la capacidad de escribir clases sin GUI en Visual Basic. Con VB4, el lenguaje se separó de la biblioteca de la GUI y se puso a disposición como VBA, en cuyo formato se incorporó a la suite Office 95. Para facilitar la migración de macros y scripts de Office, se incorporaron al lenguaje funciones de WordBasic, Excel Basic y Access Basic. Las incompatibilidades entre las diferentes versiones de VB4 provocaron problemas de instalación y funcionamiento. Mientras que las versiones anteriores de Visual Basic habían usado controles VBX, Visual Basic ahora usaba controles OLE (con nombres de archivos terminados en .OCX) en su lugar. Posteriormente, estos se llamarían controles ActiveX.
  • Con la versión 5.0 (febrero de 1997), Microsoft lanzó Visual Basic exclusivamente para versiones de 32 bits de Windows. Los programadores que preferían escribir programas de 16 bits pudieron importar programas escritos en Visual Basic 4.0 a Visual Basic 5.0, y los programas de Visual Basic 5.0 se pueden convertir fácilmente a Visual Basic 4.0. Visual Basic 5.0 también introdujo la capacidad de crear controles de usuario personalizados, así como la capacidad de compilar en código ejecutable nativo de Windows, acelerando la ejecución de código de cálculo intensivo. También se lanzó una edición de creación de controles descargable y gratuita para la creación de controles ActiveX . También se usó como una forma introductoria de Visual Basic: un proyecto .exe normal podría crearse y ejecutarse en el IDE, pero no compilarse.
  • Visual Basic 6.0 (mediados de 1998) mejoró en varias áreas, incluida la capacidad de crear aplicaciones basadas en web.

2000

  • El soporte extendido de Visual Basic 6.0 finalizó en marzo de 2008; sin embargo, los componentes principales del entorno de desarrollo de Visual Basic 6 se ejecutan en todas las versiones de 32 bits de Windows hasta Windows 10 inclusive.
  • El soporte general para Microsoft Visual Basic 6.0 finalizó el 31 de marzo de 2005. El soporte extendido finalizó en marzo de 2008.

Idiomas derivados

Microsoft ha desarrollado derivados de Visual Basic para su uso en secuencias de comandos . Visual Basic en sí se deriva en gran medida de BASIC y, posteriormente, ha sido reemplazado por una versión de la plataforma .NET .

Algunos de los lenguajes derivados son:

  • Visual Basic para Aplicaciones (VBA) se incluye en muchas aplicaciones de Microsoft ( Microsoft Office ) y también en muchos productos de terceros como SolidWorks , AutoCAD , WordPerfect Office 2002 , ArcGIS , Sage 300 ERP y Business Objects Desktop Intelligence. Hay pequeñas inconsistencias en la forma en que se implementa VBA en diferentes aplicaciones, pero es en gran parte el mismo lenguaje que Visual Basic 6.0 y usa la misma biblioteca en tiempo de ejecución. El desarrollo de Visual Basic terminó con 6.0, pero en 2010 Microsoft introdujo VBA 7 para proporcionar funciones extendidas y agregar soporte de 64 bits.
  • VBScript es el idioma predeterminado para Active Server Pages . Se puede utilizar en secuencias de comandos de Windows y secuencias de comandos de páginas web del lado del cliente. Se parece a VB en sintaxis , pero es un lenguaje separado, ejecutado por vbscript.dll en lugar del tiempo de ejecución de VB. ASP y VBScript no deben confundirse con ASP.NET , que utiliza .NET Framework para páginas web compiladas.
  • Visual Basic .NET es el sucesor designado por Microsoft de Visual Basic 6.0 y es parte de la plataforma .NET de Microsoft . Visual Basic .NET se compila y se ejecuta utilizando .NET Framework. No es compatible con versiones anteriores de Visual Basic 6.0. Existe una herramienta de conversión automática, pero la conversión totalmente automatizada para la mayoría de los proyectos es imposible.
  • OpenOffice Basic es un intérprete compatible con Visual Basic que se originó en la suite ofimática de StarOffice .
  • Gambas es un lenguaje de programación de software libre inspirado en Visual Basic para el sistema operativo Linux. No es un clon de Visual Basic, pero tiene la capacidad de convertir programas de Visual Basic a Gambas.
  • WinWrap Basic es una variante de VBA de terceros que se utiliza con varios software y está disponible para que los programadores la utilicen para crear una instalación de macros en sus programas.
  • LotusScript es una variante de VBA disponible en Lotus SmartSuite y Lotus Notes .
  • Las versiones posteriores de Corel WordPerfect Office implementan el acceso a VBA como uno de los lenguajes de macro / scripting, siendo los otros principales CorelScript y PerfectScript .
  • Las versiones anteriores de Microsoft Word utilizan una variante de Visual Basic llamada WordBasic .

Rendimiento y otros problemas

Las versiones anteriores de Visual Basic (anteriores a la versión 5) compilaban el código solo en P-Code . El código P es interpretado por el lenguaje en tiempo de ejecución. Los beneficios de P-Code incluyen la portabilidad y tamaños de archivo binarios más pequeños, pero generalmente ralentiza la ejecución, ya que tener un tiempo de ejecución agrega una capa adicional de interpretación. Las aplicaciones de Visual Basic requieren el tiempo de ejecución de Microsoft Visual Basic MSVBVMxx.DLL, donde xx es el número de versión relevante, ya sea 50 o 60. MSVBVM60.dll viene de serie con Windows en todas las ediciones de Windows 98 a Windows 10 (algunas ediciones de Windows 7 no lo hacen). incluirlo). Sin embargo, una máquina con Windows 95 requeriría la inclusión con el instalador de cualquier DLL que el programa necesite. Visual Basic 5 y 6 pueden compilar código en código nativo o P-Code, pero en cualquier caso, el tiempo de ejecución sigue siendo necesario para las funciones integradas y la gestión de formularios.

Las críticas dirigidas a las ediciones de Visual Basic anteriores a VB.NET incluyen:

Desarrollo y soporte heredados

Todas las versiones del entorno de desarrollo de Visual Basic desde la 1.0 a la 6.0 fueron retiradas por Microsoft en 2008 y, por lo tanto, ya no son compatibles. Los entornos de tiempo de ejecución asociados tampoco son compatibles, excepto el entorno de tiempo de ejecución central de Visual Basic 6, que Microsoft admite oficialmente durante la vida útil de Windows 8 y Windows 10 . Los componentes de terceros que se enviaron con Visual Studio 6.0 no se incluyen en esta declaración de soporte. Es posible que algunos componentes heredados de Visual Basic sigan funcionando en plataformas más nuevas, a pesar de que Microsoft y otros proveedores no los admiten. La documentación para Visual Basic 6.0, su interfaz de programación de aplicaciones y sus herramientas se tratan 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 como El lenguaje evolucionó y el soporte para el código anterior terminó. Aunque el soporte de los proveedores 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 hacer que un subconjunto del entorno de desarrollo funcione en versiones de 32 y 64 bits de Windows Vista, Windows 7, Windows 8 y Windows 10.

Código de ejemplo

El siguiente fragmento de código muestra un cuadro de mensaje que dice "¡Hola, mundo!" mientras se carga la ventana:

Private Sub Form_Load()
    ' Execute a simple message box that says "Hello, World!"
    MsgBox "Hello, World!"
End Sub

Este fragmento crea un contador que sube 1 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 :

Option Explicit
Dim Count As Integer
Private Sub Form_Load()
    Count = 0
    Timer1.Interval = 1000 ' units of milliseconds
End Sub
Private Sub Timer1_Timer()
    Count = Count + 1
    Label1.Caption = Count
End Sub

Ver también

Referencias

enlaces externos