Blogity blog blog


Serialas: mokykla. Trečioji serija.

2008-07-31, rtfb

Pirmoji šio serialo serija čia, antroji čia.

Ar svarbu turėti debugerį? Kokiomis aplinkybėmis?

“O mein Gott! Kas čia per klausimas! Kaip gi galima programuoti be debugerio?!”

Bla bla. Ne apie programavimą kalbam. O apie vidurinę mokyklą. Ten niekas neprogramuoja, ten žmonės mokosi. Mokosi rašyti paprastas programas. Jas rašo ir skaito tik autoriai ir mokytojai. Jos yra tuoj pat išmetamos. Jos yra mažos.

Nematau kaip debugeris čia galėtų padaryti juntamą įtaką. Ypač jeigu vaikams yra paaiškinami kiti būdai ieškoti klaidų, iš kurių svarbiausias -- introspekcinis print.

Dar vienas akmuo į debugerio daržą -- vėl, interpretatorius. Kai kas nors negero įvyksta su interpretuojama programa, padorus interpretatorius parodys ir steką, ir kintamųjų reikšmes. O tai yra du trečdaliai to, ką aš, profesionalas, pirmiausiai noriu matyti, kai įsijungiu debugerį. Kam moksleiviui daugiau?

Taigi, debugeris lemiamos rolės negroja.

Dinaminis ar statinis tipizavimas?

Mane labai stebina kai kurių žmonių fobija dinamiškai tipizuotoms kalboms ir jų taikymui mokykloje. Žmonės sugeba pareikšti, kad vaikas gali pradėti painioti kur 3, o kur “3”. Arba, dar geriau, paporina, kad statiškai tipizuotose kalbose, atsiprašant, “anksčiau” sužinoma apie vienokį ar kitokį tipų nesuderinamumą.

  1. Jeigu painiojami literalai, jie painiojami spausdinant programos kodą. Tai niekaip nesusiję su tuo, kaip tipizuota kalba. Painiojo Python’e, supainios ir Paskalyje. Painiojo C, supainios ir JavaScript’e. Aš, beje, būdamas Lispo pradinukas iki šiol kartais pripainioju kur reikia (quote), o kur nereikia.
  2. Mokykloje rašomos programos yra mažos ir vienatikslės. Netgi olimpiadiniuose uždaviniuose vienas “test run’as” apima praktiškai visus kodo kelius. Tad nėra jokio skirtumo ar tipų nesuderinamumą randa kompiliatorius, ar vykdymo mechanizmas. Nereikia net unit testų.

Nėra skirtumo!

Kalbos lituanizavimas.

Kai EuroPython’2007 Guido pasakė, kad Python 3000 bus galima kintamuosius vadinti bet kuria kalba, vieni žmonės sutiko šią žinią aplodismentais, kiti šaltai. Aš buvau prie pastarųjų. Dėl to, kad šia tema mane drasko dvejonės.

Viena vertus, akivaizdu, kad iš šių trijų eilučių pirma yra gražiausia:

sąrašas = [1, 2, 3]     # (1)

sarasas = [1, 2, 3]     # (2)
listas  = [1, 2, 3]     # (3)

Kita vertus, neseniai parsisiunčiau vienos atvirojo kodo programos išeities tekstus. Išpakavau, pažiūrėjau į failus, vienas iš jų buvo pavadintas vokiškai. Pakvipo negeruoju. Netruko išaiškėti, kad kode esama angliškai pavadintų kintamųjų, esama ir vokiškai. Kai kurie komentarai angliški, kai kurie vokiški.

Nepaisant to, kad projektas mane iš principo domina, tokios betvarkės per akis pakanka, kad aš prie jo neprisiliesčiau. Ir neprisiliesiu.

Žiūrint toliau, kas jeigu tokia pati betvarkė komercinės įmonės kode? Ar norėtųsi dirbti tokioje kontoroje prie tokio kodo? Man ne.

Todėl aš atsargiai žiūriu į moksleivių skatinimą rašyti lietuvišką kodą. Vienas dalykas yra to nedrausti (juk transliatoriui vienodai šviečia, ar kintamasis pavadintas sarasas, ar list, ar x), o kitas dalykas skatinti. Juk paskui teks perauklėti!

Žinoma, mano nuogąstavimus pagrindžia tik tie moksleiviai, kurie vėliau taps programuotojais ir juos reikės atpratinti nuo mokykloje įgytų blogų įpročių. Tuo tarpu didžiąjai daliai moksleivių -- tai, kuriai programavimo pamokos bus tik susipažinimas, lietuvybės įvedimas tik palengvins supratimą, sumažins atgrasumą.

Tiesą pasakius, nežinau…

(Ne)Prisirišimas prie OS.

Manau, šitas punktas nekvescionuojamas. Apie jį papildomai rašyti būtų laiko švaistymas, prirašyta jau tiek ir šitiek. Pakaks paminėti, kad tai turi tokią pat svarbą, kaip ir kalbos komerciškumas. Kalbos realizacija turi būti pasiekiama bent keliose populiariose platformose, būtinai bent vienoje nemokamoje. Kad nekainuotų ir nekvaršintų galvos.

O jeigu kas turite argumentų prieš, pateikite juos šitam vaikui: “mano tėtė alchitektaš, il paš muš namuoše tik Mašintokai; Tulbo Paškališ nedilba” ;-)

Neprisirišimas būtinas. Ir į jį reikia atkreipti daug dėmesio.

Rytoj baigiam.

 
 
5 komentarai:

avatar

rtfb, o kaip dabar su kodo saugojimu? taip pat kaip su SMS? lietuviškas SMS du kartus trumpesnis už ‘lietuviska’?
lietuviški kintamieji nesuryja daugiau resursų diske? aš žinoma suvokiu kokios eilės tas padidėjimas standartinėje mokyklinėje programoje galėtų būti, ypač lyginant su viso HDD talpa. :D


avatar

Kaip su SMS, no idea. O su tekstu, UTF-8. Kas lietuvių kalbai reiškia kelių % padidėjimą: raidės su diakritikais užima po 2 baitus, kitos po vieną.

Ir be abejo, tu teisus. Makes no difference whatsoeva :-)

-rtfb


avatar

kol nepasidarai dydelis programeris, kurio harde be mp3 ir programinio kodo daugiau nieko nera… ir va tada tave is pasalu uzklumpa lituanizacija… ;)

o del SMS yra butent taip, kad SMS protokolas pakankamai iskastruotas, todel praleidzia 160 lotynisku raidziu. kai pradedi siusti spec simbolius (pvz lietuviskas raidas), tai SMS tas pats SMS pailgeja. rezultate ilgas lietuviskas SMS uzima 2 slotus, vietoj iprasto vieno ir todel apmokestinama dvigubai.

siaip cia pries pusmeti(?) buvo vejai pasikele, kad GSM provideriai eina pries EU politika ribodami SMS nacionaline kalba ir bla bla bla.


avatar

Na, disko kaina jau daug metų not an issue. Kažin ar nebus diskas pigiausias kompo komponentas (price/performance).

Tuo tarpu SMS -- nesusijusi, bet įdomi tema :-). Ir ten prapučiamų baitų kiekis vis dar aktualus.

-rtfb


avatar

Yra žmonių (aš nesu vienas jų), kurie mano, jog prastepinti su debugeriu kodą yra labai svarbus žingsnis, leidžiantis gerai suprasti, ką ir kaip tas kodas daro.


Mano nacis spam-filtras visus laiko botais.
Išspręskite šitą captcha jeigu jūs ne toks:

9 + 5 =