Egy kis áttekintés arról, hogy micsoda volt a diákok számára a számítástechnika az 90-es években, és miért voltak akkoriban a programozók kizárólag autodidakták.

Mire tanították a gyerekeket programozni
Az 90-es évek elején a moszkvai iskolák kezdtek válogatva számítógépes termekkel felszerelni. A tantermekbe azonnal rácsokat tettek az ablakokra és nehéz fém borítású ajtókat. Valahonnan megjelent egy informatika tanár (a legfontosabb személynek tűnt az igazgató után), akinek fő feladata az volt, hogy figyeljen, senki se nyúljon semmihez. Igazából semmihez. Még az ajtóhoz sem.
A termekben leggyakrabban a BK-0010 (változataival) és a BK-0011M rendszereket lehetett találni.

A fotó forrása
A gyerekeknek elmondták az alapvető felépítést, valamint körülbelül tucatnyi Basic parancsot, hogy tudjanak vonalakat és köröket rajzolni a képernyőre. Valószínűleg ez elegendő volt az alsó és középső osztályok számára.
A saját alkotásaik (programjaik) megőrzésével akkoriban külön problémák voltak. A számítógépeket gyakran monokanalas vezérlők segítségével kapcsolták össze a ‘közös busz’ topológiájával, 57600 bod sebességgel. A meghajtó általában egy volt, és azzal gyakran akadtak gondok. Néha működött, néha nem, néha a hálózat akadt meg, néha a floppydisk nem volt olvasható.
Akkoriban ezt a 360 kB-os találmányomat cipeltem magammal.

A lehetőségeim arra, hogy ismét elő tudjam húzni a programomat róla, 50-70% között mozogtak.
Azonban ezek közül a ‘BK’ számítógépekkel kapcsolatos történetek legfőbb problémája a végtelen lefagyások voltak.
Ez bármikor megtörténhetett, akár a kód beírása, akár a program futtatása közben. A lefagyott rendszer azt jelentette, hogy 45 percnyi időt pazaroltál el, mivel mindent újra kellett csinálni, de az órából nem maradt elegendő idő erre.
1993 körül egyes iskolákban és gimnáziumokban normális termek kezdtek megjelenni 286-os gépekkel, helyenként még ‘háromasok’ is álltak. A programozási nyelvek közül két lehetőség volt: ahol a ‘Basic’ véget ért, ott kezdődött a ‘Turbo Pascal’.
A ‘Turbo Pascal’ programozás tankönyv alapján ‘tankos’ példájával
A „Pascal” nyelven a gyerekeket arra tanították, hogy ciklusokat építsenek, különféle függvényeket rajzoljanak ki, és tömbökkel dolgozzanak. Az fizikamatematika líceumban, ahol egy ideig „tartózkodtam”, heti egy órát szenteltek az informatikaoktatásnak. Két évig ez a fásultság volt ott. Természetesen szerettem volna valami komolyabbat csinálni, mint a tömbök vagy egy szinuszhullám értékeinek kiírása a képernyőre.
Tankok
A Battle City az egyik legnépszerűbb játék volt a NES klónokon (Dendy stb.).

1996-ra az 8 bites konzolok népszerűsége lekonyult, régóta a szekrényekben porosodtak, és nekem tetszett, hogy valami nagyszabásút készítek, pontosabban egy klónt a „Tankok”-ból PC-re. Következik, hogy akkor hogy kellett ügyeskedni, hogy a „Pascal”-on valami grafikával, egérrel és hanggal bírjam megvalósítani.

Csak vonalakat és köröket lehet rajzolni
Kezdjük a grafikával.

Alapértelmezett változatban a „Pascal” lehetővé tette néhány alakzat, színezett területek rajzolását és a pontok színének meghatározását. A Graph modul legfejlettebb eljárásai, amelyek közelebb hoztak minket a sprite-okhoz, a GetImage és a PutImage. Ezek segítségével egy előre lefoglalt memória területre rögzíthettük a képernyő egy részletét, és ezt a darabot rasterizált képként használhattuk. Más szavakkal, ha többször is szeretne egyes elemeket vagy képeket megjeleníteni a képernyőn, először megrajzolja őket, kimásolja a memóriába, letörli a képernyőt, megrajzolja a következőt, és így tovább, amíg létre nem hozza a szükséges könyvtárat a memóriában. Mivel mindez gyorsan történik, a felhasználó nem veszi észre ezt a trükköt.
Az első modul, ahol sprite-okat használtunk – a térképszerkesztő.

Ebben volt egy megjelölt játékmező. Az egér kattintása egy menüt hívott elő, ahol a négyféle akadály közül lehetett választani. Az egérről…
Az egér már a 90-es évek végén volt
Az egerek természetesen mindenkinek voltak, de a 90-es évek közepéig csak a Windows 3.11-ben, grafikai csomagokban és még néhány játékban használták. A Wolfban és a Doom-ban csak billentyűzettel játszottunk. Ráadásul a DOS környezetben az egér nem volt különösebben szükséges. Ezért a Borland a standard csomagba még csak az egérhez való modult sem tette be. Ezt meg kellett keresni ismerősöknél, akik csak felemelték a kezüket és azt kiáltották: „De minek neked ez?”
A modul megtalálása egeres kérdőívhez csak a feladat fele. Ahhoz, hogy az egérrel rákattinthassunk a képernyő gombjaira, ezeket meg kellett rajzolni. Méghozzá két változatban (nyomva és nem nyomva). A nem nyomott gomb felső része világos, alatta pedig árnyék van. Nyomott állapotban éppen ellenkezőleg. Ezeket háromszor kellett megrajzolni a képernyőn (nem nyomva, nyomva, majd újra nem nyomva). Ne felejtsünk el időzítéseket beállítani a megjelenítésre, és elrejteni a kurzort.

