Il Visual Basic (formalmente abbreviato VB) è un linguaggio di programmazione event driven arrivato fino alla versione 2010, la cui sintassi deriva dal BASIC.

Caratteristiche
- Facilità d'uso (non utilizza formalità di punteggiatura tipica di quasi tutti gli altri linguaggi);
- Il suo ambiente di lavoro RAD che permette di realizzare in breve tempo interfacce GUI anche complesse;
- Il pratico accesso alle basi dati;
la creazione di controlli ActiveX con il linguaggio stesso (anche se nelle prime versioni si doveva usare il linguaggio C).
Tramite l'integrazione dei controlli VBX (nelle versioni a 16 bit), dei controlli OCX (presenti nelle versioni a 32 bit) e dei collegamenti OLE presenti nell'ambiente di lavoro o realizzati da altri programmatori, è possibile aggiungere potenzialità al linguaggio, aggiungendo nei propri progetti nuove funzioni o ampliando funzioni già esistenti.

Versioni
Visual Basic 1.0 per Windows (maggio 1991)
Visual Basic 1.0 per DOS (settembre 1992)
Visual Basic 2.0 (novembre 1992)
Visual Basic 3.0 (Estate 1993)
Visual Basic 4.0 (agosto 1995)
Visual Basic 5.0 (febbraio 1997)
Visual Basic 6.0 (Estate 1998-2006)
Visual Basic 2005(04 Maggio 2007)
Visual Basic 2008(13 Febbraio 2008)
Visual Basic 2010(13 Giugno 2011)

Visual Basic .NET o Visual Basic
Con l'uscita del .NET Framework, Microsoft ha introdotto una nuova "visione" del suo più famoso linguaggio di sviluppo. Non è, perciò, un aggiornamento del vecchio VB6, ma un nuovo linguaggio che integra tutte le classi di base del framework .NET, mantenendo una sintassi simile a quella di Visual Basic. Questo cambiamento ha interrotto la compatibilità verso il basso di Visual Basic, ma ha colmato tutte quelle carenze tipiche del VB6 descritte in precedenza. Sono state introdotte tutta una serie di funzionalità tipiche del .NET Framework, come "remoting", "Web Service", "Servizi Windows", ADO.NET, ecc. Anche se esiste un tool per la migrazione delle applicazioni, alcune funzionalità non possono essere convertite automaticamente, richiedendo quindi uno sforzo successivo per completare la migrazione.
Molte delle originali carenze sono state colmate, ma questo ha reso Visual Basic .Net un linguaggio più complesso del suo predecessore, al tempo stesso estremamente più potente e versatile. Alcuni ritengono che il supporto per Visual Basic .NET diminuirà nel tempo a favore del C#, che diventerà il linguaggio più utilizzato in ambito .NET; tuttavia, per il momento, Microsoft fornisce il pieno supporto a Visual Basic .Net tanto che anche nella versione 2.0 del .NET Framework, le differenze nelle potenzialità dei due linguaggi sono talmente minime da rendere la scelta nell'utilizzo dell'uno o dell'altro una cosa influenzata più dalla cultura degli sviluppatori che dalle necessità tecniche. Tuttavia, analizzando la presenza di Visual Basic .NET in Internet, è chiaro che questo linguaggio rimane tuttora il punto di riferimento e la prima scelta della maggior parte dei programmatori.

Controversie
Molti programmatori hanno un rapporto difficile con Visual Basic in quanto è stato progettato per essere un linguaggio semplice e molte caratteristiche che sono presenti in linguaggi come Java non sono disponibili in Visual Basic. Nell'interesse della convenienza e del rapido sviluppo, alcune funzionalità come la verifica del "cast" dei dati e la dichiarazione obbligatoria delle variabili (anche se è possibile rendere questa dichiarazione obbligatoria) sono disabilitate. Questo rende Visual Basic molto semplice da utilizzare, ma i programmi così realizzati possono essere distribuiti con errori nascosti dovuti a questa mancanza di controlli.
Molti critici di Visual Basic spiegano che la sua natura semplice è dannosa nel lungo periodo. Innanzitutto, è spesso utilizzato per insegnare la programmazione proprio a causa della sua semplicità, ma imparare a programmare in Visual Basic non introduce i programmatori a molte delle tecniche e dei costrutti fondamentali della programmazione. In secondo luogo, come già detto in precedenza, la possibilità di disabilitare errori e avvertimenti in fase di compilazione, può rendere difficoltosa la ricerca degli errori.
Molti dei suoi sostenitori insistono, invece, sul fatto che la sua semplice natura è il suo punto di forza, in quanto permette un rapido sviluppo di applicazioni da parte di programmatori esperti e una curva di apprendimento piuttosto breve per i programmatori che provengono da altri linguaggi. Inoltre, le applicazioni Visual Basic possono essere integrate con le basi dati in maniera molto semplice.
Visual Basic è, inoltre, un agglomerato di funzionalità e sintassi diverse con meno consistenza, ma con più tolleranza degli altri moderni linguaggi di programmazione. Alcune istruzioni come "gosub", "on error" e la dichiarazione del tipo di variabile con l'ultimo carattere del nome (ad esempio miaStringa$ per le stringhe), sono retaggi delle origini del Basic che sono state incluse per mantenere una compatibilità verso il basso del codice.
Il linguaggio continua ad attirare molti apprezzamenti e molte critiche, ma la grande base "storica" di programmatori che lo hanno utilizzato e che basano su di esso la propria produttività fa sì che continui ad avere una grande diffusione, nonostante l'uscita del successore Visual Basic .Net. Va comunque fatto notare che Visual Basic.Net non è una semplice evoluzione di VB6, ma è a tutti gli effetti un altro linguaggio, adatto alla nuova generazione di software e di sistemi operativi.

Funzionalità non supportate
Programmazione orientata agli oggetti. Visual Basic, fino alla versione 4, non supporta la programmazione orientata agli oggetti. Successivamente con la versione 5 e 6 vi è un supporto limitato alla programmazione orientata agli oggetti. Non si può per esempio implementare l'ereditarietà degli oggetti ed altro. Dalla versione 7 (Visual Basic .Net) però la programmazione orientata agli oggetti è pienamente supportata.
Multithreading. Nelle versioni "pre .NET", non esiste un supporto diretto per la programmazione multithread.
Puntatori. La gestione dei puntatori è molto più limitata rispetto a molti altri linguaggi.
Numerici senza segno. I tipi di dati numerici supportati da Visual Basic sono esclusivamente quelli con il segno (da 8 a 32 bit), mentre molti altri linguaggi supportano nativamente i numerici senza segno.
Molte di queste lacune sono state colmate con l'uscita di Visual Basic .Net, una nuova versione di Visual Basic basata sulla piattaforma .NET Framework (Vedi sotto).

Peculiarità
- Indice di base degli array. Il primo elemento di un array può essere referenziato con l'indice 0 o con l'indice 1 (in base alle impostazioni del parametro "option base"); questo può causare una certa confusione quando si legge del codice di Visual Basic. L'indice inferiore inoltre non è limitato al valore di 0 od 1 in quanto può essere definito diversamente al momento della dichiarazione dell'array. In questo modo sia il limite inferiore dell'array che quello superiore sono personalizzabili.
- Possibilità di eseguire un'applicazione senza effettuare una compilazione completa; in questo modo è possibile cambiare il codice e continuare l'esecuzione direttamente in fase di debug.

Fonte: wikipedia