piatok 19. októbra 2007

Programovanie v Basic-u

Pred dvadsiatimi (?) rokmi malo zopár ľudí doma nejaký ten 8-bitový počítač. Či to už bol ATARI, Commodore, Sinclair/Didaktik Gama alebo rôzne exotické stroje ako Amstrad, Sharp a pod., všetky mali spoločné tri veci:
  • ich majitelia im boli pomerne oddaní, doteraz sa dokážu poresviedčať ktorý počítač bol v čom lepší
  • dali sa na ne zohnať (u nás len skopírovať / vymeniť, nie kúpiť - nebolo totiž kde) hry so skvelou hrateľnosťou
  • každý z nich mal interpreter programovacieho jazyka BASIC
Kto čo len trošku chcel, mohol sa učiť programovať. Pochopiť algoritmy, prísť na to ako pracovať s dátami alebo ako optimalizovať program tak, aby na 1-3MHz procesore výpočet skončil skôr ako doslova vyhasne Slnko.
Na súčasných počítačoch takáto možnosť chýba. Iste, je zadarmo dostupná Java, zadarmo dostupné skvelé prostredie Eclipse, ale už aj napríklad taká Java je v porovnaní s Basicom zložitejšia, treba mať vytvorený class, v ňom nejakú tú main metódu, grafika na ktorej sa dajú krásne vizualizovať algoritmy je rádovo zložitejšia, proste je to celé o trochu zložitejšie ako napísať
10 print "hello world!"

Objavil som ale zaujímavý interpreter jazyka BASIC. Vie to kresliť grafiku, má to vstup a výstup, má to klasický príkaz DATA, má to debugger, vie to pracovať so súbormi a vie to ukladať a načítavať programy z disku.
Celé je to opensource freeware, netreba to inštalovať, je to pre Linux aj Windows a celé to má cca 4MB.

Update: V pôvodnom článku som zabudol linku uviesť peknú esej o tom, prečo vlastne BASIC-256 vznikol. A mal som, v čom ma Mirov názor len utvrdil. V stručnosti išlo autorovi o dve veci:
  • mať možnosť bez problémov si nejaký algoritmus vyskúšať
  • programovacie jazyky sú si veľmi blízke a po zvládnutí jednoduchého Basicu je pre začiatočníka ľahšie prejsť na C / Javu / Python ako zvládnuť C / Javu / Python ako prvý jazyk

8 komentárov:

zemiak povedal(a)...

ty brdo, take volaco s nejakym slusnejsim jazykom (python rulez!) a bolo by to idealne na vyuku programovania. klasickym basicom (gosub/goto/labels) sa clovek len zmrsi

Anonymný povedal(a)...

Java je zložitejšia tým, že treba napísať dva riadky navyše (hlavička triedy, hlavička funkcie main), v Basicu zase treba číslovať riadky (teda, ako v ktorom klone). Osobne by som bral radšej tie dva riadky. ;-)

Áno, čo sa týka grafiky, tam je pre začiatočníka Java dosť zložitá. Ale to by som v praxi riešil inak -- napísaním jednoduchej knižnice, ktorú začiatočník použije a bude písať pomocou nej. A bude to rovnako jednoduché ako v Basicu.

(Podobný postup som použil, keď som kedysi učil programovanie v Pascale. Spravil som knižnicu, ktorá sa sama inicializovala a finalizovala, a mala iba jednu funkciu "Draw(x,y)"; tým sa vykreslil štvorček. A hneď sa dali kresliť čiary, obdĺžniky, trojuholníky, atď, bez komplikácií knižnice Graph.)

Andrej povedal(a)...

Konkrétne v BASIC-256 je obrazovkový a nie riadkový editor, preto sa tam riadky číslovať nemusia a ani sa nečíslujú.

Poetika BASICu je v jeho neskutočnej jednoduchosti až primitívnosti. Ano, je to totálna prasárna takto písať programy, skákat kade tade napr. z cyklu von, všetky premenné mať globálne, nemať rozumné dátové typy a štruktúry, ale tu hovoríme o výuke základných princípov programovania pre deti zo základnej školy, nie o programovaní pre živobytie.

Pamatám si svoju fascináciu, keď sme v počítačovom krúžku na večne sa prehrievajúcich PMD-85 programovali výpočet dĺžky strany pravouhlého trojuholníka, cyklus ktorý klesal (tuším sa to robilo cez DOWNTO a záporný STEP) a potom sme 20 minút mastili Manic Minera alebo Kura (klon Jet Set Willyho) ktoré v assembleri naprogramoval náš vedúci.
Následný prechod na Atari Basic, neskôr Atari Turbo Basic, Atari (6502) Assembler, potom PC Turbo Pascal, objektový Turbo Pascal, C, PHP, C++ a Javu už bol v podstate hračka.

Anonymný povedal(a)...

Kdysi jsem používal RapidQ, daly se v tom dělat i docela pokročilé věci (sockety, databáze).

Andrej povedal(a)...

RapidQ mi pripomína dieťa VisualBasicu a Delphi, ale vyzerá to celkom zaujímavo. Hlavne to, že existuje interpreter RapidQ bytecode pre Linux aj Windows systémy.

Anonymný povedal(a)...

Hehe, o víkendu jsem si zkoušel hrát s Atari Basicem, můžu říct, že je naprosto ale naprosto šílený, ale zase jsem se na něm a následně na Amize v Amos Basicu naučil to co umím, respektive neumím.

Pro Win jsem svého času hledal, také nějaký zajímavý programovcí jazyk na bázi basicu, docela obstojně vypadá Dark Basic a Blitz Basic

Andrej povedal(a)...

Atari Basic ma jednu velku nevyhodu v tom ze Atari nema strankovy (obrazovkovy) ale len riadkovy editor. Pred 20 rokmi mi to velmi nevadilo, ale ked raz clovek skusi strankovy editor, riadkove mu uz velmi nesedia.

Anonymný povedal(a)...

Behom minuty som prišiel na chybu. Príkaz PRINT nepozná čiarku ako oddeľovač premenných, a to je kardinálna chyba čiže celý tento BASIC stojí za prd.