Od ponad 25 lat nauczając wielokrotnie informatyki, wywnioskowałem jakiś czas temu, że dla naukowca nie dość jest znać jedynie stan jego dziedziny dzisiaj. Jest także użyteczne, a czasem konieczne być świadomym historii
i początków współczesnej nauki. Gdy zdecydowałem się rozpocząć publikowanie w Sieci
niektórych moich materiałów z kursów, wydawało się stosowne rozpocząć je tą małą
monografią o historii Visual Basic'a. I oto jest, w dużym stopniu taka, jak
przedstawiłem ją na pierwszym wykładzie wstępnego kursu przedmiotu, rozszerzona
nieco o najświeższe edycje.
Gdy mam czas szukać głęboko w Sieci, odnajduję
inne strony, prezentujące uzupełniającą informację. Także Microsoft kontynuował
rozwijanie Visual Basic'a, prowadząc do zmian owocujących tą czwartą edycją. Sprawdź
od czasu do czasu, czy nie ma tu dalszych uaktualnień.
Zastrzeżenie:
Informacja zawarta w tym artykule była zbierana
z wielu źródeł i badana w okresie paru lat. Jakiekolwiek błędy lub przeoczenia są
wyłącznie moje własne.
Sprzężenie zwrotne:
Gdybyś miał jakieś uwagi lub pytania, albo zechciał
zasilić w dalsze informacje, oto mój e-mail:
gmack@dawsoncollege.qc.ca
Dartmouth College, w Dartmouth NH, USA, zobowiązał
się w 1963 r. uczynić wszystkie swe komputery łatwo dostępnymi dla studentów.
Do tego czasu rozwinęli oni pierwszy w pełni funkcjonalny system dzielenia czasu,
uruchomiony na komputerze mainframe firmy General Electric. W tym samym czasie
profesorowie matematyki John G. Kemeny i Thomas E. Kurtz stworzyli język Beginner's
All-purpose Symbolic Instruction Code (BASIC) jako narzędzie instruktażowe do
szkolenia początkujących programistów w interaktywnym środowisku. Wybitna kariera
Kemeny'ego obejmowała pracę jako asystent Johna von Neumanna i Alberta Einsteina,
i przewodniczenie komisji prowadzącej dochodzenie w sprawie wypadku w elektrowni
atomowej Three Mile Island.
Wśród projektowanych celów BASICa były
być łatwym do nauki, a mimo to wciąż
wystarczająco mocnym, by nadawać się do większości ogólnych celów programowania;
używać minimalną ilość zasobów komputera
(takich jak pamięć);
nie wymagać wiedzy o sprzęcie i osłaniać
użytkownika od konieczności znajomości systemu operacyjnego.
Te cechy BASICa czyniły go łatwym i tanim do
zaimplementowania, zatem szybko stał się pierwszym (a czasami jedynym) językiem
wysokiego poziomu dostępnym na nowych mini- i mikrokomputerach. BASIC również bardzo
szybko stał się dostępny na nowszych, dzielących czas komputerach mainframe
i superkomputerach. W okresie rozkwitu minikomputerów biurowych programowanie wielu
aplikacji było wykonane w BASICu.
W późniejszych latach Kemeny i Kurtz poświęcili wiele
energii na propagowanie strukturalnego BASICa.
W r. 1975 Microsoft wypuścił swój pierwszy produkt:
kompilator Basic'a dla MITS Altair, wczesnego zestawu komputerowego.
Gdy IBM wypuścił swój komputer osobisty (PC),
oprogramowanie zawierało małą, opartą na ROMie i dyskietkach wersję BASICa. PC-DOS
IBMa (napisany w Microsofcie) zawierał rozszerzoną dyskową wersję BASICa, zwaną
BASICA (advanced BASIC). Microsoftowski MS-DOS dla komputerów kompatybilnych z PC
zawierał podobny program, zwany GWBASIC. Różnica między BASICA a GWBASIC była taka,
że BASICA wymagała obecności wbudowanego ROM BASIC.
I BASICA, i GWBASIC były interpretatorami, które
tłumaczyły i wykonywały po jednej instrukcji na raz. Interpretatory są łatwiejsze
do implementacji i nie wymagają pamięci dla kodu wynikowego, ale ich programy
wykonują się znacznie wolniej, niż kompilowane.
QuickBasic był kompilatorem Basic'a, wydanym
około 1983 r. dla zawodowych programistów, którzy chcieli pisać większe programy
na PC w Basic'u. Program skompilowany przez QuickBASIC wykonywał się cztery
do dziesięciu razy szybciej niż pod BASICA lub GWBASIC. Microsoft twierdził, że
na 8-MHz IBM PC-AT kompilator QuickBASIC mógł tłumaczyć kod z szybkością 150 000
linii na minutę (szybkość porównywalna z licznymi kompilatorami innych języków).
Ponadto QuickBASIC był kompatybilny z interpretatorami BASICa. QuickBASIC przebył
szereg modyfikacji, kończąc na wersji 4.5 wydanej w 1988 r.
W 1987 r. IBM wypuścił komputer osobisty PS/2.
Nowsze pecety IBM i kompatybilne zaprzestały dołączania ROM BASIC do sprzętu.
Inne czynniki, włącznie z gwałtownym rozwojem oprogramowania do tworzenia aplikacji
i coraz bardziej skomplikowanymi językami kompilowanymi, złożyły się na to,
ze pierwsze interpretatory BASICa stały się przestarzałe. Wraz z MS-DOS v.5
(maj 1991) i 6 (marzec 1993) Microsoft wypuścił zamiennik, zwany QBASIC.
QBASIC jest interpretatorem bazującym na dysku, dostarczanym również z Windows 95.
Jest on implementacją tego samego języka co i QuickBASIC, lecz nie zawiera niektórych
zaawansowanych komend debuggera. Inne jest także zarządzanie pamięcią wewnętrzną.
Szereg ulepszeń odróżnia QuickBASIC i QBASIC
(razem - QBs) od wcześniejszych interpretatorów BASICa. Pliki źródłowe są zapisywane
w formacie ASCII, podczas gdy wcześniejsze systemy BASICa zapisywały je w postaci
kodowanej, skompresowanej. Oba QBs zawierają edytor pełnoekranowy, obsługiwany
z menu. Nowsze języki zezwalają zająć przez program/dane 160 KB, gdy poprzedni
limit wynosił 64 KB. Nowe typy danych zostały dodane dla zwiększenia mocy obliczeniowej.
Mimo że nie była to dla nich rzecz pierwszoplanowa,
Xerox Corporation's Palo Alto Research Center (Xerox PARC) zademonstrowało Graficzne
Środowisko Użytkownika (Graphical User Environments/Interfaces, GUI) około 1975 r.
Zlokalizowane w Dolinie Krzemowej, w pobliżu jednego z wiodących w świecie ośrodków
wiedzy komputerowej (Stanford University), i założone w 1970 r., Xerox PARC odpowiadało
za głośne innowacje w informatyce i elektronice. Jest pewne, że ani Apple, ani Microsoft
nie miały do czynienia z oryginalną koncepcją GUI.
Apple Computer wprowadziło dwie maszyny
z GUI w latach 80. Pierwsza, zwana Lisa (1983), była udoskonalonym zaawansowanym
Apple, chociaż nie odniosła sukcesu rynkowego. Drugim modelem był Macintosh (1984),
pierwszy z linii produktów, która jest kontynuowana do dzisiaj.
W 1985 r., cztery lata po wprowadzeniu PC,
Microsoft wypuścił wersję 1 swojego interfejsu Windows. Wczesne wersje Windows
były nakładkami, które pracowały "na wierzchu" systemu operacyjnego DOS. Wersje
Windows 1 i 2 zawierały prymitywny interfejs użytkownika podobny do Eksploratora
Windows. By uruchomić program w tych systemach, wystarczyło zlokalizować plik
i dwukrotnie go kliknąć.
Windows 3.0, wprowadzone w 1990 r., zawierało pierwszy prekursor "pulpitu" dzisiejszych systemów Windows. Zmodyfikowana wersja, Windows 3.1, została wydana w kwietniu 1992 i przynosiła kilka technicznych nowości, włącznie z potężnym systemem czcionek TrueType na licencji Apple. Była to wersja, która "chwyciła wiatr" i zapoczątkowała rewolucję na rynkach oprogramowania kompatybilnego z PC. Windows 95 było pierwszą wersją autonomiczną, nie wymagającą DOSa do uruchomienia. Było także pierwszą wersją z kodem pracującym w "rodowitym" 32-bitowym trybie nowych procesorów Intela takich jak 486 i rodzina Pentium. Windows 1, 2 i 3.x uruchamiały kod w bardziej powolnym 16-bitowym "trybie zgodności".
Od późnych lat 90. tempo wydań Windows
przyspieszyło wraz z dostarczeniem Windows NT, Windows 98 i 98SE, Windows ME,
Windows 2000, Windows XP (w październiku 2001) i Windows Server 2003.
Alan Cooper jest uważany za ojca Visual
Basic. W 1987 r., wówczas dyrektor Applications Software for Coactive
Computing Corporation, napisał program zwany Ruby, który oferował programowanie
wizualne dla przeciętnego programisty/użytkownika.
Rosnąca popularność i skomplikowanie
graficznych interfejsów użytkownika (GUI) przywiodła Microsoft do wprowadzenia
Visual Basic w 1991 r. Tom Button, Group Product Manager for Applications
Programmability w Microsofcie, stał na czele zespołu, który wyprodukował
QuickBASIC i QBASIC. Ta sama grupa rozwinęła Visual Basic z kombinacji Ruby
i QuickBASIC.
Początkowo Visual Basic 1.0 był zamierzony jako produkt bardzo taktyczny. Microsoft miał kilka inicjatyw w rozwoju wiodącym do Visual Basic 1.0, wszystkie były skierowane na rozwinięcie się w długoterminowe, strategiczne, graficzne, zorientowane obiektowo narzędzia programistyczne. Jednakże, jak to jest typowe dla wersji 1.0 produktów, zespół pracujący nad VB 1.0 był przymuszany do cięcia ich długiej listy pomysłów, żeby aktualnie dostarczyć produkt na rynek. W rezultacie pierwsza oferta Visual Basic zawierała niewiele więcej niż technologia Embedded Basic zastosowana pierwotnie w Microsoft QuickBasic 4.0 (Microsoftowski wątkowy p-kod i kompilator przyrostowy) i prostą powłokę pierwotnie przeznaczoną, choć nigdy nie użytą, dla Windows 3.0. W około 12 miesięcy po opracowaniu wersji 1.0 Microsoft opracował następny kamień milowy - narzędzie o kryptonimie "Thunder".
Visual Basic (VB) jest systemem
programistycznym czwartej generacji, który wytwarza wiele swego kodu
jako projekt interfejsu do tworzonej aplikacji. Badania Microsoftu
w późnych latach 90. wykazały, ze mniej więcej dwie trzecie wszystkich
napisanych na PC aplikacji dla firm było wykonane w Visual Basic.
Dawny Visual Basic mógl wytwarzać kod
aplikacji pod DOSa i Windows. Dziś jednakże Microsoft uważa DOS za przestarzały
i lansuje wyłącznie środowisko Windows. QBASIC kontynuował swą dystrybucję
na CD-ROMach Windows aż do wersji 98SE i dzięki temu, w chwili pisania
niniejszego, może być ciągle dostępny i użyteczny.
Gdy wypuszczono Visual Basic 1.0, Bill
Gates, prezes Microsoftu opisał go jako 'budzący respekt'. Steve Gibson
w Infoworld powiedział, ze Visual Basic jest 'oszałamiającym nowym cudem'
i dokona 'dramatycznej zmiany drogi ludzi szukających po omacku i używających
Windows'. New York Times cytował Stewart'a Alsop'a: 'Visual Basic jest
najlepszym środowiskiem programistycznym lat 90'.
Sukces VB może być w dużej mierze
spowodowany uproszczeniem, które wniósł do programowania aplikacji
pod Windows. Przed VB programowanie aplikacji Windows wymagało biegłego
opanowania ogromnych bibliotek podprogramów i setek linii kodu do stworzenia
nawet prostych elementów ekranu. VB eliminuje potrzebę pisania kodu
dla wejścia/wyjścia GUI, w ten sposób redukując długość kodu i czas
tworzenia aplikacji. Charles Petzold, autor wielu klasycznych prac
o programowaniu Windows w języku C, powiedział dla New York Times'a:
"Dla tych z nas, którzy zarabiają na życie wyjaśniając programistom
złożoności programowania Windows, Visual Basic stanowi prawdziwe
zagrożenie naszych środków egzystencji".
Jednakże udane programowanie w tym
systemie wymaga zrozumienia asynchronicznego sterowanego zdarzeniami
programowania, sieci, architektury klient-serwer i baz danych, i dlatego
wskazywano, że QBASIC i inne języki trzeciej generacji nadal lepiej
spełniają cele projektu, które pierwotnie przyjęli Kutz i Kemeny, t.j.
są łatwe do nauki i bardzo szybko przydatne w szerokim zakresie prostych
zagadnień programistycznych.
Visual Basic 1.0 for Windows udostępniono
po raz pierwszy 20 maja 1991 na Światowej Konwencji Windows w Atlancie.
We wrześniu 1992 Microsoft ogłosił Microsoft Visual Basic for MS-DOS
w wersji Standard i Professional. Podobnie jak Visual Basic for Windows,
ta wersja łączyła łatwość projektowania graficznego z siłą i wszechstronnością
tradycyjnego programowania. Programiści po prostu rysowali interfejs użytkownika
i dołączali kod odpowiadający zdarzeniom. Jednakże w następstwie wydania
Windows 3.1 w marcu 1992 stało się widoczne, ze środowisko DOS dotarło
do końca swego użytecznego żywota. Ostatnia wersja MS-DOS, 6.22, została
wydana w 1994 r.
VB wersja 2.0 dla Windows (listopad 1992)
była szybsza, silniejsza i łatwiejsza w użyciu niz wersja 1. VB 2 był także
dostępny w darmowym wydaniu dla studentów zwanym Primer edition (obecnie - 2006 -
osiągalny pod adresem
http://www.winsite.com/bin/Info?5732
- przyp. tłum.). Visual Basic 3.0 (1993) dodawał narzędzie dostępu i obsługi baz
danych oraz Object Linking and Embedding (OLE) version 2. Był wydany w wersjach
Standard i Professional.
Superpakiet VB, zwany Visual Basic for Applications,
został stworzony jako część Microsoft Excel 5 i Microsoft Project 4 w 1993 r. Odtąd
stał się on wewnętrznym językiem programowania rodziny produktów Microsoft Office
i jest dostępny na licencji dla innych firm softwarowych.
Visual Basic 4 został wydany w 1995 r.
i obsługiwał nową rodzinę 32-bitowych systemów operacyjnych Windows 95.
Professional Edition mogła także kompilować kod do uruchamiania pod starszym
16-bitowym systemem Windows 3.x. Visual Basic Scripting Edition (VBScript)
był również anonsowany w 1995 r. VBScript jest używany do pisania osadzonego
kodu dołączanego do stron WWW, chociaż nie wszystkie przeglądarki obsługują VBScript.
Z wprowadzeniem Visual Basic v. 5 na początku
1997 r. 16-bitowe systemy przestały być obsługiwane. Pomiędzy wersjami 4 i 5
znaczące zmiany zostały dokonane w interfejsie użytkownika. VB 5 dodał, pośród
innych rzeczy, zdolność do tworzenia prawdziwych plików .EXE i tworzenia własnych
kontrolek użytkownika. Obsługuje też microsoftowską technologię Active-X.
Visual Basic 5 był dostępny w wersjach
Standard (Learning), Professional i Enterprise Edition. Bezpłatne wydanie,
zwane Control Creation Edition, mogło zostać ściągnięte z www.microsoft.com
i było dołączane do wielu podręczników. VB 5 był także włączony jako część
pakietu znanego jako Visual Studio 97.
Visual Basic 6 (VB6) został wprowadzony
w r. 1998 i był włączony jako część pakietu znanego jako Visual Studio 6.0.
VB6 dodał nowe możliwości w dziedzinie dostępu do danych, Internetu, kontrolek,
tworzenia komponentów, cech języka i kreatorów. Cytując stronę WWW Microsoftu,
"Możliwości Visual Basic 6.0 dają do dyspozycji graficzny, zintegrowany dostęp
do danych do każdego źródła ODBC lub OLE i dodatkowe narzędzie projektowania baz
danych opartych na Oracle i Microsoft SQL Server. Nowe możliwości projektowania
stron WWW wprowadzają łatwy w użyciu, oparty na komponentach model programowania
w Visual Basic do tworzenia aplikacji opartych na HTML i DHTML." Wiele organizacji
jeszcze do dziś używa tej wersji.
Po tych gwałtownych publikacjach nastąpiła
przerwa prawie sześciu lat, podczas których microsoftowska wizja architektury
systemu uległa radykalnym zmianom. Efekty tych zmian były widoczne w wydaniu
Visual Basic 7 czasami oznaczanym jako VB7 lub Visual Basic .NET, z lutego 2002.
Ten produkt był obmyślony jako część inicjatywy Microsoft's .NET software,
zaprojektowanej do tworzenia aplikacji opartych na XML dla microsoftowskiego
środowiska internetowego. Sekcja 1.0 - Wprowadzenie do specyfikacji języka
Visual Basic .NET (MSDN Library, April 2003) ładnie podsumowuje ówczesną
wizję VB:
Od Visual Basic 1.0, który radykalnie
uprościł pisanie aplikacji pod Windows, do Visual Basic 4.0, który pomógł
ustalić COM2 jako standard architektury obiektów Windows, język Visual Basic
był kamieniem węgielnym platformy Windows przez (więcej niż) dekadę.
Teraz, gdy aplikacje ewoluują od autonomicznych plików wykonywalnych siedzących na
twardym dysku użytkownika w stronę aplikacji rozprowadzanych, dostarczanych przez
serwer sieciowy poprzez Internet, Microsoft rozrasta się poza proste dostarczanie
systemu operacyjnego: Microsoft dostarcza również obsługę sieciową XML. Kluczową
częścią microsoftowskiego wejścia w tą nowa przestrzeń obsługi sieciowej XML jest
.NET Framework, zaprojektowana od podstaw aby pozwolić deweloperom swobodnie pisać
i publikować złożone aplikacje sieciowe.
Visual Basic .NET jest filarem .NET Framework i jeszcze jednym krokiem naprzód w ewolucji
języka. Jest to język programowania wysokiego poziomu dla .NET Framework i stanowi
najłatwiejszy punkt wejścia do .NET.
Specyfikacja Języka kontynuuje w Sekcji 1.1
- Zasady Projektowania Visual Basic .NET - co następuje:
Visual Basic .NET odzwierciedla
następujące zasady projektowania:
Jest to rozpoznawalny potomek Visual Basic'a. Obecni programiści
VB poczują się natychmiast obeznani z językiem.
Jego składnia i semantyka są proste i łatwe do zrozumienia.
Język unika cech nieintuicyjnych.
Przekazuje deweloperom ważne możliwości .NET Framework i jest
zgodny z framework'owskimi konwencjami.
Jest rozsądnie "aktualizowalny" z Visual Basic'a.
Ponieważ .NET Framework wyraźnie wspiera wiele języków komputerowych,
pracuje on dobrze w wielojęzycznyym środowisku.
Jest on tak kompatybilny z poprzednimi wersjami Visual Basic, jak to
jest możliwe. Gdy tylko możliwe w praktyce, Visual Basic .NET ma tą samą składnię,
tą samą semantykę i to samo zachowanie przy uruchomieniu, jak jego poprzednicy.
Następujące zasady uzupełniają te pierwotne,
przyjęte przy projektowaniu Visual Basic'a:
Jest on językiem bezpiecznym w pisaniu, jak to tylko możliwe.
W ogólności, Visual Basic próbuje zrównoważyć niezawodność, łatwość użycia
i wydajność w definicji języka.
Jest on nadzwyczajnie przystępnym językiem.
Umożliwia bardzo szybkie stworzenie programu bez kompromisu
z niezawodnością.
Wytwarza przewidywalny i wydajny kod.
Funkcjonuje jako język ścisły i równocześnie swobodny, dając bardziej
poprawny kod użytkownika w pierwszym przypadku i szybsze programowanie w drugim.
The Visual Studio development system
został w tym wydaniu poddany znaczącym rewizjom. Co ważniejsze, Microsoft
przekonstruował Visual Basic od podstaw, włącznie z pełnymi możliwościami
programowania obiektowego i kompletną integracja z .NET Framework Common
Language Runtime (CLR). Inną znaczącą zmianą było wydzielenie projektanta
form w pakiet zwany Windows Forms, który może być użyty z innymi językami
Microsoftu takimi jak C++ i J#.
Według opinii autora niniejszego, pewien re-trening będzie jednak potrzebny obecnym
programistom VB przestawiającym
się na .NET. Ilość tego re-treningu będzie bardzo znacznie zależeć od studenta.
Ponadto, aby w pełni zrozumieć i zrobić dobry użytek z VB .NET, potrzebna będzie
wiedza o pojęciach i technice programowania zorientowanego obiektowo.
Artykuł ze strony WWW Microsoftu w 2002 r.
mówił: "Na pierwszy rzut oka może ci się wydawać, że Visual Basic .NET jest
tak radykalnie różny od tego, co znasz, że będziesz się uczył wszystkiego
od nowa." Doświadczenie autora niniejszego było takie, że podstawowe pojęcia
programowania form Windows i podstawowy model zdarzeń nie zmieniły się. Wiele
możliwości języków Visual Basic i BASIC jest również jeszcze dostępnych,
często w ulepszonej postaci.
Z drugiej strony, wiele ze składni i wiele
(nazw i semantyki) obiektów, właściwości, metod i zdarzeń zmieniono. Typy
danych zostały przepracowane w celu zrównania ich z innymi znaczącymi językami
i z .NET CLR, w ten sposób gwarantując interoperacyjnosć pomiędzy językami,
przy bezpiecznym zapisie. Dodanie opcjonalnego Strict typing trybu kompilatora
może być uważane za znaczące ulepszenie, które, w opinii autora niniejszego,
winno być użyte w każdym projekcie. I istniejące możliwości bibliotek języka
obecnie koegzystują z całą biblioteką klasy, co zapewnia równoważne i zwiększone
możliwości dla wszystkich języków .NET.
.NET Framework dostarcza również nowe i ulepszone
modele bezpieczeństwa oprogramowania i instalacji/publikacji. Więcej informacji
o zmianach w Visual Basic .NET - zobacz artykuł
Upgrading from Visual Basic 6.0 na stronie WWW Microsoftu.
Wraz z oddzieleniem Windows Forms i dodaniem
klasy Console dla liniowo zorientowanego wejścia/wyjścia, Microsoft wskrzesił
język BASIC. Visual Basic .NET jest faktycznie obiektowo zorientowanym językiem
BASIC, który może być programowany w środowisku zorientowanym liniowo. Zatem
narzekania niektórych, ze VB, z powodu jego zdarzeniami sterowanej natury,
nie jest odpowiedni dla wstępnego kursu programowania, nie maja dłużej racji
bytu. To również znaczy, ze QBASIC nie jest dłużej potrzebny.
Druga wersja VB .NET (wersja 7.1, znana także
jako Visual Basic .NET 2003) została wypuszczona w kwietniu 2003 r. Tą wersję
cechują narzędzia programistyczne dla Pocket PC i innych urządzeń przenośnych;
lepsze właściwości XML; wsparcie dla Windows Server 2003; lepsze osiągi
biblioteki Framework; lepszy kreator aktualizacji VB 6; ulepszony debugger;
lepsze osiągi IDE; nowy ADO.NET opracowujący dane przeznaczone dla Oracle 7i,
Oracle 8i i źródeł danych ODBC; i poprawa niezawodności.
W ciągu 18 miesięcy po wypuszczeniu VB .NET
Microsoft kontynuował dostarczanie VBA wersji 6 z pakietami Office 2000
i Office XP. Firma udostępniała także pakiet zwany Interop Assemblies,
który pozwalał programistom .NET używać Microsoft Office i innych istniejących
produktów z kodu .NET. Wtedy, w październiku 2003, Microsoft wypuscił swój
produkt - Office 2003, który był pierwszym zawierającym Visual Basic .NET
for Applications.