Tento seriál je určen všem, kteří se chtějí naučit programovat v jazyce Visual Basic. Je určen pro úplné začátečníky, kteří mají základní povědomí o tom, jak počítač funguje, a kteří jej umí ovládat na uživatelské úrovni.
Na mnoha místech probíraná témata záměrně mírně zjednodušuji, takže se později pravděpodobně dozvíte, že to, co je zde prezentováno, neplatí ve 100% případů a existují jisté výjimky. Hlavní důvod, proč to dělám, je snaha o srozumitelnost a jednoduchost. Je důležité, abyste rozuměli základním pojmům a pravidlům. O krajních případech se dozvíte později, až budete mít více zkušeností.
Co je programování a jak to všechno začalo?
Nejstarší “počítač” byl vynalezen už ve druhém tisíciletí před naším letopočtem v Mezopotámii. Bylo jím počítadlo, které značně usnadnilo sčítání a odčítání. Toto počítadlo bylo později zdokonaleno ve starověkém Římě, kde dostalo podobu desky s drážkami, ve kterých se posouvaly malé kamínky, kterým se říkalo kalkuly.
O konstrukci mechanických počítačů se pokoušelo mnoho lidí, v roce 1947 byl objeven tranzistor - součástka, která odstartovala rozvoj výpočetní techniky. Od této chvíle se začaly stavět tranzistorové počítače a díky nanotechnologiím dnes máme procesory, které obsahují stovky milionů tranzistorů na ploše několika čtverečních centimetrů.
Nedílnou součástí počítače je paměť, která umí ukládat informace. Základní jednotkou informace je bit – je to místo v paměti, které může obsahovat logickou hodnotu 1 nebo 0. Poskládáme-li osm těchto bitů za sebe, dostaneme celkem 256 možných hodnot – od 00000000 až do 11111111. Osmici bitů se říká bajt.
Velmi důležitou součástí počítače je též procesor. Je to velmi složitá součástka, která umí zpracovávat jednoduché instrukce. Instrukce říká třeba “přesuň 4 bajty paměti odsud sem” nebo “přičti k tomu, co je v paměti na tomhle místě, to, co je tady”. Sada takových instrukcí se nazývá program.
V dobách počítačového pravěku se programovalo tak, že se instrukce zapisovaly přímo, což ale bylo velmi složité a nepraktické. Proto byl vymyšlen jazyk assembler, který zápis programů značně usnadnil, ale pořád to bylo velice komplikované, instrukce se akorát zapisovaly v čitelnější podobě.
Velmi záhy se proto objevily první programovací jazyky (Fortran a Cobol), které přinesly do programování spoustu nových prvků. S příchodem jazyků C, Pascal a Basic se začalo na dlouhou dobu používat tzv. strukturované programování. Program měl jasně definovaný začátek a konec, některé jeho části se mohly spustit opakovaně podle potřeby, často opakující se úkony s jiným nastavením se daly zapsat jako funkce s parametry atd.
Trochu později se vyvinulo i tzv. objektově orientované programování, které přináší trochu jiný přístup, díky němuž se ve většině případů nadělá méně chyb a je snadnější psát aplikace tak, aby se v budoucnu daly rozšiřovat a měnit s menším úsilím.
S příchodem operačního systému Windows a obecně okenních prostředí (začalo to už dříve, i v MS-DOSu byly aplikace, které měly něco jako okna), se dosavadní koncepce ovládání a práce s programy značně změnila. V dřívějších dobách typicky program na začátku dostal data, pak chvíli pracoval a vyplivnul výsledek. Dnešní aplikace jsou mnohem interaktivnější – čekají, kdy uživatel vybere z menu nějakou položku, klikne na tlačítko, napíše něco někam, něco někam přetáhne myší atd.
Tomuto vývoji bylo třeba se přizpůsobit a strukturované programování pro to nebylo nejvhodnější (i když to v něm šlo). Objevila se potřeba umět okenní aplikace vyvíjet rychle a systematicky, odstranit často se opakující rutinní konstrukce. I to je jeden z důvodů, proč se objektově orientované programování v posledních letech rozmohlo a dnes používané programovací jazyky jsou velmi často ryze objektové.
První jazyk, který se “přizpůsobil” programování pro operační systém Windows a umožňoval jednoduše vytvářet celkem složité okenní aplikace, byl právě Visual Basic, který se vyvinul z jazyka QBASIC, což byla mutace původního jazyka BASIC v operačním systému MS-DOS. Jazyk BASIC byl vymyšlen někdy kolem roku 1965 a je to pravděpodobně jazyk, který během své existence prodělal nejradikálnější vývoj, od strukturovaného po čistě objektově orientované programování.
Poslední verze klasického jazyka Visual Basic je verze 6 z roku 1998. Dnes v ní stále ještě programuje pár lidí, ale nemá smysl se ji učit, máme totiž novou verzi Visual Basic .NET, což je nová generace jazyka Visual Basic, značně vylepšená a postavená nad .NET Frameworkem (co to je si vysvětlíme za chvíli).
V současnosti je nejnovější verze jazyka Visual Basic 10 (přídomek .NET se nepíše, ale všechny verze od sedmičky nahoru jsou .NET). Abyste v něm mohli programovat, potřebujete nějaké vývojové prostředí (dá se to i bez něj, ale to je jen pro sadomasochisty anebo pro experty, tento seriál s tím nepočítá). Microsoft uvolnil základní edici vývojového prostředí, ve kterém se aplikace pro Visual Basic .NET programují, zdarma, a to i pro komerční použití. Můžete si jej tedy volně stáhnout a nainstalovat.
Základní princip programování
V běžných programovacích jazycích programátor zapisuje program pomocí příkazů, které většinou vychází z anglických slov nebo zkratek. Celému zápisu programu se říká zdrojový kód. Aby se program mohl provést, je nutné jej předat procesoru. Procesor ale zná jen svůj strojový kód, což jsou instrukce, o kterých byla řeč dříve.
Zdrojový kód se tedy musí do kódu strojového převést - zkompilovat. Protože jeden příkaz ve Visual Basicu se může převést na desítky jednoduchých instrukcí ve strojovém kódu a po kompilaci se provádí mnoho optimalizací a zjednodušení strojového kódu kvůli rychlosti a velikosti spustitelného souboru, není jednoduše možné ze strojového kódu dostat zpět kód zdrojový (i když to částečně jde). Kompilace je tedy z velké části nevratný proces, jehož výsledkem je soubor s příponou EXE, který můžeme spustit. Některé jazyky umožňují spustit své programy bez kompilace (tomu říkáme interpretované jazyky), ovšem výsledný program je velmi pomalý, protože překlad na instrukce probíhá až za běhu programu. Kompilovaný program je nesrovnatelně rychlejší.
První procesory uměly pouze několik různých instrukcí, zatímco nejnovější procesory umí instrukcí daleko více. Tyto instrukce se ale nemohou vždy dost dobře využívat. Operační systém Windows i většina programů musí být kompilována do základní instrukční sady, kterou umí všechny procesory, i ty staré. Nové instrukce obecně nemůžeme použít, programy by nefungovaly na starších počítačích. Tím pádem na rychlých procesorech nemůžeme využít všechen výkon, který bychom využít mohli. Jsou výjimky, dá se to obejít a dělá se to, ale není to úplně jednoduché.
A k čemu je ten .NET?
Visual Basic .NET pracuje na rozhraní .NET (čteno dotnet), které výsledný program nezkompiluje přímo do strojového kódu, ale do jakéhosi mezikódu, kterému se říká CIL (Common Intermediate Language). Tento mezikód se zabalí do souboru EXE a distribuuje se na počítače k uživatelům v této podobě. Není to přímo strojový kód. Až v okamžiku, kdy se program spouští, zkompiluje se strojového kódu. Navíc se kompiluje jen to, co je z programu potřeba, před prvním spuštěním; říká se tomu JIT – Just In Time.
Výhoda je ta, že se může zkompilovat do strojového kódu a použít instrukce, které umí procesor, který kod spouští. Celý program se zoptimalizuje pro daný počítač tak, aby běžel co nejrychleji. Navíc kompilace probíhá pouze jednou, zkompilované části programu se kamsi uloží a při dalším použití programu se pouze spustí. Program tak teoreticky může běžet rychleji, protože využívá i pokročilé instrukce nových procesorů. V praxi to platí jen někdy, protože program je zase zpomalován kompilací, která probíhá až za běhu, i tak je ale výkon dostatečný.
Dost už bylo povídání, začínáme!
Abychom mohli začít programovat, potřebujeme vývojové prostředí, ve kterém budeme psát zdrojový kód, a kompilátor. Pro potřeby tohoto seriálu je třeba stáhnout si Visual Basic 2010 Express Edition, který je k dispozici zdarma na adrese http://www.microsoft.com/express/Downloads/#2010-Visual-Basic.
A ještě jedna věc na závěr. Pokud se chcete naučit programovat, předpokládá se, že umíte obsluhovat a ovládat počítač na uživatelské úrovni, že umíte pracovat se soubory, alespoň trochu ovládat Word a Excel a pracovat s Internetem. Bez těchto znalostí se daleko nedostanete. Hodí se také trocha angličtiny, většina materiálů totiž není česky.
Množí se také dotazy, jestli neexistuje překlad vývojového prostředí do češtiny. Odpověď zní zatím neexistuje, ale Microsoft jej chystá. Podle mě se to ale hodí jen pro ty, kteří opravdu anglicky vůbec neumí, a to jen ze začátku. Mnoho termínů se ani do češtiny přeložit nedá (to je vidět i v tomto textu, něco prostě nepřekládám, protože není jak a i kdybych něco vymyslel a nějak to přeložil, až to uvidíte v angličtině, nevěděli byste, o co jde). Každý programátor musí umět anglicky, proto je podle mě lepší, když pracuje s anglickou verzí, aby si na angličtinu zvykal hned ze začátku.
Závěrem
V příštím dílu tohoto seriálu už napíšeme jednoduchý program. Stáhněte a nainstalujte si Visual Basic 2010 Express, abyste mohli pokračovat dál.