Just Basic začíname - zasadenie do rámca iných programovacích jazykov
Úvodom
Tento
článok je úvodným k sérii článkov venovaným programovaciemu jazyku Just
Basic. V nasledujúcom texte sa snažím zasadiť tento dialekt jazyka
Basic do celkového rámca celej rodiny jazykov Basic a hlavne vztiahnuť k
profesionálnemu riešeniu od firmy Microsoft - Visual Basic for
Applications. Trochu sa venujem otázkam praktickosti a univerzálnosti a
mojej filozofii výuky programovania. Záver článku je venovaný základným
črtám jazyka Just Basic a hlavne opisom toho, čo od neho očakávať môžete
a čo nemôžete. Žiaľ dosť sa odvolávam na program Quick Basic. Ale z
priestorových dôvodov si neviem pomôcť inak. Pokiaľ sa mienite venovať
programovaniu, všimnite si text písaný šikmým tučným písmom. O tieto
pojmy by ste sa mali zaujímať viac.
Programovací jazyk BASIC od Microsoftu
Prvým serióznym Windowsom bol Windows 95. Pred ním kraľoval desktopom operačný systém spoločnosti Microsoft MS DOS. Myslím posledná verzia mala číslo 6. To bolo pred 25 rokmi a operačný systém MS DOS si dnešná generácia už nepamätá, čo je trochu na škodu veci. V rámci snahy umožniť programovať aj laickej verejnosti spoločnosť Microsoft vybavila svoj operačný systém dnes už legendárnym programovacím jazykom Quick Basic. Neskôr s Windowsami tento bol nahradený spoplatneným programovacím jazykom Visual Basic. Neskôr od roku 2005 sprístupnený zadarmo v balíku Visual Studio Express a v neskorších komunitných verziách Visual Studia (Community Edition of Visual Studio). Súčasne so svojimi kancelárskymi aplikáciami - hlavne Word. Excel, Power Point, Access, Outlook sa rozvíjal jeho dialekt Visual Basic for Applications (skrátene VBA). Pravdupovediac tí, čo sa sťažovali na cenu, akoby zabudli, že súčasne s Windowsom sa objavil neplatený programovací jazyk Visual Basic Script (skrátene VBS). Ktorý síce nemal komfort Visual Basicu, ale je naozaj pomerne výkonný. Jeho problémom je ale spôsob ako by sa mal kód ladiť.
Quick Basic a jeho vplyv na programátorskú komunitu v čase jeho rozkvetu
Z hobby programátorov sa ľahko stávajú poloprofesionáli a neskôr aj profesionáli. Quick Basic splodil množstvo programátorov, ktorých úroveň silne variovala. Ale od momentu, keď Quick Basic ako programovací jazyk prestal byť praktický a neskôr aj použiteľný, začali sa množiť rôzne BASICovské klony/varianty. Ja som ich napočítal roku 2006 dobrú stovku, z nich drvivá väčšina bola funkčná. Neskôr, keď sa virtualizačné technológie stali bežnou súčasťou IT života, umožnili oživiť prakticky akýkoľvek historický softvér a teda aj Quick Basic. Problém Quick Basicu je ten, že hoci je veľmi šikovný, ako dôsledok závislosti na MS DOSe, nemá serióznu podporu pre tvorbu grafického užívateľského rozhrania (Graphical User Interface - skrátene GUI).
Quick BASIC bol naozaj veľmi praktický a dobre použiteľný. Naozaj aj na vedecké účely. Je pravda, že programovací jazyk C a Pascal, napríklad vo verzii od Borlandu boli lepšie. Okrem iného aj pre podporu programovania v Assembleri. Ale na väčšinu bežnej réžie ovládania experimentu malej a menšej ako strednej veľkosti, zberu a spracovania dát úplne postačoval.
Otázka praktickosti a univerzálnosti - jazyk VBA
Ako som povedal Quick Basic bol praktický. Ale to, čo je praktické a čo nie je praktické je otázka uhla pohľadu. Praktickosť sa posudzuje podľa toho, na aký účel mienime to, či ono, použiť. Teda Quick Basic bol praktický na svoju dobu a na bežné neprofesionálne riešenia. Teda otázka hobby verzie alebo základného výskumu bežného technického zamerania. Vo svojej dobe bol dosť univerzálny, čo dnes už ani náhodou neplatí. Výhodou univerzálnosti je, že po patričnom čase som schopný vyriešiť akýkoľvek problém strednej úrovne zložitosti. Nevýhodou univerzálnosti je pomalosť. Špecifické programovacie jazyky sú pri riešení špecifických úloh rýchlejšie. Ale keď potrebujem riešiť "multidisciplinárnu úlohu" môžem si naraziť nos.
Microsoft je praktický. Inak by nepatril medzi 4 najhodnotnejšie firmy na svete (spolu s Googlom - materská firma sa volá inak, Applom a Amazonom). Myslené tie, čo predávajú svoje akcie na burze. Zabudnime na ropné spoločnosti.
Najpočetnejšie zastúpený počítačový ľud sú prostí užívatelia. Z ich pohľadu je praktický napríklad kancelársky balík MS Office. Teda z pohľadu praktickosti bežného užívateľa by som ako štandard praktickosti stanovil možnosti programovacieho jazyka Visual Basic for Applications.
Teda ide o schopnosť štatisticky spracovávať rôzne dáta v podobe grafov a ich vizualizácia, rôzne formy výpočtov (Excel), pokročilá práca s textom (Word), práca s databázami (Access - napríklad tlač štítkov a obchodných ponúk), tvorba interaktívnych prezentácii (Power Point), sofistikovaná práca s elektronickou poštou ako rozposielanie variabilnej a časovo podmienenej elektronickej pošty (Outlook). Programovací jazyk VBA umožňuje vytvoriť program, ktorý umožňuje vytvárať dokumenty MS Office, spúšťať rôzne komponenty programov Excel, Word, Power Point, Access, Outlook a navzájom prepojovať ich vstupy a výstupy do jedného účelového celku.
Z tohto pohľadu dnešnej užívateľskej praktickosti jazyk Quick Basic už nie je viac praktický. Ale predsa to práve ním začalo.
Okrem "bežného užívateľa" existuje dobrá stovka rôznych softvérových špecialistov, poloprofesionálnych či profesionálnych. Tí majú úplne iné kritéria praktickosti a nad VBA by ľahko mohli ohrnúť nosom.
Niektoré Open source a freeware náhražky VBA
Existujú určité snahy ponúknuť dostupnú, aj cenovo, alternatívu k riešeniam Microsoftu. Tieto sú polo úspešné. Nikdy nedosiahli funkčnosť riešení VBA, ale boli natoľko praktické, použiteľné a cenovo dostupné, že napokon primäli Microsoft k zmene obchodnej politiky, napríklad aj tým, že vydali vydanie Microsoft Studio Express v 2005 roku. A napokon k "upgradovaniu" projektu Power Shell na open source.
Jednak existuje ucelený kancelársky balík Libre Office a Apache Open Office, ktoré sprístupňujú najbežnejšiu funkčnosť VBA vo svojej verzii Basicu. A jednak sú tu možnosti kombinovať rôzne programy do jedného celku. Tieto programy musia mať svoj vlastný programovací jazyk, pričom každý jednotlivý program môže používať nejaký svoj. Ale je dosť dôležité, aby mali vlastný interpreter. Tieto jednotlivé "podprogramy" v rôznych programovacích jazykoch je potom možné previazať pomocou vhodného skriptovacieho jazyka. Je to síce netrebnejšie ako VBA a prácnejšie, ale stále to môže byť funkčné.
Akýmsi jednoduchým príkladom ako taká integrácia môže fungovať je balík GSAS pre spracovanie a vyhodnotenie kryštalografických meraní (https://subversion.xray.aps.anl.gov/trac/pyGSAS). Je to špecializovaný produkt, nie univerzálny. Pravda je, že ja som ho poznal nie pythonovskú verziu. Je možne ale že z pohľadu ďalšieho vývoja ten projekt zamrzol a tak ho zmodernizovali za pomoci programovacieho jazyka Python. Ak sa vám táto poznámka zdá mimo merito veci, odpusťte. Nejakých 6 rokov som sa živil okrem iného aj spracovávaním a vyhodnocovaním práškových rtg meraní.
Ako pristúpiť k výuke programovania?
Tu existuje množstvo prístupov a koniec koncov máme Fakultu informatiky a informačných technológii STU v Bratislave. Na túto tému si určite niektorí ľudia porobili docentúry, takže nech poviem čokoľvek, iste sa nájde niekto, kto ma usvedčí zo lži. Od vynájdenia počítača IT odbory prešli takým búrlivým vývojom, že sa z tohto odboru stala neprehľadná džungla. Ale držím sa zásady, že mám hovoriť o veciach, o ktorých viem a nie o tých, o ktorých neviem. Čo sa týka konceptov programovania, ja som zamrzol na úrovni z roku 1995. Teda u mňa vrcholom je procedurálne programovanie, plus OOP (object oriented programming - objektovo orientované programovanie), ktoré priniesol jazyk C++ a výdobytok Windowsu - GUI s event driven programming (teda programovanie riadené udalosťami). Sem som došiel a žiaden nový koncept z pohľadu samotného programovacieho jazyka som sa nenaučil.
Programoval som vari v 20 programovacích jazykoch. Rôzne typy aplikácii, ale nikdy sa to nedostalo mimo rámec týchto konceptov. Viem, že existujú aj iné koncepty predstavované jazykmi Lisp a Prolog, ale k tomu som sa nedostal.
Jedine, že som sa čo to dozvedel o tvorbe dizajnu programov a trochu o princípoch tvorby architektúry softvéru.
Z môjho pohľadu sviatočného programátora - programátora, ktorý musel sem tam aj programovať, aby sa uživil, vidím dve možnosti ako učiť ľudí základom programovania (!!!). Buď pomocou jazykov špecializovaných na výuku programovania, ktoré sú navrhnuté, aby jednoduchou formou ilustrovali ten, či onen koncept. Tieto jazyky vlastne učia zadávaním rébusov. Druhá možnosť je použiť "praktický" programovací jazyk a skúsiť vymýšľať praktické úlohy. Oba prístupy sa dajú do určitej obmedzenej miery kombinovať.
Príkladom prvého typu programovacích jazykov sú jazyky Logo a Karel.
Ja som sa s nimi stretol pred dvadsiatimi rokmi. Vtedy sa na nič
praktické nedali použiť, ale bola to zábava. Avšak 20 rokov je dosť dlhá
doba, aby sa veľa zmenilo. Podľa Wikipédie dnes Logo má niekoľko
desiatok dialektov a Karel tiež dobrých zo desať.
Pre druhý prístup exituje prakticky neobmedzený vesmír programovacích jazykov. Ja si myslím, že pre tento účel vybrať niektorý z dialektov jazyka BASIC je vcelku dobrý nápad.
Druhá vec je, že keď vyučujeme programovanie, chceme na príkladoch niečo ilustrovať. Buď nejaký koncept, alebo to má byť návod na riešenie nejakého praktického problému.
Dnešný svet IT je natoľko komplikovaný, že pokiaľ chceme riešiť praktický problém tak, aby riešenie bolo komerčne zaujímavé, musíme skôr či neskôr siahnuť po profesionálnych riešeniach. Profesionálny nemusí znamenať nevyhnutne platený, ale tak či onak to skôr či neskôr s peniazmi alebo časom (čas sú peniaze) bude súvisieť.
Teda prečo nesiahnuť hneď po profesionálnom Visual Basicu? Dôvodom je niečo, čo nazývam "réžijné náklady výuky" a je to výlučná zodpovednosť pedagóga a nie žiaka.
Ilustrujem to na probléme spracovania textu v prostredí operačného systému Windows. Tu je zoznam vybraných textových editorov podľa ich zložitosti grafického znázornenia textu: 1. Notepad, 2. Notepad++, 3. WordPad, 4. AbiWord 4. MS Word .
Keby som mal znázorniť môj čas strávený používaním jednotlivých textových editorov poradie by vyzeralo takto: 1. Notepad, 2. WordPad, 3. Notepad++, 4. MS Word.
Teda, ak mám učiť začiatočníka, o ktorého ďalšom osude nič neviem, má zmysel ho učiť pracovať s tými programami práve v tomto poradí. S tým, že stojí za zváženie, či nenahradiť podľa okolností program MS Word programom AbiWord, či nejakým jemu podobným.
Program MS Word má tak komplikované, pre začiatočníka neprehľadné ovládanie, že ak tento nepracoval s týmto programom dostatočný počet hodín a má dlhé pauzy v používaní, výsledkom býva katastrofa alebo výzor dokumentu, ktorý nectí MS Word.
Niečo veľmi podobné sa deje pri sviatočnom, neprofesionálnom, používaní vývojového prostredia nejakého programovacieho jazyka a aj pri samotnom programovaní týmto jazykom.
To môže veľa amatérov od programovania úplne odradiť, čo je škoda. A tak je namieste rozmýšľať o kompromise.
Just BASIC a jeho porovnanie s inými programovacími jazykmi
Osobne si myslím, že jazyk Just BASIC je vhodným jazykom na výuku konceptov programovania. Je praktický v tom zmysle ako bol praktický jazyk Quick Basic. Teda, že má s ním veľa spoločných čŕt. Plus umožňuje veľmi, naozaj veľmi jednoduchým spôsobom tvorbu GUI. Navyše k jazyku Quick Basic pridali podporu na tvorbu animácii - prácu so sprajtami.
Just
Basic nevychádza mimo rámec funkcionálneho programovania. OOP vôbec
nepoužíva. Pokiaľ nepociťujete potrebu sa s ovládacími prvkami vyslovene
vyihrať, jeho systém tvorby GUI postačuje. Má však vážny nedostatok v
tom, že nepodporuje import funkcii z knižníc DLL, čo jeho praktickosť
výrazne obmedzuje. Tiež v tento okamih neviem nakoľko sú programy z
Quick Basicu prenositeľné do Just Basicu. Ale obávam sa, že je to dosť
biedne. V programovacom jazyku Free Basic by to malo byť oveľa lepšie.
Keby som mal zoradiť programovacie jazyky podľa komplikovanosti, urobil by som to takto:
1. Just BASIC, 2. Visual Basic Script, 3. Free Basic, 4. Free Pascal s prostredím Lazarus/ Delphi od Borlandu, 5. Visual Basic od Microsoftu ..
Pôvodne
som sem nechcel montovať programovací jazyk Pascal, myslel som, že sa
budem pohybovať iba v univerze tvorenom variantmi programovacieho jazyka
Basic, ale nie je to také jednoduché. Všetky produkty Visual Studia a
teda aj Visual Basic používajú koncept RAD (rapid application development),
ktorý spočíva v používaní takzvaných "komponent". Koncept RAD si
osvojili aj vývojári Delphi a Lazarusu. O Free Basicu by som to už
netvrdil. Existujú varianty jazyka Basic, ktoré si koncept RAD osvojili.
Ja sám som dosť povrchne testoval asi 10 klonov jazyka Basic a pritom
ich existuje dobrá stovka. Lenže žiaden som aktívne nepoužíval. A
používal som práve prostredie Lazarus a predtým Delphi.
Teda Just Basic je najjednoduchší, pričom je dodávaný s vlastným vývojovým prostredím, ktoré je trochu na nižšej úrovni ako vývojové prostredie jazyka Quick Basic. Výnimkou je, že od verzie 2.0 pribudol editor formulárov, ktorý Quick Basic nepozná. Toto koniec koncov niekto naprogramoval aj pre Free Basic ako AddOn.
Existujú aj jednoduchšie verzie jazyka Basic, ale tie už prestávajú byť praktické.
Nevýhodou oproti VBS je jeho menšia univerzálnosť. Výhodou je vlastné vývojové prostredie s debugerom
a rozumným textovým editorom. Myslené v zmysle, že textový editor
farebne zvýrazňuje text. Nečudoval by som sa, keby niekto vyriešil tento
problém aj tam.
Komentáre
Zverejnenie komentára