BASIC má za sebou téměř padesát let existence – první návrh vznikl už v roce 1963. Vycházel z jazyků FORTRAN a ALGOL a záměrem jeho tvůrců bylo nabídnout jednoduchý vysokoúrovňový programovací jazyk. Měl být použitelný pro různé druhy aplikací, měl být interaktivní, jednoduchý, ale přitom s poměrně silnými možnostmi pro pokročilé uživatele, a měl odstínit člověka od hardware a operačního systému (nezapomínejme, že byla doba velkých sálových počítačů). Všechno tohle BASIC splňoval.
Samotný interpret jednoduchého dialektu BASICu se vešel doslova do pár kilobajtů, proto byl jazykem první volby, po kterém sáhli tvůrci osobních počítačů, když hledali vhodný jazyk pro své stroje, postavené na prvních osmibitových mikroprocesorech. BASIC byl naprogramován pro stroj Altair 8800 v roce 1975 (mimochodem není bez zajímavosti, že Altair Basic napsali dva mladíci, Gates a Allen, a vydali ho pod svou značkou Micro-Soft; další příběh je už historie). BASIC byl v prvních počítačích TRS, byl v Commodore PET, byl v Apple II, Sinclair ho použil ve svých strojích řady ZX, byl v počítačích Atari, Acorn jej použil v počítači BBC… Dalo by se říct, že pokud jste si koupili domácí počítač v té době, měli jste téměř jistotu, že v něm bude BASIC (pomíjím „klon“ ZX81 s názvem Jupiter ACE – ten měl zabudovaný jazyk FORTH). A také jste měli jistotu, že váš BASIC bude nekompatibilní s jakýmkoli jiným BASICem na jakékoli jiné značce počítačů. Zkrátka co BASIC, to unikát, i když základní rysy zůstávaly stejné.
BASIC byl sice jazyk vyšší úrovně, ale měl GOTO, a GOTO je, jak vám vysvětlí každý programátorský teoretik, ztělesněné zlo. GOTO totiž svádí k programátorskému přístupu, zvanému „sem prostě fláknu GOTO a bude to!“ Takový dobře prorostlý program plný skoků kamsi, který vytvořil nadšený začátečník, je odstrašující příklad, u něhož se snad nelze odvolat ani na princip „no a co, hlavně že to funguje!“
Jazyk BASIC tak v osmdesátých letech asistoval u prvních krůčků většiny programátorů. Minimálně LOAD, RUN a POKE poznali snad všichni. I ti, kterým počítač koupili rodiče, protože „to bylo lepší než kdyby se kluk chytnul party“ a měli k němu jen kazety plné her, čichnuli k programování, a pokud k tomu měli chuť a vlohy, stačilo napsat PRINT 1+1 – a stroj odpověděl tak, jak mladý budoucí programátor čekal. Začít programovat bylo v té době tak snadné… Je tedy pravda, že spousta lidí brzy poznala, že si s LOAD a RUN vystačí, že nepotřebují programovat. Ale ti, co si chtěli programování zkusit, měli velmi jednoduchý způsob, jak na to.
BASIC je špatný
Ano, je špatný v mnoha ohledech. Jeho verze ze 70. let nejsou rozhodně příkladem jazyka, který by se měli učit budoucí programátoři a v němž by měli získávat své návyky. Pamatuji se na intenzivní boje zastánců Pascalu s pragmatiky, co se oháněli BASICem. A i když verze vznikající od poloviny 80. let už připomínaly moderní jazyky (měly funkce, procedury, cykly WHILE a UNTIL, složitější větvení, nemusely mít číslované řádky, měly lokální proměnné, zkrátka všechno to, co je dnes samozřejmostí a co podporuje správně strukturované programování – za mnohé jmenuji alespoň BetaBASIC ), stigma GOTO se s nimi táhlo dál.
Na PC byl BASIC zpočátku také jazykem číslo 1 (a stopy po něm najdete dodnes ve voláních BIOSu), s DOSem se dodával až do jeho posledních verzí, ale byl na pokraji zájmu, protože nastoupily překladače Pascalu a C. BASIC se tak pomalu dostával do pozadí a ztrácel se, až se téměř vytratil. Microsoft stále, věrný své tradici, BASIC nabízí – strukturovaný, objektový a vůbec poměrně přijatelný. Stejně tak existují komerční verze překladačů BASICu – True BASIC, RealBasic, uživatelům Linuxu bude povědomý např. Gambas či FreeBasic. BASIC tedy žije dál, i když na okraji zájmu, a už rozhodně není to první, co člověk uvidí na obrazovce.

