Todo comenzó antes de que C # existiera
En ~ 1999, teníamos Visual Studio 5/6. Si usted era un proveedor de software independiente o una empresa que utilizaba Windows y necesitaba una aplicación escrita que pudiera, por ejemplo, rastrear el tiempo empleado por los empleados en proyectos, tenía algunas opciones:
- Formularios en Visual Basic.
- MFC, ATL o Win32 en Visual C ++.
- Formularios en Access 97/2000.
- Sitio web de ASP.
- Applet de Java
En ese momento, estábamos justo antes de que estallara la burbuja Dot-Com, por lo que cualquiera que fuera bueno con (4) o (5) se fue a negociar opciones de compra de acciones en cualquier punto-com increíble que se sintieran atraídos.
(3) tenía problemas con el bloqueo y la escalabilidad general, pero vi muchas soluciones basadas en Access que se ejecutarían para ejecutar funciones de soporte según sea necesario.
Entonces eso nos deja con VB y VC ++:
El editor de formularios en VB era, en ese momento, excelente para la productividad. Puede arrastrar y soltar sus componentes, no solo botones, etiquetas y cuadros de texto, sino la caja de herramientas completa de 'controles OLE' de componentes reutilizables como Cuadrículas inteligentes, hojas de Excel o instancias de IE. El cableado se realizó detrás de escena: todo era como un objeto y simplemente hacía doble clic en las cosas para agregar controladores de eventos. Esto fue mucho más difícil en Visual C ++. Como miembro del equipo de soporte de desarrolladores de Visual Studio en ese momento, puedo recordar cómo las llamadas de soporte de Visual Basic se referían principalmente a qué componente era mejor usar o cómo optimizar su aplicación de ciertas maneras. Casi nunca fue "cómo hago una aplicación con las funciones de interfaz de usuario X, Y y Z".
Construir una interfaz de usuario rica en Visual C ++ fue un desafío diferente. Aunque había soporte de editor visual para diálogos y formularios SDI / MDI, era bastante limitado. El soporte para incrustar controles OLE (ActiveX) en MFC o Win32 fue un arte negro, aunque un poco más fácil en ATL. Conectar cosas simples como cambiar el tamaño de los eventos o el dibujo del propietario fue bastante doloroso, y mucho menos los puntos de conexión necesarios para los eventos personalizados en los componentes.
Sí, VC ++ tenía la velocidad de ejecución, la capacidad de depuración y las opciones flexibles de frameworks / bibliotecas / UI, pero el soporte IDE no podía cubrir todo ese terreno, por lo que abordó las operaciones más comunes con cosas como Wizards, jerarquías de clase MFC integrales y 90 días / 2-incidentes libres de líneas de soporte.
IIRC, el empaquetador de aplicaciones que se envió con VB podría empaquetar su aplicación, el tiempo de ejecución de VB y las últimas DLL de controles comunes y proporcionarle un instalador EXE independiente que podría poner en un CD y llegar a los clientes. Nada de esto '¿qué msvcrtXX.dll y mfcxx.dll tiene instalado?', Lo que afectó a los desarrolladores de MFC.
Por lo tanto, por razones de tiempo de comercialización y una interfaz de usuario rica, VB obtuvo muchos seguidores.
Cuando Visual J ++ y Visual Interdev llegaron a VS6, estaba claro que el IDE de Visual Basic había ganado alguna batalla sobre el Visual C ++, lo cual era justo en mi humilde opinión. No fue ninguna sorpresa que Visual Studio .NET tuviera un editor de formularios tipo VB para el nuevo lenguaje COOL C #.
El nuevo lenguaje similar a Java / C / C ++ junto con el diseñador de UI que disfrutan las personas de VB durante todo este tiempo proporcionó una nueva ruta de migración para las personas de C ++ que ahora habían terminado con MFC / ATL / Win32. Para las personas VB 3/4/5/6 a las que no les gustaba la falta de compatibilidad con el 100% hacia atrás en VB.net, esto ofrecía la oportunidad de aprender un nuevo idioma en un entorno familiar.
Las razones por las que VB era un producto tan completo probablemente tengan algo que ver con los orígenes de Microsoft, con Basic como su producto desarrollador insignia, pero no tengo ninguna cita en este momento.