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ą.
- 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. - 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.
BigJ
2008-08-02 13:42
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