Februar 2016

Band 31, Nummer 2

Fangen Sie bitte nicht mit diesem Thema an – VB6: Einen schlafenden Riesen wecken

Von David Platt | Februar 2016

David PlattMit dieser Ausgabe beginnt mein siebtes Jahr der Diskussion kontroverser Themen im Bereich der Softwareentwicklung. Um diesen Anlass zu feiern, beschäftige ich mich mit meiner Lieblingskontroverse, nämlich der zwischen den Entwicklern, die Visual Basic 6 lieben, und denjenigen, die es bzw. sie nicht ausstehen können.

Ich habe zweimal (msdn.com/magazine/jj133828 und msdn.com/magazine/dn745870) über die besondere Stellung geschrieben, die VB6 in der heutigen Welt der Softwareentwicklung einnimmt, und VB6 mit einer Küchenschabe, einem Bus und einem besonderen Wurf beim Baseball, dem Knuckleball, verglichen. Auf diese Kolumnen habe ich mehr Reaktionen bekommen als auf alles andere, was ich je geschrieben habe. Heute werde ich noch mehr Öl ins Feuer gießen als sonst. Ich werde eine Atomexplosion auslösen, aus deren Strahlung VB6 als unsterbliche Mutation hervorgehen wird. Sie glauben mir nicht? Lesen Sie erst einmal weiter.

Vor ein paar Wochen aß ich mit einem Kunden zu Mittag. Er hat eine auf Silverlight basierende Lösung zum Anzeigen von Video von Sicherheitskameras. Doch bei Microsoft gilt Silverlight mittlerweile als veraltet, und Entwickler werden angeregt, stattdessen zu HTML5 zu wechseln. „Das ist echt Mist“, beschwerte sich mein Kunde. „Bislang lief alles glatt. Nun muss ich eine andere Sprache lernen und meinen ganzen Code migrieren. Meine App ist alles andere als kompliziert, nur ein paar Videostreams und einige Schaltflächen. Ich wünschte, es gäbe dafür einen richtig einfachen Weg.“

Dann dämmerte es mir: Das ist genau das, was VB6 mit seinem aktuellen Ziel (nicht verwaltete Windows-Apps) macht. Was wäre, wenn wir eine Version von VB6 entwickeln, die HTML5 generiert? Die Ausgabe könnte in jedem Browser, unter jedem Betriebssystem und auf allen Plattformen, ob Desktop oder mobil, ausgeführt werden.

Letzten Mai (msdn.com/magazine/dn973019) habe ich über das Pockenvirus und darüber geschrieben, wie es geschafft hat, den Wirt zu wechseln (vom Menschen auf den Computer), kurz bevor das letzte Exemplar dieses Virus in seinem letzten menschlichen Opfer starb. Hier ist jetzt die Chance für VB, sich ausgehend von seinem nicht verwalteten Windows-Host (bzw. Wirt) zu verbreiten und die gesamte Softwarewelt zu infizieren, um das zu schaffen, was Java versprochen, aber nie gehalten hat: Code einmal schreiben und absolut überall ausführen. Eine echte universelle App. Mithilfe des bescheidenen, alten VB6. Wer hätte das je geglaubt? Da sie überall zum Einsatz kommen wird, nenne ich die neue Sprache VB*.

Das Programmiermodell von VB* ähnelt konzeptuell dem ASP.NET Web Forms-Modell, bei dem Steuerelemente ihren Inhalt als HTML rendern. Doch für das Rendern ist ASP.NET auf Serverseite erforderlich, und VB* muss vermeiden, von einem bestimmten Server abhängig zu sein. Deshalb wird VB* zu unabhängigen Seiten von HTML5-Elementen und JavaScript-Code kompiliert, ebenso wie VB6 zu einem x86-Assembler mit Windows-Funktionsaufrufen kompiliert wird. Sie können dann die Seite auf einem beliebigen HTML5-Server ablegen und über irgendeinen HTML5-Client darauf zugreifen.

VB* zeichnet sich durch die überaus einfache Syntax und Organisation von VB6 aus. Wir lassen ausgeklügelte Funktionalität absichtlich weg und ebnen dafür einer kinderleichten Programmierung einfacher Fälle den Weg. Wir werden in der Sprache VB* beispielsweise auf Threads verzichten. Wenn es sich herausstellt, dass unsere VB*-Apps Hintergrundvorgänge benötigen, wird uns ein gewiefter Programmierer ein Steuerelement für einen Hintergrundvorgang schreiben, das sich (wie in VB6 der Fall) über all die schäbigen Details kümmert.

Aus diesem Grund erfordert VB* ein Design, das zwei Arten von Entwicklern unterstützt: die Supergeeks, die die Steuerelemente schreiben, und die Anwendungsprogrammierer, die diese nutzen. Wir haben das schon zweimal geschafft, erst bei den VBX-Steuerelementen und dann bei den OCX-Steuerelementen, weshalb wir es ohne Zweifel nochmal schaffen können.

Wie können wir VB* entwickeln, finanzieren, veröffentlichen und unterstützen? Open Source? Vielleicht will sich ein Toolhersteller der Sache annehmen? Wie wär‘s mit einem Konsortium? Ich wäre dabei – gegen eine Gebühr versteht sich. (Student: „Kann es sein, Herr Platt, das Sie ein zynischer, geldgieriger Mistkerl sind, dem es nur um Kohle geht?“ Ich: „Wie viel zahlen Sie mir für die Antwort?“) Ich habe mir sogar schon die Webadresse „vbstar.org“ gesichert, um die Sache ins Rollen zu bringen.

Ich kann schon den Chor der VB-Hasser hören: „Das ist gar keine richtige Sprache! Das sind alle keine echten Programmierer! Allein für den Vorschlag sollte man dich um die Ecke bringen. Mit VB* lässt sich niemals [dieses] oder [jenes] und [dieses auch nicht] erreichen.“

Das stimmt vielleicht. Doch wie habe ich es zuvor formuliert: „... eine schnelle (und dafür billigere) Entwicklung von begrenzten (und dafür billigeren) Anwendungen durch niedriger qualifizierte (und dafür billigere) Kräfte bietet eine Lösung für eine Menge von Problemen“. Wenn es richtig angegangen wird, ist VB* die Lösung.

Lang lebe VB*!


David S. Platt unterrichtet Programmieren mit .NET an der Harvard University Extension School und in Unternehmen auf der ganzen Welt. Er ist Autor von 11 Büchern zum Programmieren, darunter „Why Software Sucks“ (Addison-Wesley Professional 2006) und „Introducing Microsoft .NET“ (Microsoft Press 2002). 2002 wurde er von Microsoft zur Softwarelegende ernannt. Er überlegt, ob er seiner Tochter zwei Finger zusammenbindet, damit sie das Zählen im Oktalsystem lernt. Sie erreichen ihn unter rollthunder.com.