P 조금 о ceea ce a însemnat „informatica” școlară în anii '90 și de ce toți programatorii de atunci erau exlusiv autodidacți.

Pe ce învățau copiii să programeze
La începutul anilor '90, școlile din Moscova au început să echipeze selectiv sălile cu calculatoare. Fereastra era împrejmuită cu grilaje și ușa era grea, acoperită cu metal. Întotdeauna apărea un profesor de informatică (care părea cel mai important după director), a cărui sarcină principală era să se asigure că nimeni nu atingea nimic. NIMIC. Chiar și ușa de intrare.
În săli, cele mai frecvente erau sistemele BK-0010 (în toate variantele sale) și BK-0011M.

Fotografie preluată
Copiii învățau despre structura generală a unui sistem, dar și câteva zeci de comenzi „BASIC” pentru a putea desena linii și cercuri pe ecran. Pentru clasele mici și medii, probabil că aceasta era suficient.
Exista totuși probleme cu salvarea creațiilor lor (programelor). De cele mai multe ori, calculatoarele erau conectate într-o rețea cu topologia „bus comun” și o viteză de transfer de 57600 baudi, utilizând controlere monokanale. De regulă, era un singur dischetar, care adesea nu funcționa bine. Uneori mergea, alteori nu, rețeaua se bloca, iar discheta nu era citită.
Atunci, purtam cu mine această minunăție cu un spațiu de 360 kB.

Șansele să scot din nou programul meu de pe ea erau de aproximativ 50-70%.
Cu toate acestea, principala problemă a tuturor acestor povești cu calculatoarele „BK” erau blocările infinite.
Acestea se puteau întâmpla în orice moment, fie la scrierea codului, fie la execuția programului. O rețea blocată însemna că cele 45 de minute de timp au fost pierdute, deoarece trebuia să refaci totul de la capăt, dar nu mai exista timp suficient pentru a face asta în durata rămasă a lecției.
Spre 1993, în anumite școli și licee apăreau săli normale cu computere 286, iar în unele locuri erau chiar și „trei”. În ceea ce privește limbajele de programare, existau două opțiuni: acolo unde se încheia „BASIC”, începea „Turbo Pascal”.
Programarea în „Turbo Pascal” pe baza „tankurilor”
La „Pascal”, copiii învățau să construiască bucle, să deseneze tot felul de funcții, să lucreze cu array-uri. La liceul de fizică și matematică, unde am petrecut o vreme, se alocau o oră pe săptămână pentru informatică. Și timp de doi ani, acolo a fost o plictiseală totală. Desigur, mi-aș fi dorit să fac ceva mai serios decât să afișez valorile unui array sau ale unei sinusoide.
Tanchiki
Battle City a fost unul dintre cele mai populare jocuri pe consolele clone NES (Dendy și altele).

În 1996, popularitatea consolelor de 8 biți a trecut, acestea zăceau de mult în dulapuri, iar mie mi s-a părut interesant să fac un clone al „Tanchiki” pentru PC. În continuare, voi vorbi despre cum era nevoie să te descurci pentru a crea ceva cu grafică, mouse și sunet în „Pascal”.

Poți desena doar bețe și cercuri
Să începem cu grafica.

În varianta de bază, „Pascal” permitea desenarea unor figuri, umplerea și definirea culorilor pixelilor. Cele mai avansate proceduri din modulul Graph, care ne apropie de sprite-uri, sunt GetImage și PutImage. Cu ajutorul acestora, puteai captura într-o zonă de memorie rezervată o porțiune din ecran și apoi folosi acest fragment ca o imagine raster. Cu alte cuvinte, dacă dorești să folosești repetat pe ecran anumite elemente sau imagini, le desenezi mai întâi, le copiezi în memorie, ștergi ecranul, desenezi următorul element și tot așa, până creezi biblioteca dorită în memorie. Deoarece totul se întâmplă rapid, utilizatorul acestor trucuri nu observă nimic.
Primul modul în care au fost folosite sprite-urile – editorul de hărți.

În el era un câmp de joc marcat. Clickul cu mouse-ul deschidea un meniu unde se putea alege una dintre cele patru opțiuni de obstacole. Apropo de mouse…
Mouse-ul – acesta este deja sfârșitul anilor '90
Desigur, toată lumea avea mouse-uri, dar până la mijlocul anilor '90, acestea erau folosite doar în Windows 3.11, pachete grafice și un număr mic de jocuri. În Wolf și Doom jucai doar cu tastatura. De asemenea, în mediul DOS, mouse-ul nu era foarte necesar. De aceea, modulul de lucru cu mouse-ul din Borland nu era inclus în standard. Trebuia să-l cauți la cunoscuți, care se ridicau din umeri și exclamau „dar de ce ai nevoie de el?”.
Cu toate acestea, găsirea unui modul pentru interogarea mouse-ului este doar jumătate din problemă. Pentru a face clic cu mouse-ul pe butoanele de pe ecran, acestea trebuie desenate. În plus, trebuie să existe două variante (apăsat și neapăsat). La butonul neapăsat, partea de sus este luminoasă, iar dedesubt este umbra. La butonul apăsat, din contră. Și trebuie să le redimensionezi pe ecran de trei ori (neapăsat, apăsat, apoi din nou neapăsat). Plus, nu uitați să setați întârzieri pentru afișare și să ascundeți cursorul.