Például a főmenü feldolgozása a kódban így nézett ki:

A hang – csak a PC Speaker sípolása
A hanggal külön történet van. Az 1990-es évek elején a Sound Blaster klónok éppen a győző döntezésüket készítették elő, és a legtöbb alkalmazás csak a beépített hangszóróval működött. A maximum, amit ez tudott, az egy tónus egyidejű lejátszása. Ezt tette lehetővé a Turbo Pascal. A sound eljáráson keresztül különböző frekvenciákon lehetett „sípolni”, ami elég volt a lövések és robbanások hangjaihoz, de zenei aláfestéshez, ami akkoriban divatos volt, ez nem volt megfelelő. Végül egy nagyon ügyes megoldás született: a saját szoftverarchívumban találtam egy „exe”-t, amit valamikor letöltöttem valamelyik BBS-ről. Ez csodákra volt képes – tömörítetlen wav fájlokat tudott lejátszani a PC Speakeren, ráadásul parancssorból, saját interfésze nélkül. Csak annyira volt szükség, hogy a Pascal eljárás exec hívásával elindítsuk, és figyeljünk, hogy ez a konstrukció ne omoljon össze.
Ennek eredményeként megjelent egy pazar zene a bevezetőben, de egy vicces dolog is történt vele. 1996-ban egy Pentium 75-ös rendszerem volt, amit 90-re húztam. Ezen minden remekül működött. Az egyetemen azonban, ahol a második félévben Pascalra állítottak minket, a tanteremben rég látott 'tresha' gépek álltak. A tanárral való megállapodás szerint elvittem ezeket a tankokat a második órára, hogy megszerezzem a kreditpontot, és többet ne kelljen ott lennem. És ekkor a hangszóróból nagy üvöltés zúdult, keveredve a gurgulázó torokhangokkal. Szóval a 33 megaherzes „tresha” DX nem volt képes normálisan futtatni azt az „exe” fájlt. De más tekintetben minden rendben volt. Persze, a billentyűzet lassú lekérdezése, ami tönkretette az egész játékélményt, függetlenül a PC teljesítményétől.

De a fő probléma nem a 'Pascalban' van.
Az én értelmezésem szerint a „Tankok” a maximum, amit a Turbo Pascal-ból ki lehetett hozni assembly betétek nélkül. A végtermék egyértelmű hátrányai közé tartozik a lassú billentyűzet-érzékelés és lassú grafikai megjelenítés. A helyzetet tovább súlyosbította a másodlagos könyvtárak és modulok rendkívül csekély száma. Ezeket egy kéz ujjain meg lehetett számolni.
De legjobban az iskolai oktatás megközelítése bántott. A gyermekeknek akkor senki sem magyarázta el a más nyelvek előnyeit és lehetőségeit. Az órákon szinte azonnal a begin, println és if szavakról kezdtek beszélni, ami a diákokat a BASIC-Pascal paradigmába zárta. Mindkét nyelv kizárólag oktatási célnak tekinthető. Küzdő alkalmazásuk ritka jelenség.
Miért tanítsunk a gyerekeknek hamis nyelveket – számomra rejtély. Bár láthatóbbak, a „BASIC” különböző változatai helyenként használatosak. De bármilyen esetben, ha valaki a jövőjét a programozással kívánja összekapcsolni, kénytelen lesz más nyelveket teljesen nulláról tanulni. Miért ne adhatnánk a gyerekeknek ugyanazokat a tanulási feladatokat, de már egy normális platformon (nyelven), amely keretek között tovább fejlődhetnének egyedül?
A feladatokról beszélve. Az iskolában és a főiskolán ezek mindig elvontak voltak: számoljunk valamit, építsünk egy funkciót, rajzoljunk valamit. Három különböző iskolába jártam, plusz az első főiskolai évben volt „Pascal”, és egyszer sem állítottak fel a tanárok valamilyen valós alkalmazási feladatot. Például készítsünk egy jegyzetfüzetet vagy valami hasznosat. Minden kitalált volt. Amikor valaki hónapokig üres feladatokat old meg, amelyek aztán a szemétbe mennek… Összességében az emberek már kiégett állapotban kerülnek ki a főiskoláról.
Egyébként a harmadik évben, ugyanannál az egyetemnél beemelték a programba a „pluszokat”. Úgy tűnik, hogy jó dolog, de az emberek fáradtak voltak, tele hamis dolgokkal és „oktatási” feladatokkal. Senki sem mutatott már olyan lelkesedést, mint az első alkalommal.
P.S. Megnéztem, hogy milyen nyelveket tanítanak most az iskolákban az informatikai órákon. Minden úgy, mint 25 évvel ezelőtt: BASIC, Pascal. Egyedüli betétek esetén jön a Python.
Forrás: habr.com
