Visual Basic

Visual Basic – język programowania wysokiego poziomu i narzędzie programowania firmy Microsoft. Składnia jest oparta na języku BASIC, ale unowocześniona. Zawiera kilkadziesiąt instrukcji, funkcji i słów kluczowych. Nie jest językiem w pełni obiektowym, gdyż nie udostępnia np. możliwości dziedziczenia, czy polimorfizmu. Wykorzystuje technologię ActiveX.

Jest dostępny w trzech wersjach:
 Learning Edition
 Professional Edition
 Enterprise Edition
oraz darmowej Express.

Dostępne są także wersje demonstracyjne środowiska Visual Basic:
 Working Model
 Control Creation Edition

Wraz z pojawieniem się platformy .NET, ukazała się nowa wersja Visual Basica pod nazwą Visual Basic .NET. Środowisko programistyczne ma mechanizmy importu starszych wersji programów, jednak w pewnych sytuacjach mogą pojawiać się komplikacje.

Język Visual Basic zastosowano również w wielu rozbudowanych aplikacjach jako język skryptowy do tworzenia zarówno prostych makr, jak i rozbudowanych aplikacji. Najbardziej znanym przykładem jest Visual Basic for Applications firmy Microsoft zastosowany w pakietach MS Office.

Funkcje języka 
Podobnie jak język programowania BASIC, Visual Basic zaprojektowano z myślą o łatwej nauce. Programiści mogą tworzyć proste i złożone aplikacje GUI. Programowanie w VB jest kombinacją wizualnie aranżujących komponentów lub formantów w formularzu, określających atrybuty i działania dla tych komponentów oraz pisania dodatkowych linii kodu dla większej funkcjonalności. Ponieważ VB definiuje domyślne atrybuty i akcje dla komponentów, programista może opracować prosty program bez pisania wielu linii kodu. Programy zbudowane we wcześniejszych wersjach miały problemy z wydajnością, ale szybsze komputery i natywna kompilacja kodu sprawiły, że stało się to mniej problematyczne. Chociaż od 5 wersji programy VB mogą być kompilowane do natywnych plików wykonywalnych, to wciąż wymagają obecności 1 MB bibliotek „runtime”. Biblioteki „runtime” są domyślnie uwzględnione w systemie Windows 2000 i nowszych wersjach, ale nadal należy zainstalować rozszerzone komponenty środowiska wykonawczego. Wcześniejsze wersje systemu Windows (95/98 / NT) wymagają, aby biblioteki środowiska wykonawczego były dystrybuowane wraz z plikiem wykonywalnym.

Formularze są tworzone za pomocą technik przeciągania i upuszczania. Kontrolki mają przypisane atrybuty i funkcje obsługi zdarzeń. Wartości domyślne są dostarczane podczas tworzenia kontrolki, ale mogą być zmieniane przez programistę. Wiele wartości atrybutów można modyfikować w czasie wykonywania na podstawie ingerencji użytkownika lub zmian w środowisku, tworząc dynamiczną aplikację. Na przykład można dodać kod do obsługi zdarzenia zmiany rozmiaru formularza, aby zmienić położenie kontrolki, tak aby pozostawała wyśrodkowana na formularzu itp. Poprzez wstawienie kodu do procedury obsługi zdarzenia dla naciśnięcia klawisza w polu tekstowym, program może automatycznie tłumaczyć wielkość liter wprowadzanego tekstu, a nawet uniemożliwić wstawianie określonych znaków.

Visual Basic może tworzyć pliki wykonywalne (pliki EXE), formanty ActiveX lub pliki DLL, ale służy przede wszystkim do tworzenia aplikacji systemu Windows i systemów baz danych interfejsów. Okna dialogowe o mniejszej funkcjonalności mogą być używane do zapewniania funkcji pop-up. Kontrolki zapewniają podstawową funkcjonalność aplikacji, podczas gdy programiści mogą wstawiać dodatkową logikę w odpowiednich procedurach obsługi zdarzeń. Na przykład rozwijane okno dialogowe automatycznie wyświetlające listę. Gdy użytkownik wybierze element, wywoływana jest procedura obsługi zdarzenia, która wykonuje kod, który programista stworzył. Alternatywnie komponent Visual Basic może nie mieć interfejsu użytkownika, a zamiast tego udostępnia obiekty ActiveX innym programom za pośrednictwem modelu obiektu składowego (COM). Pozwala to na przetwarzanie po stronie serwera lub na dodanie modułu.