Vážně…?
Spolu s BASICem odešlo do ústraní i programování. Tedy abych to upřesnil – ne že by se neprogramovalo, ne že by programovat nešlo, ale programovací jazyk není už to první, co na počítači uvidíte. Ani to druhé. Jsou skryty kdesi v útrobách a „chtít si zkusit programovat“ dnes vyžaduje mnohem větší úsilí. Nejlépe jsou na tom zase uživatelé Linuxu, kterým stačí spustit konzoli a tam už nějaký ten Python, Perl či alespoň shell najdou…
Proč o tom píšu: Před nedávnem jsme se bavili se svým známým Tomášem, taky spectristou, o tom, že by chtěl svému, tuším osmiletému, synovi ukázat programování a zkusit, jestli ho to chytne. Ne ho zatěžovat teorií, jen zkusit, jestli by ho vůbec bavilo ovládat přímo počítač namísto postavy ve hře. „Jako byl za nás BASIC,“ povídal. „Víš, to bylo geniálně jednoduché. Sednul sis k tomu, během odpoledne sis napsal program na počítání objemu a povrchu kvádru, nadšeně jsi to ukázal rodičům, a pak se vidělo. Buď sis řekl Hm a nahrál hru, nebo jsi šel spát s tím, že zítra tam ještě doděláš výpočet objemu koule. A na tom se poznalo, jestli tě to chytlo, jestli máš programátorského ducha, jestli to je pro tebe výzva, nebo jestli to jde mimo tebe.“ A tím se dostal k tomu, že hledal v počítači BASIC, ale nenašel ho. „Nevíš, jestli tam je něco podobného, něco, v čem by si mohl napsat jednoduchý výpočet a druhý den nakreslit domeček z čar a třetí den zahrát melodii z BEEPů?“
No, upřímně, nevím o ničem. Rozumím co hledá: Hledá jednoduchý jazyk, který by byl interaktivní, snadno pochopitelný, s jednoduchou syntaxí a s jasnými chybovými hláškami. Zamítli jsme C („Missing semicolon on line 123“), zamítli jsme Pascal („Na Hello world potřebuješ půl stránky kódu“), Perl („jediný jazyk, kde zašifrovaný zdroják vypadá stejně jako nezašifrovaný“), zamítli jsme i „výukové“ jazyky Karel („A když se naučí Karla, kde to reálně použije?“) a Logo („pokus, jak pod průhlednou záminkou malování s želvou naučit děti LISP“). Snad Python…
S BASICem odešel snadný nástroj pro začátečníky, co „je všude“
Při té příležitosti jsem si uvědomil, že na webu máme jazyk, co je ve velmi podobné pozici jako tehdy BASIC. Je všude, je poměrně snadno pochopitelný – nebo si to mírně pokročilí alespoň myslí – má několik dialektů, někteří teoretici ho nesnáší, je hned „jednu úroveň pod stránkou“ (a dostat se k němu je stejné jako udělat BREAK a LIST)… Ne, není interaktivní, ale je alespoň snadno po ruce – v prohlížeči na dvě kliknutí myši. Pokud má být prohlížeč novým operačním systémem, novou aplikační platformou, pak je jeho BASICem JavaScript.
A já si při pohledu na něj říkám: Buďme rádi, mohlo to být horší. Nezačínáme s čísly řádků a není tam GOTO.
Ale věřím, že Tomáš svůj „jazyk pro děti“ brzo najde; že je zkrátka potřeba, a proto vzniká. Ale nebude to v počítači, v operačním systému, ale spíš na webu. Třeba Processing – jednoduchý jazyk pro vizualizaci. Dokáže to kreslit, psát, reagovat na klávesy i pohyby myši. Syntaxe je jednoduchá, vychází z C a Javy, a přitom nezatížená spoustou balastu. A může to být napsané i v JavaScriptu. Nebo to může být samotný JavaScript s funkcemi pro Canvas, aby se malovalo. Nebo klidně i ten BASIC. A kruh se uzavře.
Bonusová otázka: Myslíte si, že ty vášně, které se vedou kolem operačních systémů, kdy se jednotlivé skupiny navzájem označují slovy vyjadřujícími hluboké pohrdání, časem změní ve vášně, s nimiž se budou rubat zastánci Firefoxu, Chrome, Opery, Safari a MSIE?
PS (dopsáno v 7:30): Díky všem za tipy na jazyky pro začátečníky a děti, co píšete do diskuse. Pokud znáte další, podělte se! Díky.
Přehled komentářů