Alles begann, bevor es C # gab
Im Jahr 1999 hatten wir Visual Studio 5/6. Wenn Sie ein unabhängiger Softwareanbieter oder ein Unternehmen waren, das Windows verwendet, und eine Anwendung benötigen, mit der beispielsweise die für Projekte aufgewendete Zeit eines Mitarbeiters erfasst werden kann, haben Sie folgende Möglichkeiten:
- Formulare in Visual Basic.
- MFC, ATL oder Win32 in Visual C ++.
- Formulare in Access 97/2000.
- ASP-Website.
- Java-Applet.
Zu diesem Zeitpunkt befanden wir uns kurz vor dem Platzen der Dot-Com-Blase, und jeder, der mit (4) oder (5) gut zurechtkam, ging daran, Aktienoptionen bei der jeweils für ihn interessanten Dot-Com auszuhandeln.
(3) hatte Probleme mit dem Sperren und der allgemeinen Skalierbarkeit, aber ich sah eine Menge von Access-gesteuerten Lösungen, mit denen Support-Funktionen nach Bedarf ausgeführt werden konnten.
Das lässt uns also mit VB und VC ++:
Der Formulareditor in VB war zu dieser Zeit hervorragend für die Produktivität. Sie können Ihre Komponenten per Drag & Drop verschieben - nicht nur Schaltflächen, Beschriftungen und Textfelder, sondern auch die vollständige Toolbox für OLE-Steuerelemente mit wiederverwendbaren Komponenten wie intelligenten Rastern, Excel-Tabellen oder IE-Instanzen. Die Verkabelung wurde hinter den Kulissen durchgeführt - alles war objektähnlich und Sie doppelklicken einfach auf Dinge, um Event-Handler hinzuzufügen. Dies war in Visual C ++ sehr viel schwieriger. Als Mitglied des Visual Studio-Entwicklersupportteams zu dieser Zeit kann ich mich noch daran erinnern, wie es bei Visual Basic-Supportanrufen hauptsächlich darum ging, welche Komponente am besten zu verwenden war oder wie ihre Anwendung auf bestimmte Weise optimiert werden konnte. Es war so gut wie nie "wie erstelle ich eine Anwendung mit X-, Y- und Z-Benutzeroberflächenfunktionen".
Das Erstellen einer umfangreichen Benutzeroberfläche in Visual C ++ war eine andere Herausforderung. Obwohl Visual Editor-Unterstützung für Dialoge und SDI / MDI-Formulare vorhanden war, war diese ziemlich begrenzt. Die Unterstützung für das Einbetten von OLE-Steuerelementen (ActiveX) in MFC oder Win32 war eine schwarze Kunst, wenn auch in ATL etwas einfacher. Einfache Dinge wie das Ändern der Größe von Ereignissen oder das Zeichnen von Eigentümern waren ziemlich schmerzhaft, geschweige denn die Verbindungspunkte, die für benutzerdefinierte Ereignisse in Komponenten erforderlich sind.
Ja, VC ++ hatte die Ausführungsgeschwindigkeit, die Debug-Fähigkeit und flexible Frameworks / Bibliotheken / UI-Optionen, aber die IDE-Unterstützung konnte nicht all diesen Grund abdecken, sodass die häufigsten Vorgänge mit Assistenten, umfassenden MFC-Klassenhierarchien und 90-tägigen Funktionen angegangen wurden / 2-free-Incidents-Supportlinien.
IIRC, der mit VB gelieferte Anwendungspaketierer, kann Ihre App, die VB-Laufzeit und die neuesten DLLs für allgemeine Steuerelemente packen und Ihnen ein eigenständiges EXE-Installationsprogramm bereitstellen, das Sie auf eine CD kopieren und an Kunden senden können. Nichts davon 'welche msvcrtXX.dll und mfcxx.dll haben Sie installiert?', Was die MFC-Entwickler plagte.
Aus Gründen der Markteinführung und der umfangreichen Benutzeroberfläche hat VB eine sehr große Fangemeinde.
Als Visual J ++ und Visual Interdev in VS6 eintrafen, war klar, dass die Visual Basic-IDE einen Kampf gegen Visual C ++ gewonnen hatte, was meiner Meinung nach fair war. Es war überhaupt keine Überraschung, dass Visual Studio .NET einen VB-ähnlichen Formulareditor für die neue COOL C # -Sprache hatte.
Die neue Java / C / C ++ - ähnliche Sprache, gepaart mit dem UI-Designer, der den VB-Leuten die ganze Zeit Spaß gemacht hat, bot einen neuen Migrationspfad für die C ++ - Leute, die jetzt mit MFC / ATL / Win32 fertig waren. Für die VB 3/4/5/6 Leute, die den Mangel an 100% Abwärtskompatibilität in VB.net nicht mochten, bot dies die Möglichkeit, eine neue Sprache in einer vertrauten Umgebung zu lernen.
Die Gründe, warum VB ein so umfassendes Produkt war, haben wahrscheinlich etwas mit den Ursprüngen von Microsoft zu tun, wobei Basic das Flaggschiff unter den Entwicklerprodukten ist, aber ich habe derzeit keine Zitate.