Y al sexto año,
Microsoft,
creó VB5...
Al fin los programadores de BASIC tendremos características de las que siempre han "fardado" los programadores de C (y los de Delphi, incluso los de Turbo Pascal).
¡Ya era hora!
Por fin la "pandilla" de Bill Gates se ha decidido a potenciar el lenguaje más difundido y a la vez defenestrado de todos.
Me imagino a los "fieles" del C echados en un sillón, riéndose y pensando: "ilusos, si aún ni con las nuevas características nos llegan a la suela del zapato".
Pero para los que sólo "calzamos" Visual Basic, es cómo una bendición.
No voy a entrar en más detalles sobre los "detractores" del Basic. Aunque una cosa si quiero decir, por aquello de que tenía ganas de soltarlo desde hace tiempo; siempre que en las revistas, y/o los libros, se han referido al Basic, lo han hecho hablando del Basic del tiempo del BASICA/GWBASIC, incluso cuando QuickBasic era "muy" potente, (versión 4.0 allá por el 88), lo seguían haciendo, cosa que me "crispaba", pero... uno se aguantaba, porque no hay que ser como ellos...
Ahora se darán cuenta que, aunque no lleguemos a la suela de sus zapatos, puede que más de uno cambie y use "zapatillas", aunque sea de vez en cuando.Veamos que es lo que dice Microsoft sobre la nueva versión de Visual Basic (la 5.0 por si no estás al corriente). Aunque debo aclarar que no he traducido todo el documento, ni he seguido todo al pie de la letra, porque entonces te hubieras encontrado con "mucha" propaganda, no encubierta por cierto, de otros productos de Microsoft. Además de que muchas de las "nuevas" características del entorno integrado, ya estaban disponibles en las versiones del Basic de MS-DOS, como pueden ser los bookmarks, etc. y que incompresiblemente, al menos para mi, no han formado parte del entorno visual en Windows.
Aquí viene lo que nos dicen del nuevo Visual Basic, los comentarios que están en azul, son chorradillas mías con respecto a lo que se dice en el documento. En cuanto a los Bla, bla, bla... que veas, pues eso, simplemente la propaganda, el relleno y otras cosas, que desde mi punto de vista, no son importantes.
Nuevas caraterísticas de la versión 5.0 de Visual Basic
Bla, bla, bla...
Las características claves de VB5 incluyen:
- Mejoras del entorno de desarrollo.
- Compilador de código nativo
- Mejoras en el lenguaje
- Características de Internet
- Mejoras en la extensibilidad
Mejoras del IDE (Integrated Development Environment, Entorno Integrado de Desarrollo)
Múltiples proyectos
Visual Basic 5.0 permite trabajar con varios proyectos a la vez. Sobre todo pensando que podemos crear controles ActiveX, esta característica es muy útil, porque nos permite depurar los controles junto con el programa que lo utilice.
Ya no es necesario cargar varias copias de VB para probar los componentes creados.
El explorador de proyectos facilita la tarea de trabajar con múltiples proyectos, porque muestra los componentes, en forma de árbol jeráquico, de todos los proyectos cargados. De esta forma cada proyecto se muestra como una carpeta en esa lista, con los forms, módulos, clases, etc. Pudiéndose expandir o cerrar para facilitar el manejo de los distintos proyectos.Mejora en la ventana de propiedades
La ventana de propiedades tiene dos solapas: modo Alfabético, que es el mismo que en las versiones anteriores y un nuevo modo por Categorías. En el primero, muestra todas las propiedades en orden alfabético. En el segundo, agrupa las propiedades por tipo-por ejemplo, todas las propiedades relacionadas con el color, fuentes, posición... Pudiéndose expandir o cerrar cada una de las categorías. Los desarrolladores también pueden especificar una categoría a mostrar por alguna de las propiedades "personales" de cualquier control ActiveX creado con VB5. Puesto que los componentes ActiveX estás basados en COM (Component Object Model), tienen tipos para informar sobre sus interfaces. Visual Basic hace uso extensivo de esta información, para determinar de forma sencilla todos los objetos expuestos, propiedades, métodos, incluso la versión de los componentes ActiveX.Editor de código inteligente
Con las versiones anteriores, los desarrolladores necesitaban tener un profundo conocimiento tanto de la sintaxis del lenguaje como de COM. IntelliSense minimiza esta necesidad, ofreciendo toda la información necesaria cuando se necesita. IntelliSense funciona tanto con Visual Basic, controles de terceros y componentes ActiveX de creación propia.
Las claves que proporciona son:
- Información rápida de la sintaxis de las instrucciones, procedimientos, métodos y propiedades
- Completa la palabra que se está escribiendo, si se escriben las suficientes letras como para hacerla distintiva.
- Lista de constantes que son válidas para una propiedad.
- Lista de propiedades/métodos disponibles para un objeto.
Ventanas acoplables e incluibles (Dockable, linkable)
Estas nuevas características permiten manejar y organizar de forma sencilla las ventanas.
Con la característica de "acoplamiento", cuando se situa una ventana hija-como una caja de herramientas, cerca de los bordes exteriores de la ventana padre de VB, la ventana hija se pega a la progenitora.
Con la característica de "inclusión", cuando dos ventanas hijas están situadas muy cerca, se unen y se convierten en una sola.Nuevas características de depuración
Bla, bla, bla...
Las claves de las mejoras en la depuración son:
- Depuración de varios proyectos a la vez. Bla, bla, bla...
- Indicadores al margen. Con esta característica, muestra entradas para puntos de interrupción, bookmarks, línea actual de ejecución y marcas de CallStack.
Ahora se permite tener bookmarks, para acceder más fácilmente a cualquier parte del código, marcar una línea para la depuración con sólo hacer click y otras características mejoradas gracias al "arrastrar y soltar" (drag and drop)- DataTips. Estando en modo de depuración y se posiciona el cursor en una variable, muestra el valor de la misma en una ventana emergente (al estilo de los ToolTips)
- Ventanas locales. Muestra de forma automática todas las variables declaradas y sus valores del procedimiento actual. Con la ventaja de poder cambiar el valor de cualquiera de las variables mostradas.
- Watch window. En lugar de escribir la variable a inspeccionar, ahora se puede arrastrar hasta esa ventana. También se pueden modificar los valores de las variables mostradas en esa ventana.
- Mejoras en la ventana Inmediate (¿es que antes estaba?). Ahora se puede ejecutar código en esta ventana tanto en modo diseño como en el de depuración.
- Mejoras en el Object Browser (Inspector de Objetos). Ahora permite la búsqueda de cualquier clase o miembro de una librería (biblioteca?) o en todas las librerías referenciadas y acceder al diálogo de Referencias o ir directamente al módulo o procedimiento de cualquier proyecto. El nuevo "panel" de Descripción nos informa sobre el uso del objeto.
Editor mejorado
Bla, bla, bla... con características drag and drop...Formularios
Bla, bla, bla...
Mejoras con capacidades avanzadas de alineación. Las nuevas capacidades son:
- Alineación, para mover los objetos seleccionados a cualquier parte: izquierda, derecha, etc.
- Hacer del mismo tamaño: permite redimensionar los objetos seleccionados al mismo ancho, alto o ambos.
- Ajustar a la cuadrícula (grid) ...formate un objeto para que se ajuste a la cuadrícula del form.
- Espaciado Horizontal y Vertical: cambia el espaciado entre los objetos. Incluye las opciones de hacer igual, incrementar, reducir o quitar el espaciado.
- Centrar en el formulario, centra los objetos en las coordenadas centrales del formulario.
- Ordenación, cambia la secuencia de los objetos seleccionados usando "Traer al frente" o "Enviar al fondo"
Una nueva ventana de composición de formularios (form-layout), simplifica el diseño de los mismos. El desarrollador puede arrastrar y soltar el formulario en la ventana, o usar la nueva propiedad StartPosition para asignar la posición de arranque.
Compilador de código nativo
Bla, bla, bla...
Visual Basic 5.0 produce aplicaciones de código mativo que acelera, con respecto a versiones anteriores de VB, hasta 20 veces las aplicaciones. En algunas pruebas de uso intensivo de la CPU, es hasta 60 veces más rápido.Compilador optimizado
Usando tecnologías de optimización de código de Visual C++, el compilador nativo de VB ofrece capacidades no vistas antes en la primera generación de un compilador nativo. Este compilador no se debe confundir con los intentos de algunas empresas de desarrollo de herramientas, de convertir la sintaxis a la de un compilador nativo y entonces compilar el código. Esta aproximación tiene como resultado un código poco eficiente que se ejecuta muy lentamente.
El compilador de Visual Basic es también flexible, así el desarrollador puede elegir entre optimizar el código para el tamaño o la velocidad. (También puede no optimizar el código o crear ejecutables en el clásico P-Code)Multi-threading made easy (¿necesita traducción?)
Multi-threading es una de esas tecnologías de la que la mayoría de los programadores simplemente quieren beneficiarse, sin importarles cómo. Los Componentes ActiveX necesitan ser Multi-threading para trabajar de forma sensible. En el pasado, esto significaba poderosos servidores que usaban todo un proceso para cada objeto. Usando la opción de Ejecución Desatendida (Unattended Execution), se pueden crear servidores con objetos en threads separados para una máxima respuesta. Además cómo Visual Basic los maneja, no tenemos que ocuparnos de muchso de los aspectos, como bloqueos perdidos (dead locks), contención y control de eventos, (¿scheduling?). Los servidores Multi-thread tienen una características importantes:
- Los Servidores registrados (marcados) para ejecución desatendida, mejoran el uso del sistema, asignando automáticamente las instancias de los objetos a lo largo de múltiples threads para un mejor rendimiento y "escalabilidad". Porque soportan el modelo departamental de los thread de COM, estos componentes necesitan menos recursos cuando son invocados concurrentemente desde diferentes threads.
- Los Servidores registrados para ejecución desatendida son threads seguros, significando que objetos en un "departamento" (thread), (Esa aclaración no la he puesto yo), no tienen conflictos con otros objetos en otros departamentos, y así sus métodos están protegidos contra la re-entrada (re-entracing)
- Con los Servidores registrados para ejecución desatendida, un desarrollador puede limitar, para un mejor control sobre los recursos del sistema, el número de threads que un Componente ActiveX puede adquirir.
- Los Servidores registrados para ejecución desatendida suprimen cualquier forma de interacción con el usuario, y registran los errores en el archivo de resgistros del sistema (system log file)
- Si bien los Servidores registrados para ejecución desatendida han sido diseñados para mejorar la "escalabilidad" de componentes distribuidos, pueden usarse para cualquier componente "out-of-process"
Mejoras en el lenguaje
Muchas de las mejoras del lenguaje en Visual Basic 5.0 están relacionadas con la programación orientada a objetos (OOP: Object Oriented Programming). El concepto principal de la OOP es la abstracción. Los modelos anteriores de programación forzaban al programador a escribir código haciendo referencia a estructuras de datos y variables. (Data Structure, en una traducción que he leído hace poco, decían "estructura de fecha"...) Con este enfoque, cambios en la estructura interna de los datos de un programa, podían forzar a cambiar muchas líneas de código. Por otra parte, con la programación orientada a objetos (OOP), un desarrollador, en lo que respecta a un programa, crea representaciones abstractas o clases. (¿Te has fijado?, cuando habla de de formas anteriores, dice programador, cuando se refiere a las "nuevas" formas, dice: desarrollador...)
Solamente el código dentro de la clase necesita saber sobre la estructura interna de los datos. Las otras partes del programa tratan con la definición abstracta de la clase, que es menos probable que se cambie.
(Perdona que interrumpa de nuevo, pero esto es una "chorrada". Si la clase está mal diseñada, también será necesario cambiar el código del programa, por otro lado, si una estructura de datos está bien "pensada", no necesariamente obligará a cambiar "muchas" líneas de código).
Un beneficio primordial de la programación orientada a objetos es que el mantenimiento del código es más fácil porque los cambios afectan sólo a las clases específicas en lugar de al programa completo.
Otros elementos esenciales de una programación orientada a objetos son:
- Encapsulación-Una forma de asegurar que sólo ciertas partes bien definidas de una clase son accesibles por código fuera de la clase.
- Polimorfismo-La habilidad de implementar la misma abstracción a diferentes objetos. Por ejemplo, dos objetos diferentes pueden proveer datos de clientes de la misma manera.
- (¿Herencia? Ya verás cómo intentan "torear" esta falta "primordial" en la OOP)
Reusabilidad de código
Reusabilidad de código es la habilidad de pasar características de un componente a otro, normalmente llevados a cabo por alguna forma de herencia (¿Que te dije?), contención y delegación. Visual Basic 5.0 soporta abstracción, encapsulación, polimorfismo y reusabilidad de código con nuevas características del lenguaje como:
- Controles ActiveX. Los controles han sido siempre uan forma de reutilizar el código en VB, pero siempre era código de otro. Ahora los controles pueden crearse en Visual Basic. Los desarrolladores de controles, pueden usar los ya existentes, como parte de los nuevos, a través de la "contención" y delegación.
- La instrucción Implements. Permite el polimorfismo al dejar que múltiples clases respondan al mismo interface. Por ejemplo, un programa que reconozca el interface ICustomerData puede comunicarse con objetos de cualquier clase que implemente ICustomerData. Las clases creadas con la versión 5 de Visual Basic pueden implementar cualquier número de interfaces. Esta potente característica, también incluida en COM y el lenguaje Java, permite a los grandes sistemas desarrollarse con el tiempo en lugar de necesitar que se rediseñen.
- Herencia y delegación del Interface. Cuando los desarrolladores usan la instrucción Implements para heredar un interface, también pueden usar el código del interface delegando en la clase que lo provee. Las propiedades y métodos, se pueden obviar completamente, o con código adicional puede ser ejecutado antes o después de la delegación.
- Mejora en los procedimientos de propiedades (Property procedure). Los procedimientos de propiedades son herramientas poderosas para la encapsulación, permitiendo a los objetos a validar sus propios datos cuando se asignan los valores a las propiedades. Ahora pueden usar todas las características de los Subs y Funciones, incluyendo los nuevos argumentos opcionales tipificados.
- Argumentos opcionales tipificados (Typed optional arguments) Tanto las declaraciones públicas como privadas de los procedimientos pueden tener argumentos opcionales de tipos específicos de datos (antes todos eran Variant), como enteros, cadenas, etc., y valores por defecto que se pueden usar si se omite el argumento. Esto elimina la necesidad de escribir código para chequear el tipo de dato o asignar los valores por defecto.
- Variables enumeradas. (o enumeración de variables?) El desarrollo de aplicaciones que usen procedimientos propios y objetos son más fáciles con las variables enumeradas, las cuales exponen una serie de constantes. La característica IntelliSense de Visual Basic puede usar este nuevo tipo, Enums, para mostrar una lista de constantes válidas para un argumento en particular o para una variable.
- Objetos GlobalMultiUse. La reusabilidad del código puede ser más fácil que la reusabilidad de objetos. Ahora, procedimientos útiles de proposito general se pueden poner en una clase GlobalMultiUse y compilarla en una DLL ActiveX. Los desarrolladores y usuarios pueden usar los procedimientos de una clase GlobalMultiUse sin declarar una instancia de la clase, exactamente como si ese procedimiento fuese parte del lenguaje Visual Basic. Enumeraciones públicas en las clases GlobalMultiUse pueden proporcionar constantes globales para esos procedimientos.
Además de características de reutilización de código, Visual Basic 5.0 incluye mejoras del lenguaje en otras de la programación.
Eventos
Cualquier clase creada con VB5 puede generar sus propios eventos. Los eventos son de vital importancia cuando se desarrollan controles ActiveX.Operador AddressOf
Visual Basic provee ahora una forma de pasar la dirección de un procedimiento "call-back" al API de Windows, permitiendo el uso de temporizadores del sistema, APIs que enumeran objetos del sistema y sub-clasificación de ventanas (window sub-classing).El método Friend
Un componente creado en Visual Basic, puede usar las propiedades y métodos Friend para comunicarse de forma privada entre los objetos que provee el componente, sin exponer esta comunicación al programa cliente que usa el componente.
¡ UF ! Once folios manuscritos en más de cuatro horas, además de otras tres tecleando e intentando entender lo que había escrito, es el balance de este rollo propagandístico hacia mis "amigos" de Microsoft.
Y porque no he puesto todo el contenido del documento original.
En el mismo hace referencia a características de Internet, como "Active Document", etc.
Con respecto a la extensibilidad, explica varios "wizards" y un constructor de clases, pero como está bien ilustrado, no creo que tengas problemas para entenderlo. aunque no sepas inglés.
Se ha mejorado el acceso a lass bases de datos, según dicen, VB5 es un 20% más rápido que VB4. Aunque no abunda demasiado en el tema.Bueno, espero que puedas hacerte una "pequeña" idea de las mejoras, muchas de ellas, la has podido probar, en la versión beta del Visual Basic Control Creation Edition, que ha estado rodando por ahí. Ami particularmente lo que más me gustó, es la posibilidad de poder "customizar" el área de trabajo: cuando defino la posición y tamaño de las ventanas de código, "recuerda" para las siguientes veces dichas posiciones y tamaños, para que veas con que poco me conformo.
Eso es todo por hoy amigos.
Nerja a 13 de Febrero del año de nuestro señor de 1997