Tutto è iniziato prima dell'esistenza di C #
Nel 1999, avevamo Visual Studio 5/6. Se eri un fornitore di software indipendente o un'azienda che utilizzava Windows e avevi bisogno di un'applicazione scritta che potesse, ad esempio, tenere traccia del tempo impiegato dai dipendenti in progetti, disponevi di alcune opzioni:
- Moduli in Visual Basic.
- MFC, ATL o Win32 in Visual C ++.
- Moduli in Access 97/2000.
- Sito Web ASP.
- Applet Java.
All'epoca, eravamo appena prima dello scoppio della bolla Dot-Com, quindi chiunque fosse bravo con (4) o (5) è andato a negoziare opzioni su azioni in qualsiasi incredibile dot-com a cui erano attratti.
(3) ho avuto problemi con il blocco e la scalabilità generale, ma ho visto molte soluzioni basate su Access che si sarebbero sborsate per eseguire le funzioni di supporto secondo necessità.
Quindi questo ci lascia con VB e VC ++:
L'editor di moduli in VB era, all'epoca, eccellente per la produttività. È possibile trascinare e rilasciare i componenti: non solo pulsanti, etichette e caselle di testo, ma l'intera casella degli strumenti "Controlli OLE" di componenti riutilizzabili come griglie intelligenti, fogli Excel o istanze IE. Il collegamento è stato fatto dietro le quinte: tutto era simile ad un oggetto e hai semplicemente fatto doppio clic su cose per aggiungere gestori di eventi. Questo è stato molto più difficile in Visual C ++. In quel momento, come membro del team di supporto per gli sviluppatori di Visual Studio, ricordo come le chiamate al supporto di Visual Basic riguardavano principalmente quale componente era meglio usare o come ottimizzare la loro applicazione in determinati modi. Quasi mai "come faccio a creare un'applicazione con le funzionalità dell'interfaccia utente X, Y e Z".
La creazione di una ricca interfaccia utente in Visual C ++ è stata una sfida diversa. Sebbene esistesse il supporto dell'editor visuale per finestre di dialogo e moduli SDI / MDI, era piuttosto limitato. Il supporto per incorporare i controlli OLE (ActiveX) in MFC o Win32 era un'arte nera, anche se un po 'più facile in ATL. Cablare cose semplici come ridimensionare gli eventi o disegnare il proprietario è stato piuttosto doloroso, per non parlare dei punti di connessione richiesti per gli eventi personalizzati nei componenti.
Sì, VC ++ aveva la velocità di esecuzione, capacità di debug e framework / librerie / opzioni dell'interfaccia utente flessibili, ma il supporto IDE non poteva coprire tutto quel terreno, quindi ha affrontato le operazioni più comuni con cose come Wizards, gerarchie di classi MFC complete e 90 giorni / 2 linee di supporto per incidenti gratuiti.
IIRC, il packager dell'applicazione fornito con VB potrebbe impacchettare la tua app, il runtime VB e le più recenti DLL di controlli comuni e fornirti un programma di installazione EXE autonomo che potresti mettere su un CD e raggiungere i clienti. Niente di tutto questo "quali msvcrtXX.dll e mfcxx.dll hai installato?", Che ha afflitto gli sviluppatori MFC.
Quindi, per motivi di time-to-market e ricca interfaccia utente, VB ha ottenuto un seguito molto grande.
Quando Visual J ++ e Visual Interdev hanno colpito VS6, era chiaro che l'IDE di Visual Basic aveva vinto una battaglia su quello di Visual C ++, che era giusto IMHO. Non è stata affatto una sorpresa che Visual Studio .NET avesse un editor di moduli simile a VB per il nuovo COOL linguaggio C #.
Il nuovo linguaggio simile a Java / C / C ++ unito al progettista dell'interfaccia utente di cui le persone VB hanno goduto per tutto questo tempo ha dato un nuovo percorso di migrazione per le persone C ++ che ora avevano finito con MFC / ATL / Win32. Per le persone VB 3/4/5/6 a cui non è piaciuta la mancanza di compatibilità con le versioni precedenti al 100% in VB.net, ciò ha offerto l'opportunità di imparare una nuova lingua in un ambiente familiare.
Le ragioni per cui VB era un prodotto così completo probabilmente hanno qualcosa a che fare con le origini di Microsoft, con Basic come prodotto di punta per gli sviluppatori, ma al momento non ho citazioni.