Visual Basic (VB)

Eintrag zuletzt aktualisiert am: 12.03.2020

Visual Basic ist eine beliebste Programmiersprache in der Windows-Welt. Visual Basic wird von Microsoft entwickelt.
Versionen 1.0 bis 6.0 basierten auf Native Code und nutzten seit Version 4.0 das Component Object Model (COM)
Seit Version 7.0 erzeugt der Visual Basic-Compiler Managed Code für das .NET Framework. Diese Versionen werden landläufig als "Visual Basic .NET" bezeichnet, auch wenn der offiziele Sprachname seit dem Jahr 2005 ohne ".NET" lautet.

Visual Basic oder Visual Basic .NET?

In der Dokumentation von Microsoft wird die Programmiersprache immer nur mit "Visual Basic" bezeichnet, während der Tiobe Index [https://www.tiobe.com/tiobe-index/] genau wie dieser Beitrag "Visual Basic .NET" verwendet. Mit der Einführung von .NET hatte Microsoft die Programmiersprache zunächst in den Version 7.0 und 7.1 mit dem ".NET" im Namen geführt, um von dem klassischen COM-basierten Visual Basic abzugrenzen, dann aber im Jahr 2005 bei der Version 8.0 das ".NET" wieder aus dem Namen gestrichen. Da aber auch heutzutage immer noch einige klassische Visual Basic-Anwendungen im Umlauf und der Weiterentwicklung sind, hat sich in der Entwicklerwelt etabliert, "Visual Basic .NET" für die .NET-basierte Version zu verwenden.

Versionsgeschichte der COM-basierten Versionen

Visual Basic 1.0
Visual Basic 3.0
Visual Basic 4.0
Visual Basic 5.0
Visual Basic 6.0

Versionsgeschichte der .NET-basierten Versionen

Visual Basic .NET 7.0 - alias Visual Basic .NET 2002
Visual Basic .NET 7.1 - alias Visual Basic .NET 2003
Visual Basic 8.0 - alias Visual Basic 2005 (das .NET im Namen ist nun wieder entfallen)
Visual Basic 9.0 - alias Visual Basic 2008
Visual Basic 10.0 - alias Visual Basic 2010
Visual Basic 11.0 - alias Visual Basic 2012
Visual Basic 12.0 - alias Visual Basic 2013
Visual Basic 14.0 - alias Visual Basic 2015
Visual Basic 15.0 - alias Visual Basic 2017
Visual Basic 16.0 - alias Visual Basic 2019

Ende der Weiterentwicklung seit 2020

Microsoft hat die Weiterentwicklung der Programmiersprache Visual Basic .NET am 11.3.2020 offiziell einstellt: "Going forward, we do not plan to evolve Visual Basic as a language." und einem Blogeintrag [https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/] erklärt, dass manche Funktionen von .NET Core den Visual Basic .NET-Anhängern nicht mehr zugänglich sein werden: "Future features of .NET Core that require language changes may not be supported in Visual Basic."

Hintergrundinformationen

Visual Basic hat eine lange Tradition in der Windows-Entwicklerwelt. Die Sprache galt in den Versionen 1.0 bis 6.0 als einfach und sehr produktiv, war aber gleichzeitig auch als unsauber und unstrukturiert verpönt (gerade bei den Entwicklern, die mit C++, Delphi oder Java gearbeitet haben). Visual Basic 6.0 war allenfalls eine objektbasierte Sprache. Es fehlten insbesondere Konstrukte zur Implementierungsvererbung.

Mit dem Versionswechsel von Visual Basic 6.0 zur Version 7.0 hat Microsoft jedoch einen radikalen Wandel vollzogen. Die 7.0-Version wurde eine echte eine echte objektorientierte Sprache mit Vererbung, fast ebenso mächtig wie die zeitgleich neu entwickelte Sprache C#. Bis zur aktuellen Version 9.0 gab es weitere Angleichungen, z.B. Operatorüberladung.

In Visual Basic 7.1 wurden nur Kleinigkeiten ergänzt. Visual Basic hat dann in den Versionen Version 8.0 (alias 2005) und 9.0 (alias 2008) nochmals eine erhebliche Aufwertung durch zusätzliche Sprachkonstrukte erfahren und kommt der Sprache C# noch näher. Die verbliebenen Unterschiede zwischen C# und Visual Basic sind primär syntaktischer Natur und für die meisten Problemszenarien unerheblich.

Bereits seit Visual Basic .NET 7.0 ist Visual Basic eine echte objektorientierte Sprache mit Vererbung, die bis auf wenige Ausnahmen ebenso mächtig ist wie die Sprache C#. Microsoft hat bei VB.NET ganz be-wusst auf die Kompatibilität mit der Vorgängerversion VB 6.0 verzichtet. Inkompatibilitäten wurden aus zwei Gründen hingenommen:
1. Alle Features aus VB 6.0, die signifikante Verwirrung bei den Entwicklern stifteten, wurden bereinigt.
2. Alle Features aus VB 6.0, die nicht kompatibel mit dem .NET Framework waren, wurden geändert oder entfernt.
Eine Aussage von COM- und .NET-Guru Don Box über VB7, die bereits aus dem Jahr 2001 stammt, sei hier zitiert: »Visual Basic .NET bedeutet, dass man sich nicht länger schämen muss, ein VB-Entwickler zu sein!«

Etwas konfus war die Namensgebung. Aus Visual Basic 6.0 wurde Visual Basic .NET 7.0. Jedoch hat Microsoft beginnend mit Version 8.0 in .NET 2.0 wieder auf den Zusatz .NET verzichtet, sodass die Ver-sionen seitdem Visual Basic 8.0 (alias Visual Basic 2005) und Visual Basic 9.0 (alias Visual Basic 2008) hießen. Die offizielle Begründung war, dass es nun hinlänglich bekannt sei, dass die neuen Versionen .NET-basiert seien. Der Autor dieses Beitrags vermutet jedoch, dass dies eher passiert ist, um den Wider-stand einiger Entwickler zu brechen, die nicht von Visual Basic 6.0 auf .NET umsteigen wollten. Befürch-ten kann man nur, dass – nach¬dem Microsoft eine Zeit lang die Buchstaben .NET auf alles geklebt hat, egal ob .NET drin war oder nicht – nun das Ruder in das andere unvernünftige Extrem umschlägt.

Seit dem Entfall von ".NET" im Namen fällt es schwer in der Schriftsprache zwischen dem "alten" Visual Basic (Versionen 1.0 bis 6.0) und dem neuen Visual Basic (Versionen ab 7.0) zu unterscheiden. Es bietet sich am, vom "klassischen Visual Basic" oder "COM-basierten Visual Basic" im Kontrast zum .NET-basierten Visual Basic zu sprechen. Daher wird meist "Visual Basic .NET" verwendet, auch wenn dies nicht mehr der offizielle Sprachnahme ist.

Erst Co-Evulotion, dann doch nicht mehr

Microsoft hatte im Jahr 2010 noch die "Co-Evolution"-Strategie für C# und Visual Basic verkündet [https://docs.microsoft.com/de-de/archive/blogs/scottwil/vb-and-c-coevolution]: Beiden Sprachen sollten sich hinsichtlich der Sprachfeatures und der Werkzeugunterstützung im Gleichschritt entwickeln. Diese Strategie wurde 2017 wieder beendet [https://devblogs.microsoft.com/dotnet/the-net-language-strategy/] mit dem Argument, man wolle Visual Basic .NET nicht überfrachten, da die Sprache dann nicht mehr so einfach zu erlernen wäre. Microsoft wollte Visual Basic .NET einfach halten, aber dennoch alles dafür tun, dass die Sprache ein Bürger erster Klasse im .NET-Ökosystems bleibe. Dies hat der Hersteller aber in .NET Core, das seit 2016 in drei Haupt- und mehreren Unterversionen erschienen ist, schon nicht mehr umgesetzt. Nun 2020 stellt Microsoft die Weiterentwicklung der Sprache auf dem Status Quo ein.