# Visual Basic

Visual Basic (VB) is een reeks programmeeromgevingen en programmeertalen uitgebracht door Microsoft. Het doel van Visual Basic is de ondersteuning van het bouwen van grafische applicaties op een visuele manier, dat wil zeggen, zo veel mogelijk via directe grafische manipulatie van elementen in plaats van het expliciet invoeren van programmacode.

## Geschiedenis en versies

Visual Basic is in de loop van zijn geschiedenis sterk van karakter veranderd; de gebruikte programmeertaal heeft zo sterke wijzigingen ondergaan dat de huidige taal van een volkomen ander soort is dan de oorspronkelijke.

### Voorgangers

Al sinds de opkomst van de pc ondersteunde Microsoft het hobbymatig programmeren daarvan in de programmeertaal BASIC. Voor de IBM-PC had Microsoft daarvoor de QuickBASIC-compiler met bijbehorende ontwikkelomgeving BASIC Professional Development System.
Door het succes van Microsoft Windows was het een logische stap om ook daarvoor het programmeren in BASIC te gaan ondersteunen.

### Visual BASIC 1.0 (for Windows 3.x) (mei 1992)

Besloten werd om hiervoor het principe van het visueel programmeren te gebruiken, een principe dat, evenals de principes van Windows zelf, uiteindelijk zijn grondslag vindt in het Smalltalk-project van Xerox PARC. Visual BASIC 1.0 was de eerste ontwikkelomgeving van Microsoft die deze werkwijze ondersteunde.

### Visual BASIC 1.0 for DOS (september 1992)

Ook QuickBASIC en zijn ontwikkelomgeving werden voor het visueel programmeren geschikt gemaakt. Het resultaat, Visual BASIC for DOS, was qua programmeertaal niet 100% uitwisselbaar met de Windows-versie.

### Visual BASIC 2.0 (november 1992)

Verbeteringen volgden in versie 2.0, waarin onder meer het aanmaken van formulieren (venstertjes) vanuit de programmacode mogelijk werd.

### Visual BASIC 3.0 (zomer 1993)

De volgende release had twee versies (Standard en Professional) en ondersteuning voor een database engine (Microsoft Jet 1.0).

### Visual BASIC 4.0 (augustus 1995)

Naast de 16-bits-versie voor Windows 3.x was er van versie 4.0 ook een 32-bits-versie voor Windows 95.

### Visual BASIC 5.0 (februari 1997)

Versie 5.0 werd alleen uitgebracht voor 32-bits, maar met ondersteuning van conversie heen en terug tussen 4.0 en 5.0. Het ondersteunde het schrijven van zelf gedefinieerde klassen, zowel voor interface-elementen (custom user controls) als niet-GUI-elementen.
Hiermee had VB ook als programmeertaal de belangrijkste kenmerken van objectoriëntatie, maar niet in dezelfde mate als bijvoorbeeld Object Pascal of C++.

### Visual BASIC 6.0 (mei 1998)

Een van de vernieuwingen in versie 6.0 was de ondersteuning van webapplicaties.
De code die men schrijft voor Visual Basic 1.0 t/m 6.0 wordt gecompileerd tot een uitvoerbaar bestand dat vervolgens zelfstandig gedraaid wordt onder Windows. Deze maakt gebruik van de "runtime", een aparte DLL die alle ondersteuning voor Visual Basic bevat die tijdens uitvoering nodig is; voor versie 6 is dat MSVBVM60.dll. Deze is vrij verkrijgbaar als download op microsoft.com, en wordt vanaf Windows 98 meegeleverd.
Voorbeeldcode:

### Visual Basic for Applications (VBA)

Visual Basic is ook ingevoerd als scripttaal, aanvankelijk in Microsoft Excel, later in alle Microsoft Office-applicaties. Deze scripttaal heet Visual Basic for Applications en is qua taal en ondersteunde GUI-elementen grotendeels uitwisselbaar met Visual Basic 6. Het belangrijkste praktische verschil is dat de vervaardigde code niet wordt uitgevoerd als een zelfstandige applicatie, maar binnen een draaiende Office-applicatie.

