Je to hezky, ale BASIC mi radsi nepripominejte. Muj prvni pocitac byl EPSON fx-80 (procesor Z80, 64 kb ram, 64 kb cartridge, lcd), a jediny co obsahoval bylo cp/m s interpretem basicu. Hral jsem s tim nekolik let a musim rict, ze basic me natolik zprasil, ze jsem se z toho dodnes nevzpamatoval. Moje programy vypadaly asi nasledovne:
10 rem "Program na vypocet cehosi
20 print "Zadejte 3 cisla"
30 input a,b,c
40 if a>b then goto 80
50 for i=1 to 50 step 2
60 if c>i then goto 120
70 next i
80 atd.
No proste pointa je v tom, ze horsi jazyk pro zacatecniky, nez je basic NEEXISTUJE. Ale to jsem odbocil. Jinak clanek jako kuriozitka dobrej.
Bye
Takové kategorické soudy jsou přehnané. Kdo chce psát programy čistě a přehledně, píše je čistě a přehledně i v Basicu; kdo chce psát jako prase, píše jako prase i v Pascalu. Je pravda, že některé jazyky více svádějí jednomu či druhému přístupu, ale rozhodující je vždy vliv programátorské kultury příslušného jedince. Nesmíte také zapomínat na to, že se bavíme o době, kdy volba nezněla "Basic nebo Pascal" ale "Basic nebo nic".
Nenene. Volba znela BASIC nebo Assembler ci dokonce strojovy kod. Pokud nekdo nekdy programoval v assembleru, jiste mi da za pravdu, ze kdyby vymyslel vyssi jazyk, dojde k Basicu.
Basic je oproti assembleru o hodne cistejsi a prehlednejsi hlavne obsahuje funkce. To jsem bral v assembleru jako zakladni chybu, tam je jen proste call, ale parametry nemuzete predat, musite mit globalni promenne a v tom je pak zmatek...
Takze si uvedomte cestu:
Strojovy kod->Assembler->Basic->Pascal->Java ci jiny objektove orientovany jazyk OOJ.
V BASICU tech let zadne "funkce" v dnesnim slova smyslu nebyly (DEF FN byl spis vtip, nez fce), byl jenom call alias GOSUB a (globalni) promenne. Pokud jsi predaval v asmu funkcim parametry v globalech, pak je videt, ze's kulhal skutecne hodne daleko od cesty, od ceho mame registry a zasobnik?
Nevim, co si mam uvedomovat na tech jmenech jazyku, ktere uvadis, ale je mi Te trochu lito. Ze existuji jazyky jako FORTH nebo Lisp, Ti zjevne unika, k cemu slouzi OOP a ze v ulohach, kde se nevyuzije dedicnost s polymorfismem je vicemene na nic, zrejme taky...
Predavat parametry funkce pres zasobnik - tenkrat? Na Z80ce? Nebo nedej boze na 8080, kera nemela ani adresovy mody umoznujici indexaci? Delas si srandu? Zkousels nekdy disassemblovat naky realny hry, treba gamesy na Spectru? Vis jak by ten kod byl nesmyslne obrovskej a pomalej? Typicky volani funkce v ty dobe bylo, ze cos moh, taks nacpal do registru procesoru a cos nemoh, taks vodlozil nekam do pameti (pevna adresa). Mimochodem i rozumny optimalizujici kompilatory dnesni doby co muzou nacpou do registru a ne vsechno tupe pres zasobnik.
Odpoved patrila cloveku, kterej o osmibitech zjevne moc netusi (basic a fce s lok. promennejma...). Pokud sis dobre vsimnul, psal jsem _registry_ A zasobnik (A zde ma vyznam slucovaci nebo) -- tomu odpovida jak ZXko, tak gcc. Ja vim dobre, jak se na spektraci prgalo v asmu, krome toho ale vim taky, jak skvela vec zasobnik je, mimochodem, dobre znama "kalkulacka" z ROM ZXka pouzivala FORTHovsky zasobnik. Mmchd., FORTH, na zasobniku postaveny a v dobe 8bitu qetouci, je velice efektivni jazyk.
Call by name
Jestli si ho s necim nepletu (sam jsem s nim nedelal, tohle nam vykladal kdysi Kryl) tak pokud tam clovek zavolal nejakou funkci takhle:
vysledek = Funkce( pole[I] );
a nekde ve funkci zmenil hodnotu toho globalniho I tak mu najednou formalni parametr ukazoval na uplne jinej prvek pole.
I kdyz na druhou stranu ... pokud nekdo pouziva na indexovani globalni promenou tak si problemy zaslouzi :-P
Co to je za kravinu, ze nemuzes predat parametry funkce v assemlberu? A co zasobnik - tak se predavaji ve vsech vyssich jazycich. Programovani v assemnleru i na PC je s jistym cvikem skoro "stejne namahave" jako programovani v C(dokonce je i nejake objektove rozsireni TASM:-))) ) - pokud se bavim o psani nizkourovnovych aplikaci tak radeji asm. JAVA je trochu jina liga - jedna se jiz o komplexni technologii, takze srovnani s prog. jazyky je irelevantni. Pokud nekdo delal vaznejsiho na 8-bitech urcite mi da za pravdu, ze jedinou rozumnou volbou byl assembler.;-))) "A mimochodem PASCAL jiz nikdy vice - at zije C".
pozn.: nynni pracuji v JAVE(v nejmenovanem IDE od IBM), takze v asm bych uz asi taky nic nenapsal.
Jako sorry, ale chyba bude vazne asi nekde jinde (jak se rika mezi zidli a klavesnici)
ja zacinal take v Basicu, pak jsem presel k asembleru a dnes jsem zatim vzdy dokazal napsat napsat program v jakemkoli jazyce v jakem jsem potreboval. Myslim ze lide co zacinaji v Jave toto asi nedokazou.
Jak tu bylo receno, jako prase muzes psat v kazdym jazyce.
Je pravda, ze v jakymkoli jazyce se da psat hnusne, prasacky, neefektivne, ale i obracene. Taky je pravda, ze kdyz se nekdo nauci _programovat_, tak pak odvede dobrej vykon, at uz je nastroj jakej chce. Ovsem vsechno se clovek uci, mluvit, pocitat i programovat; v gotice i nejvetsi umelci kreslili smesne vypadajici obrazy, i kdyz meli talent -- ale holt nebylo prostredi a prilezitosti, jako dneska, kdy si kazdej diletant od dvou let hraje s pastelkama.
Zacatecnici, hlavne deti, jsou tvarni, hodne jejich vyvijejici se mysleni ovlivni, jaky nastroj maji k dispozici. V BASICu, kde chybi prace se stackem u podprogramu, tudiz nejde rekurze, neexistuje definice fci v dnesnim slova smyslu, si clovek nidky nemuze osvojit cast prog. mysleni, s nimz napise vypocet determinantu na 5 misto na 20 radku. Vubec neni blbost, co vymysleli pedagogove na MITu, kdyz ucili 5lete deti prgat v LOGU.
Nuze dekuji zde aspon Stepankovym za jejich clanky o Prologu (o kterym jsem v dobach ZX-BASICu cetl jako o posvatnem tajemnu, CP/M nemaje) a Kelemenovu slovenskemu kolektivu za jejich Lisp pro deti.
Ale jak uz bylo zhruba receno, kdo vyrostl na CGS, TI57,... tak pokud mi mozek starim nezdreveni, bude asi vzdycky dobrej.
Dovolil bych si nesouhlasit. Basic je hrozny jazyk, to je proste fakt a nic na tom nezmeni. Ale ja tez zacinal na basicu, konkretne na qbasicu a nemyslim si, ze to byl az tak spatny zacatek ci ze to na mem programovani zanechalo vaznejsi ujmu(dneska programuji v c++,asm,perlu,php a dalsich jazycich):)) Zrovna tak jako pascal je to jazyk, kterym se da celkem jendoduse zacit... Pro opravdove programovani se ale prilis nehodi...
Jo, tak tohle znám taky. Můj první počítač, se kterým jsem kdy přišel do styku, bylo IQ151 a jeho fakticky vymakaná klávesnice. Pak se mi podařilo v roce 90 ukecat rodiče, aby vyměnili čtvrtletní rodinné úspory za počítač Didaktik M, na kterém jsem krátce kloval programy v Basicu, ale rychle jsem přešel na assembler. To byly časy... Didaktika pořád ještě mám, plně funkčního a v záchvatech nostalgie na něm stále hraju hry jako R-Type, Sentinel, Elite, Myth...
Basic nebyl špatný, jako úvod do programování byl vcelku vhodný. Fakt ale je, že Basic jako takový je spíše mrtvý jazyk - dnes frčí PHP, Java, C++...