Wszystko zaczęło się, zanim istniał C #
W ~ ~ 1999 mieliśmy Visual Studio 5/6. Jeśli byłeś niezależnym dostawcą oprogramowania lub firmą korzystającą z systemu Windows i potrzebowałeś napisanej aplikacji, która mogłaby np. Śledzić czas pracownika spędzany na projektach, masz kilka opcji:
- Formularze w języku Visual Basic.
- MFC, ATL lub Win32 w Visual C ++.
- Formularze w programie Access 97/2000.
- Strona ASP.
- Aplet Java.
W tym czasie byliśmy tuż przed pęknięciem bańki Dot-Com, więc każdy, kto był dobry z (4) lub (5), poszedł negocjować opcje na akcje przy każdym niesamowitym dot-com, który ich pociągał.
(3) miał problemy z blokowaniem i ogólną skalowalnością, ale widziałem wiele rozwiązań opartych na dostępie, które byłyby uruchamiane w celu uruchomienia funkcji wsparcia w razie potrzeby.
Pozostaje nam więc VB i VC ++:
Edytor formularzy w VB był wówczas doskonały pod względem produktywności. Możesz przeciągnąć elementy - nie tylko przyciski, etykiety i pola tekstowe, ale pełny zestaw narzędzi „Kontrolki OLE” komponentów wielokrotnego użytku, takich jak sprytne siatki, arkusze Excela lub instancje IE. Podłączenie zostało wykonane za kulisami - wszystko było podobne do obiektu, a ty po prostu dwukrotnie kliknąłeś, aby dodać procedury obsługi zdarzeń. Było to o wiele trudniejsze w Visual C ++. Jako członek zespołu programistów Visual Studio w tym czasie pamiętam, w jaki sposób wywołania pomocy technicznej w języku Visual Basic dotyczyły głównie tego, który składnik najlepiej użyć lub jak zoptymalizować aplikację na określone sposoby. Prawie nigdy nie było „jak zrobić aplikację z funkcjami interfejsu użytkownika X, Y i Z”.
Zbudowanie bogatego interfejsu użytkownika w Visual C ++ było innym wyzwaniem. Mimo że edytory wizualne obsługiwały okna dialogowe i formularze SDI / MDI, były dość ograniczone. Obsługa osadzania formantów OLE (ActiveX) w MFC lub Win32 była czarną sztuką, choć nieco łatwiejsza w ATL. Podłączanie prostych rzeczy, takich jak zmiana rozmiaru zdarzeń lub losowanie przez właściciela, było dość bolesne, nie mówiąc już o punktach połączenia wymaganych dla niestandardowych zdarzeń w komponentach.
Tak, VC ++ miał szybkość wykonywania, możliwość debugowania i elastyczne frameworki / biblioteki / interfejs użytkownika, ale obsługa IDE nie mogła objąć wszystkich tych obszarów, więc zajęła się najczęstszymi operacjami takimi jak Wizards, kompleksowe hierarchie klas MFC i 90 dni / 2 linie wsparcia dla wolnych od incydentów.
IIRC, program do pakowania aplikacji dostarczany z VB, może spakować twoją aplikację, środowisko uruchomieniowe VB i najnowsze wspólne biblioteki DLL sterowania oraz dostarczyć niezależny instalator EXE, który możesz umieścić na płycie CD i dotrzeć do klientów. Żadne z tych „które msvcrtXX.dll i mfcxx.dll masz zainstalowane?”, Które nękały programistów MFC.
Tak więc, ze względu na czas wprowadzania na rynek i bogaty interfejs użytkownika, VB zyskał bardzo dużą popularność.
Kiedy Visual J ++ i Visual Interdev uderzyły w VS6, było jasne, że Visual Basic IDE wygrał bitwę nad Visual C ++, co było uczciwym IMHO. Nic dziwnego, że Visual Studio .NET miał edytor formularzy podobny do VB dla nowego języka COOL C #.
Nowy język podobny do Java / C / C ++ w połączeniu z projektantem interfejsu użytkownika, z którego korzystają ludzie VB, przez cały ten czas stworzył nową ścieżkę migracji dla osób z C ++, które były już gotowe z MFC / ATL / Win32. Dla osób VB 3/4/5/6, które nie lubiły braku 100% wstecznej kompatybilności w VB.net, oferowało to możliwość nauki nowego języka w znanym środowisku.
Powody, dla których VB był tak kompleksowym produktem, prawdopodobnie mają coś wspólnego z początkami Microsoftu, przy czym Basic jest ich flagowym produktem dla programistów, ale obecnie nie mam żadnych cytatów.