Środowisko wykonawcze odzyskuje nieużywaną pamięć za pomocą liczenia odwołań, które zależą od zmiennych wychodzących poza zakres lub ustawionych na „nic”, unikając problemu przecieków pamięci, które są możliwe w innych językach. Istnieje duża biblioteka obiektów użytkowych, a język zapewnia podstawowe wsparcie dla programowania obiektowego. W przeciwieństwie do wielu innych języków programowania, Visual Basic zwykle nie rozróżnia wielkości liter, chociaż przekształca słowa w standardową konfigurację i wymusza od przypadków nazw zmiennych, aby były zgodne z przypadkiem wpisu w tabeli symboli. W porównaniach łańcuchów domyślnie rozróżniana jest wielkość liter. Kompilator Visual Basic jest udostępniany innym językom Visual Studio (C, C++). Jednak domyślnie ograniczenia w IDE nie pozwalają na tworzenie niektórych obiektów docelowych (modelowe biblioteki DLL systemu Windows) i modele wątków, ale z biegiem lat programiści obeszli te ograniczenia.

Historia języka 
Visual Basic 1.0 został wprowadzony w roku 1991. Możliwość tworzenia interfejsu użytkownika za pomocą przeciągnij i upuść pochodzi z prototypu rozwiniętego przez Alana Coopera i jego firmę Tripod. Microsoft nawiązał współpracę z Cooperem w celu rozwinięcia Tripod w programowalny system form dla Windowsa 3.0 pod roboczą nazwą Ruby. Tripod nie zawierał w sobie żadnego języka programowania. Microsoft zadecydował o połączeniu Ruby z językiem BASIC w celu stworzenia Visual Basica. Ruby dawał możliwości ładowania dynamicznych bibliotek zawierających dodatkowe kontrolki.

Oś czasu 
 Rozpoczęcie projektu ‘basic Thunder’ w roku 1990.
 Visual Basic 1.0 (maj 1991) został wypuszczony na platformę Windows podczas Comdex/Windows World w Atlancie, Georgia.
 We wrześniu 1992 Visual Basic 1.0 został wypuszczony dla DOSa. Język ten nie był w pełni kompatybilny z VB na platformę Windows. Za pomocą interfejsu tekstowego przy użyciu rozszerzonego ASCII symulował wygląd interfejsu graficznego.
 W listopadzie 1992 Visual Basic został wypuszczony w wersji 2.0. Środowisko programistyczne było łatwiejsze do używania, jak również szybkość uległa poprawie.
 Latem 1993 Visual Basic pojawił się na rynku w dwóch wersjach: standardowej oraz profesjonalnej.
 Visual Basic 4.0 z sierpnia 1995 umożliwiał tworzenie zarówno 32-bitowych, jak i 16-bitowych programów na platformę Windows. Pojawił się w trzech wersjach: Standard, Professional oraz Enterprise. Dawał on również możliwość pisania klas nie związanych bezpośrednio z interfejsem użytkownika. Wcześniejsze wersje języka używały kontrolek VBX, podczas gdy wersja 4.0 wprowadziła kontrolki OLE (pliki z rozszerzeniem.OCX). Później zostały one nazwane kontrolkami ActiveX.
 Wraz z pojawieniem się wersji 5.0 w lutym 1997 Microsoft ograniczył język jedynie dla użytkowników 32-bitowej wersji Windowsa. Programiści, którzy preferowali pisanie programów 16-bitowych, mogli zaimportować programy napisane w 4.0 do wersji 5.0. Konwersja w drugą stronę była również możliwa. VB 5.0 wprowadził możliwość tworzenia własnych kontrolek, jak również kompilacji do natywnego kodu wykonywalnego w systemie Windows.
 Wersja 6.0 z roku 1998 wprowadziła ulepszenia na wielu płaszczyznach. Od tej wersji możliwe było tworzenie aplikacji webowych.
 W marcu 2008 środowisko programistyczne VB 6.0 przestało być wspierane przez Windows Vistę, Windows Server 2008, jak i Windows 7.

