Febrero de 2016

Volumen 31, número 2

No estoy listo para comenzar. VB6: despertar a un gigante dormido

Por David Platt | Febrero de 2016

David PlattCon esta edición comienza mi séptimo año tratando problemas en este espacio. Para celebrar la ocasión, voy a golpear mi avispero favorito: los desarrolladores que siguen encantados con Visual Basic 6 y los que detestan Visual Basic y a los desarrolladores que lo utilizan.

He escrito en dos ocasiones, (msdn.com/magazine/jj133828 y msdn.com/magazine/dn745870), sobre el lugar único que ocupa VB6 en el mundo del desarrollo de software actual, comparándolo con una cucaracha, un autobús y una pelota. Recibí más respuestas en esas columnas que en ninguna otra cosa que haya escrito jamás. Hoy, voy a echar aún más gasolina de la habitual en los fuegos de conflicto. Estoy a punto de detonar una explosión nuclear, cuya radiación mutará VB6 y lo hará inmortal. ¿No me cree? Continúe leyendo.

Estaba almorzando con un cliente hace unas semanas. Tenía una solución basada en Silverlight que muestra vídeo de cámaras de seguridad. Pero Microsoft ha anunciado que Silverlight está en desuso y ha animado a los desarrolladores a pasarse a HTML5. "Es un problema y una molestia", se quejaba mi cliente. "Me iba bien con lo que tenía. Ahora tengo que aprender otro lenguaje y migrar todo el código. Mi aplicación no es tan complicada, son solo unos flujos de vídeo y algunos botones. Ojalá hubiera alguna forma de hacer todo eso de forma sencilla".

Y entonces me di cuenta: esto es exactamente lo que hace VB6 con su destino actual de aplicaciones de Windows sin administrar. ¿Qué tal si desarrollamos una versión de VB6 que produzca HTML5? La salida se ejecutaría en cualquier explorador, sistema operativo y plataforma, móvil o de escritorio.

En mayo del año pasado escribí (msdn.com/magazine/dn973019) sobre el virus de la viruela y cómo conseguía saltar entre portadores (de humano a equipo) justo antes de que la última parte del virus muriera en su última víctima humana. Aquí está la oportunidad de que VB salte de su host (portador) de Windows sin administrar y se extienda e infecte el mundo de software entero, para hacer lo que Java prometió y nunca cumplió: escribir código una vez y ejecutarlo absolutamente en todas partes. Una aplicación verdaderamente universal. A partir del antiguo y humilde VB6. ¿Quién lo habría pensado? Como irá a cualquier lugar, llamaré al nuevo lenguaje VB*.

El modelo de programación de VB* se parecería conceptualmente al modelo de formularios Web Forms ASP.NET, en el que los controles representan su contenido con HTML. Pero esa representación requiere ASP.NET en el lado servidor y VB* necesita evitar la dependencia de cualquier tipo de servidor concreto. Por tanto, VB* se compilará como páginas independientes de elementos de HTML5 y código JavaScript, de la misma forma que VB6 se compila como un ensamblador de x86 con llamadas a funciones de Windows. Podrá incluir la página en cualquier servidor de HTML5 y acceder a ella desde cualquier cliente de HTML5.

VB* usará la organización y la sintaxis extremadamente sencillas de VB6. Se omitirá de forma intencional la funcionalidad sofisticada para conseguir una programación más sencilla en los casos más simples. Por ejemplo, probablemente no se crearán subprocesos en el lenguaje VB*. Si resulta que una aplicación de VB* necesita operaciones en segundo plano, algún as de la programación escribirá un control de operaciones en segundo plano que administre todos esos detalles desagradables, como sucedió en VB6.

Por lo tanto, VB* necesitará un diseño que admita dos niveles de desarrolladores: los supergenios que escriban los controles y los programadores de aplicaciones que los consuman. Ya lo hemos hecho anteriormente en dos ocasiones, con los controles VBX y los controles OCX, así que no hay duda de que podremos volverlo a hacer.

¿Cómo podríamos desarrollar, financiar, publicar y dar soporte a VB*? ¿Con código abierto? ¿Quizá algún proveedor de herramientas quiera ocuparse de ello? ¿Y un consorcio? Me encantaría ayudar, por un módico precio, por supuesto. (Estudiante: "Plattski, ¿es verdad que es un mercenario sin escrúpulos que solo está aquí por el dinero?". Yo: "¿Cuánto me vas a pagar si te respondo?"). Incluso he adquirido la dirección web vbstar.org para comenzar con el proyecto.

Ya puedo oír a los detractores de VB diciendo al unísono: "No es un lenguaje real. No son programadores reales. Nadie debería hacer caso a propuestas como esa. VB* nunca podrá hacer [esto], [eso] ni [aquello otro]".

Tal vez no. Pero, como escribí anteriormente, "[...] el desarrollo rápido (y, por ende, más barato) de aplicaciones limitadas (y, por ende, más baratas) por parte de personal menos especializado (y, por ende, más barato) es una solución importante para una gran variedad de problemas". Si se hace bien, VB* se convertirá en esa solución.

¡Larga vida a VB*!


David S. Plattenseña programación en .NET en Harvard University Extension School y en empresas de todo el mundo. Es el autor de 11 libros de programación, entre otros: “Why Software Sucks” (Addison-Wesley Professional, 2006) y “Introducing Microsoft .NET” (Microsoft Press, 2002). Microsoft lo nombró Leyenda del software en 2002. Se pregunta si debería pegar dos de los dedos de su hija para que aprenda a contar en octal. Puede ponerse en contacto con él en rollthunder.com.