
Ar yra toks dalykas kaip bevertė programavimo kalba? Man toks klausimas iškilo diskutuojant su Tadu apie Pascal programavimo kalbos naudojimą mokyklose mokinant programavimo pagrindų.
Negi Pascal per daug bloga mokintis programavimo pradmenis? Sukurta dar 1970 kaip lengva programavimo kalba skatinanti struktūrinį programavimą iki mūsų dienų ji atkeliavo Objektinio Paskalio pavidalu, kurio geriausiai žinomas kompiliatorius yra CodeGear Delphi, naudojamas 1.75 milijono programuotojų visame pasaulyje. Beje, visi norintys pabandyti Delphi gali parsisiųsti ir kurti programas su visiškai legalia ir nemokama TurboDelphi versija.
Paskalis turi keletą svarbių savybių, itin aktualių pradedančiajam:
- Kintamieji privalo būti aprašomi procedūros ar funkcijos pradžioje, todėl niekada nepasimesi kur koks kintamasi galioja;
- Begin-End blogai išryškina ciklų ar sąlyginių sakinių pradžias ir pabaigas;
- Prieš paleidžiant programa turi būti sukompiliuota, kas sumažina programavimo klaidų skaičių;
Atrodytų smulkmenos ir patyrusiam programuotojui 1 ir 2 yra nepatogumas, o 3 tampa savaime suprantamu dalyku, pradedančiajam suteikia aiškumo: „A! Čia Begin, reiškias pradedam kažką, čia End – ciklo pabaiga.“ Man iki šiol C stiliaus programavimo kalbos atrodo tokios… retos, kur daugiau tuščių eilučių ir tarpo simbolių nei paties kodo.
Jei ne Pascal, tuomet ką pasirinkti mokinant programavimo pagrindus?
C++ ? Užmušite bet kokį domėjimąsi programavimu, jei pradėsite aiškinti apie pointerius, adresus, referencus ir tai, kad sukurtą pointerį reikia vėliau sunaikinti. Nepamirškime paminėti, kad String iš tiesų yra klasė ir jai operatorius + yra overloadintas…
Ruby/Java/Python? Vien tam kad paleistum pirmąją „Hello World“ programą nieko nenutuokiančiams apie programavimą mokinukams pirmiausia reikės išaiškinti, kas yra klasė, kad kažkuri klasė gali būti statinė ir turėti Main metodą ir jau tada į tą metodą galima rašyti savo std.out(„Hello World!“). Oj, palaukite, o kaip tą programą paleisti?.. Kokia ten komandinė eilutė?
„c:\Program Files\Java\jdk1.6.0_03\bin\java.exe“ -cp src\;helloworld.jar com.MyFirstSample“
Čia be kompiliavimo komandinės eilutės, beje… Yep, pats tas humanitarui dešimtokui…
C#? Greitai galima pasiklysti tarp visų namespace ir ką jie daro, todėl prieš tai mokytojai turėtu pravesti metus trunkančia jų apžvalgą. Iš esmės, .NET su C# galėtų būti pakaitalas Pascal, bet negi dabar imsim perrašinėti visus vadovėlius vien dėl to kad norim tapti modernūs? Pradedančiajam C# bus per daug sudėtinga vien dėl 100% objektiškumo.
PHP? Nebent mokinti programuoti webui, bet prieš tai dar reiks paaiškinti kas tai yra web serveris, Apache, virtualios direktorijos, POST ir GET metodai… Mokiniui apibendrintame programavimo kurse tikrai to reikia?
Tai visgi gal liekam prie Pascal?
program Labas;
begin
WriteLn("Labas pasauli!");
end.
Tada Ctrl + F9 Paskal’io redaktoriuje ir nuspaudę F5 iš karto matome norimą rezultatą.
Mokykloje ar universitete dar nei vienas neišmoko programuoti taip, kad daugiau niekada nereiktų mokintis papildomai. Mokymo įstaigoje galima gauti tik pradmenis ir jų pagalba atrandi susidomėjimą programavimu arba ne. Lygiai taip pat jei mokintumėtės fizikos ir imtumėte reikalauti kiekvienoje mokykloje naujausios laboratorinės įrangos, nes, mat, senoji dar iš 1960-ųjų jau visai atgyveno ir nebelygis su ja mokintis.
Programavimo kalbos atsiranda ir palengva išnyksta jas pakeičiant naujesnėmis, tobulesnėmis ir patogesnėmis. Kiekviena jų atspindi sukūrimo laikotarpiu naudotas technologijas, programavimo metodus, idėjas ir paskirtį. Jegu atsiranda naujų programavimo kalbų ar senosios tampa visiškai bevertės? Tik ne Pascal, nes ji iki šiol puikiai atlieka savo paskirtį: mokina programavimo.