### VBScript

Ook het scripten van dynamische webpagina's in ASP is mogelijk in Visual Basic; de daarvoor ontwikkelde variant heet VBScript. VBScript-code draait dus niet als zelfstandig programma of in een Office-applicatie, maar draait in een webserver en/of in de webbrowser tijdens het afhandelen van een paginaverzoek.

### Visual Basic .NET (sinds 2002)

Visual Basic 7.0 en latere versies hebben een grote oppervlakkige gelijkenis met de zojuist genoemde eerdere Visual Basics, maar zijn op een totaal nieuwe ondergrond gebaseerd: het .NET-framework. Hiermee wordt Visual Basic een door en door objectgeoriënteerde taal, zeer vergelijkbaar met C# of Java. Daarnaast verandert het karakter van de naam Visual Basic enigszins: die slaat nu specifiek op de programmeertaal, omdat de ondersteunende softwarebibliotheken en de runtime-ondersteuning ook worden gebruikt door alle andere .NET-talen, zoals C#. Ook heeft de taal een openbare specificatie.
Zoals de runtime van Visual Basic 6 is ook de .NET-runtime (beter bekend als het .NET-framework) vrij verkrijgbaar als download op microsoft.com, en wordt daarnaast meegeleverd met automatische Windows-updates en Windows Vista.

## Vergelijkbare talen

Visual Basic is oorspronkelijk gebaseerd op de programmeertaal BASIC. Tot versie 5 lijken Visual Basic-programma's soms ook nog op BASIC, met regelnummers en GOTO-sprongen. Het procedurele paradigma, met subroutines en functies die elkaar aanroepen of als event handler fungeren, wordt steeds sterker, en ook de object-oriëntatie, met klassen, het aanmaken en opruimen van objecten, en overerving. Visual Basic .NET heeft geen enkele gelijkenis met het oorspronkelijke BASIC, maar lijkt op talen als C# (waar het direct door automatische decompilatie in kan worden omgezet of uit worden gegenereerd) en Java of Object Pascal.

### Systemen vergelijkbaar met Visual Basic 6 of eerder

Een aantal softwarepakketten kan Visual Basic (6 en eerder) gedeeltelijk interpreteren. Ze zijn niet broncodecompatibel, maar de gelijkaardigheid van de ontwikkelomgevingen staat het toe de Visual Basic-expertise snel toe te passen.
* PowerBASIC (Windows – DOS) – Creëert kleine en snel ladende standalone executables.
* DarkBASIC (Windows) – BASIC-taal met DirectX-mogelijkheden speciaal voor het programmeren van games.
* REALbasic (Macintosh – Windows – GNU/Linux) – Een taal die dezelfde keywords, API, en design-mode interface heeft.
* Liberty BASIC (Windows) – Voor MSDOS console BASIC en of Windows (XP, Vista, Windows 7)
* SimpleBASIC (Windows – GNU/Linux) – Visual Basic met meerdere mogelijkheden en makkelijker. (In constructie)
* StarOffice Basic – macrotaal gebruikt in Oracle Open Office en OpenOffice.org
* Kbasic (Linux – Windows) – een opensource-initiatief om Visual Basic-functionaliteit op Linux te bieden
* Vrije software:
** Gambas (GNU/Linux) – poging om het gebruiksgemak en de interface van Visual Basic te dupliceren.
** HBasic (Qt, GNU/Linux)
** Gnome Basic (GNOME, GNU/Linux) – bedoeld om VBA-functionaliteit te bieden in GNOME en aan vrije software in het algemeen. Veel ontwikkelaars van dit project werken nu aan Mono.
** XBasic (Windows/Linux) – bedoeld om cross-platform te kunnen ontwikkelen in BASIC.