Języki pochodne 
Visual Basic mocno pochodzi z języka BASIC, a następnie został zastąpiony przez platformę .NET. Microsoft rozwinął wiele języków pochodnych z VB między innymi:
 Visual Basic for Applications – wykorzystywany w wielu programach Microsoft (Microsoft Office)
 VBScript – język skryptowy pierwotnie zaprojektowany jako część technologii ASP w celu uniknięcia konieczności stosowania plików wsadowych MS-DOS w serwerach WWW wykorzystujących ASP. Podobnie jak język JavaScript, VBScript jest przeznaczonych do pisania skryptów wbudowanych w strony WWW i rozszerza możliwości klasycznych dokumentów HTML.
 Visual Basic .NET – następca Visual Basica 6.0 i część platformy .NET
 OpenOffice Basic
 Gambas – działa pod kontrolą Linuksa lub innego systemu Unix-podobnego. Przeznaczony dla programistów VB korzystających z Linuksa.
 WinWrap Basic
 LotusScript – używany przez Lotus Notes, jak i inne programy Lotus Development Corporation

Charakterystyka języka 

 Bloki kodu, funkcje i pętle kończą się instrukcjami kończącymi, na przykład „End If”, zamiast konwencji nawiasów „{}” znanej z języków pochodnych od C.
 Wielokrotne przypisywanie nie działa w tym języku. Wykonanie kodu „A = B = C” nie oznacza, że wartości A, B i C będą równe. Pod zmienną A zostanie przypisany wynik operacji logicznej „czy B = C?”, czyli prawda lub fałsz.
 Stała boolowska True ma wartość numeryczną równą −1. Dzieje się tak dlatego, gdyż typ danych Boolean jest przechowywany jako 16-bitowy integer ze znakiem (signed integer).
 Operatory logiczne i bitowe są ujednolicone (w odróżnieniu np. od Perla).
 Tworząc tablicę podajemy zakres indeksów, przez co podobnie jak w języku Pascal, możemy utworzyć tablicę, która nie będzie indeksowana od 0 do n-1.
 Mocna integracja z systemem Microsoft Windows
 Domyślnym algorytmem zaokrąglania liczb rzeczywistych do liczb całkowitych funkcji Round, jest algorytm „od połowy do parzystej”. Round(2.5, 0) daje wynik 2, a Round(3.5, 0) zwróci 4.
 Podczas operacji dzielenia operatorem „/”, liczby całkowite automatycznie są konwertowane do typu rzeczywistego, przez co wynik jest bardziej intuicyjny.
 Jeżeli zmienna nie została zadeklarowana, lub podczas deklaracji nie został podany typ zmiennej, automatycznie otrzymuje ona typ „Variant”. Może to być zmienione za pomocą instrukcji DefType takich jak „DefInt”, „DefBool”, „DefVar”, „DefObj”, „DefStr”. Takich instrukcji jest w sumie 12 w specyfikacji Visual Basic 6.0.

Przykłady 
Program wyświetlający wiadomość okienkową.
Private Sub Form_Load()
  MsgBox ("Hello World !")
End Sub

Zapis do pliku w języku VB.
My.Computer.FileSystem.WriteAllText("C:\Test\test.txt","This is new text to be added.",True)

Pętla foreach
Dim numbers() As Integer = {1, 2, 3}
For Each number As Integer In numbers
    Debug.Write(number.ToString)
Next
Debug.WriteLine("")

Instrukcja switch
Dim number As Integer = 5
Select Case number
    Case 1 To 5
        Debug.WriteLine("Between 1 and 5, inclusive")
    Case 6, 7, 8
        Debug.WriteLine("Between 6 and 8, inclusive")
    Case 9 To 10
        Debug.WriteLine("Equal to 9 or 10")
    Case Else
        Debug.WriteLine("Not between 1 and 10, inclusive")
End Select

Zobacz też 
 Visual Basic .NET

Przypisy

Linki zewnętrzne 
 Oficjalna strona Visual Basic
 Visual Basic 6.0 Resource Center

BASIC
Zintegrowane środowisko programistyczne