De exemplu, procesarea meniului principal în cod arăta așa:

Sunet – doar un buzzer PC Speaker
O poveste separată este sunetul. La începutul anilor '90, clonele Sound Blaster abia începeau să își facă apariția, iar majoritatea aplicațiilor funcționau doar cu difuzorul încorporat. Maximul capacităților sale – este redarea simultană a unui singur ton. Și exact acest lucru permitea Turbo Pascal. Prin procedura sound se putea «ciocăni» cu frecvențe diferite, ceea ce era suficient pentru sunetele de împușcături și explosion, dar pentru o melodie de fundal, așa cum era la modă atunci, asta nu se potrivea. În cele din urmă, s-a găsit o soluție destul de ingenioasă: în arhiva noastră de software a fost descoperit un «executable», descărcat cândva de pe o BBS. Acesta era capabil să facă minuni – să redea wav-uri necomprimate prin PC Speaker, făcând asta din linia de comandă și fără a avea o interfață propriu-zisă. Tot ce era necesar era să-l apelăm prin procedura Pascal exec și să ne asigurăm că această construcție nu se prăbușește.
În cele din urmă, muzica energică a apărut pe fundal, dar cu ea a ieșit o situație amuzantă. În 1996, aveam un sistem pe Pentium 75, overclockat la 90. Pe el, totul funcționa perfect. La universitate, însă, unde pe semestrul doi ne-au pus Pascal, în sala de clasă erau „trăsniți” care au văzut multe. Conform înțelegerii cu profesorul, am adus aceste tankuri la a două sesiune, pentru a obține o aprobată și a nu mai merge acolo. Și iată, după pornire, din difuzor a început să răsune un țipăt zgomotos amestecat cu sunete gâtleje bulgăitoare. În general, „trăsnita” de 33 MHz nu a putut să ruleze corect acel „executable”. Dar în rest, totul era în regulă. Desigur, exceptând întârzierea la interogarea tastaturii, care strica întreaga experiență de joc, indiferent de performanța PC-ului.

Dar problema principală nu este în «Pascal»
În opinia mea, „Tanchiki” este maximul pe care l-am putut obține din Turbo Pascal fără inserții de asamblare. Printre dezavantajele evidente ale produsului final se numără: întârzierea în citirea tastaturii și redarea lentă a graficii. Situația era agravată de numărul extrem de mic de biblioteci și module externe. Acestea puteau fi numărate pe degetele unei singure mâini.
Dar cel mai mult mă descuraja abordarea din educația școlară. La acea vreme, copiilor nu li se vorbea despre avantajele și oportunitățile altor limbaje. La ore, se începea aproape imediat să se vorbească despre begin, println și if, ceea ce îi priva pe elevi de o învățare mai diversificată. Ambele limbaje pot fi considerate strict educaționale. Utilizarea lor „în luptă” este un fenomen rar.
De ce să-i învățăm pe copii limbaje false – este o enigmă pentru mine. Să fie ele mai vizuale. Să existe variante de „BASIC” folosite în unele locuri. Totuși, în orice caz, dacă o persoană își propune să își construiască viitorul în programare, va trebui să învețe de la zero alte limbaje. De ce să nu li se ofere copiilor aceleași sarcini educaționale, dar pe o platformă (limbaj) normală, în cadrul căreia să se poată dezvolta ulterior de unul singur?
Apropo de sarcini. La școală și la universitate, acestea au fost întotdeauna abstracte: să calculeze ceva, să construiască o funcție, să deseneze ceva. Am studiat în trei școli diferite, plus că am avut „Pascal” în primul an de universitate și niciodată profesorii nu au pus o sarcină aplicată realistă. De exemplu, să facă un carnet de adrese sau altceva util. Totul a fost forțat. Și când o persoană rezolvă luni de zile sarcini goale, care apoi ajung la coșul de gunoi… În general, oamenii ies din universitate deja epuizați.
Apropo, în anul trei la aceeași universitate, ne-au introdus „plusurile” în programă. Se părea că este un lucru bun, dar lumea era obosită, sătulă de falsuri și sarcini „educaționale”. Entuziasmul, ca la început, nu a mai fost observat la nimeni.
P.S. Am căutat pe internet ce limbaje se predau acum în școli la orele de informatică. Totul este la fel ca acum 25 de ani: Basic, Pascal. Cu câteva inserții sporadice de Python.
Sursa: habr.com
