Sunderlandi Sõnumid

Šokolaadikarva majad ja igavene sügis.


pühapäev, märts 12, 2006

Paradigma ja diskursus

Istume õppivate agentide loengus, Valentina seletab. Äkitselt näen temas midagi väga tuttavlikku, ja sama kiirelt on see ka kadunud. Tesavüü? Kuulan edasi, konspekteerin, mõtlen kaasa. Inglastel tundub olevat natuke ebameeldiv kuulata tema väga tugevat aktsenti. Mitte selle pärast, et neil on raske aru saada, vaid selle pärast, kuidas nad kuulevad oma keelt vägistatavat. Mulle on selline mulje jäänud. Ja jälle, midagi väga tuttavat Valentina näos. Siis tabasin ka ära, samasugust laia naeratust kannab tihtipeale Tiina Meeri. Tegelikult pole neil peale selle naeratuse mitte midagi ühist. Või noh, mõlemad tegelevad õpetamisega. Nii et peale selle naeratuse ja õpetamise pole neil midagi, no ja peale selle, et nad mõlemad on Ida-Euroopast. Ma usun, et Valentina on ikka Venemaa siinpoolsest otsast pärit. Et siis peale selle naeratuse ja õpetamise ja Ida-Euroopa päritolu pole neil ühist midagi.

Räägin veel ühest õppejõust - Peter Dunne ja evolutsioonilised arvutused. Ainest niipalju, et räägitakse seal geneetilistest algoritmidest ja muust säärasest, jällegi on see kõik loodusest inspireeritud. Õppejõud on muhe habemik, tundus natuke sellise vanakooli häkkeri moodi. Seda tunnet tekitas asjaolu, et peale ainesse sissejuhatuse tegemist veetis ta vähemalt pool tundi põhjendades, miks ta sel aastal praksides kasutatavaks keeleks just OCamli valis. OCaml on laiematele ringidele üsna tundmatu keel, oma olemuselt on ta korraga funktsionaalne ja objektorienteeritud. Sõna "funktsionaalne" ei tähenda programmeerimiskeelte diskursuses mitte seda, et keel on millekski kasulik (sest kõik keeled on ju millekski kasulikud, seega puudub sedasorti mõiste järgi vajadus), vaid seda, et funktsioonide argumentideks ja väärtusteks on samuti funktsioonid. Üritan seda näite varal selgitada:

Olgu meil funktsioon aste, mis saab sisse kaks arvu X ja Y ja mille väärtuseks on Xndas astmes Y (ehk Y astmes X). Teisisõnu (või teisimärke) aste X Y = YX. Siiani on kõik lihtne ja selge, funktsionaalses ja tavalises keeles vahet pole. Mis aga juhtub, kui kirjutada kuup = aste 3? Tavalises keeles öeldakse Syntax error ja sunnitakse programmeerijat viga parandama. Tavalises keeles on see nonsens, sest funktsioon aste nõuab kahte argumenti. Funktsionaalses keeles on see aga täiesti lubatud, selle tulemusena tekib uus ühemuutuja funktsioon kuup, mis saab sisse ühe arvu ja arvutab selle kolmanda astme. Ehk siis kuup Z = Z3.

Mõistet "objektorienteeritud" ei hakka ma siinkohal lahti seletama, see läheks liiga pikale. Ilmselt on see märk sellest, et ma ei ole päris täpselt pihta saanud, mis on asja tuum. Võib ka niipidi mõelda, et kuna ma olen objektorienteeritud paradigmas nii sees ning tunnen tema paljusid detaile, siis ei oska ma sealt seda vähest ja esmatähtsat välja tõsta. Mingisuguseid hämaraid lauseid võin ma välja mõelda, midagi stiilis: "Objekti kasutamise loogika ja tema sisemine loogika pluss objekti andmed on lahutamatud" võin ma siia kirjutada, aga ikka jääb mul tunne, et midagi jäi ütlemata, pealegi kahtlustan, et programmeerimisest kaugel seisvad inimesed ei saa sellest suurt tuhkagi aru. Siinkohal olekski paras paluda Sind, kallis lugeja, et kommenteeriksid, kumma paradigma kirjeldusest Sa paremini aru said?

Tagasi õppejõu juurde. Peter rääkis, et üle-eelmisel aastal oli ta kasutanud Matlabi. See on aga aeglane ja üldse mitte sellisteks asjadeks mõeldud. Väga hea on seal maatrikseid nikerdada ja statistikat teha, võib-olla veel üht-teist, aga käesolevas aines pole midagi säärast vaja. Lisaks toimuvad seal sellised asjad nagu dünaamiline skoopimine ja dünaamiline tüüpimine (ei hakka seletustega kallist lugejat vaevama), mis talle antud aine raames ei meeldi.

Järgmisel, ehk siis eelmisel aastal oli kasutusel Java. Mul isiklikult on natuke kahju, et Java ära langes, sest tunnen end seal väga koduselt, aga Peter põhjendas seda nii, et inimestel, kes ei tunne Javat ja objektorienteeritust on väga raske kohe hakkama saada, sest Javas on objektorienteerimata midagi asjalikku natuke raske teha.

Seejärel mõtles ta veel teistele keeltele. C++ talle ei meeldinud, sest seal on liiga palju vaja viitadega (pointeritega) jännata. Haskelli ja Pythoni, ja veel terve rea teisi keeli luges ta ette, ühelgi neist ei puudunud omad vead. Ei, OCaml ei ole ideaalne keel, tal on aga kaks suurt plussi. Esiteks on ta võrdlemisi lihtne. Seda ei oska ma ise kommenteerida, polnud temast varem suuremat kuulnud. See ongi teine suur pluss, keegi pole temast kuulnud, seega alustavad kõik praksis enam-vähem samalt pulgalt. Nagu Jaak ütles, tõepoolest, pedagoogiliselt hea nipp.

Novot, nii ta umbes rääkiski. Mees on muhe ja jutt oli iseenesest huvitav, aga natuke teemast mööda ja natuke liiga pikk. Umbes nagu minugi jutt siin praegu.

Lugejakirjad:

Anonymous Anonüümne:

Kallis kirjutaja, esimene matemaatikaasjandus oli minu ületöötand aju jaoks pikk ja segane, teine lühike ja segane. Eelistan viimast.

märts 13, 2006 7:40 PM  
Anonymous Anonüümne:

mulle ei meeldi, et Sa ei kasuta peale punkti tyhikut. aitäh!

märts 14, 2006 12:14 AM  
Anonymous Anonüümne:

Hee, ükskord, kui sa seleasid, sain ma peaaegu aru, misasi on objektorienteeritus (aga ma pole võimeline seda edasi seletama), seekord sain jällegi peaaegu aru, misasi on see funktsionaalsus. Kui sa veel üks kümme korda seletad, siis ma ehk lõpuks saan aru ka :D

märts 14, 2006 7:33 AM  
Anonymous Anonüümne:

Kallis tundmatu, julgen oma prillid panti panna, et Sverik kasutab alati ja igal pool mõnuga tühikut. Ilmselt on asi kujunduses.

märts 14, 2006 8:02 AM  
Blogger Sverik:

Tänan, kallis Kurnjauhka, Sul on sada protsenti õigus!

märts 14, 2006 11:34 AM  
Blogger lontu lõvikutsu:

class Isik implements Comparable {
private String nimi; ... }

(ja semiootik taob peaga vastu puud)

Kuidagi tuletas see astme asi mulle meelde rekursiooni, mida ma küll õieti kasutada ei oska hoolimata sellest, et see alles läbi käis.

märts 15, 2006 2:03 PM  
Blogger Veiko:

Ja tundmatutele veel seda, et enne kui viriseda tühiku suuruses punkti järel, tuleks viriseda iseenda kommentaaris selle üle, et suured tähed lausete alguses on millegipärast väikeseks jäänud. Selle kerge haiguse vastu aitab SHIFT nupp - see jäme nooleke üles.

märts 15, 2006 11:33 PM  
Blogger Sverik:

Ohoo, Java, mõnus. Õpid?

Antud näites ei ole tegemist rekursiooniga. Ükski funktsioon ei kutsu ju iseennast välja? Rekursiooni pärast pole mõtet muretseda, minul läks sellest aru saamiseks mitu aastat. Pealegi on ta ebaefektiivne, ja kõike, mida saab teha rekursiooniga, saab teha ka ilma. Kui just ei ole tegemist mingi keelega, kus saabki ainult funktsionaalselt programmeerida. Siis on rekursioon tihtipeale ainus lahendus. Mõnele hullule see meeldib, aga minu meelest on see kole ja hirmus. Java ja OOP on ikka palju ilusam.

Samas tahaksin avaldada tänu inimestele, kes töötavad minu ploogi paremaks muutmise nimel ja viitavad selles esinevatele vigadele. Samuti tänan teisi inimesi, kes mind nende esimeste inimeste eest oma kõnedega kaitsevad. Aitäh!

märts 16, 2006 9:35 AM  
Anonymous Anonüümne:

Jah. Võidelgem paremate ploogide ja ilusama emakeele nimel viimse süljepiisani!

märts 16, 2006 10:10 AM  
Blogger Sverik:

Just! Viimse bitini!

märts 16, 2006 11:09 AM  
Blogger lontu lõvikutsu:

Jah - see päis oli ühest OOPi neljanda klassi lihtsast ülesandest, mis juba kenasti väikese semiootik-ajaloolase aruga valmis tehtud, aga viies OOPi praks, kus ka esimene rekursiooni näide, on hullem pähkel. Aga murran oma ilusaid ja tugevaid terashambaid!

Ja tõesti - ilus eestikeel viimse bitini! Mitte seitsme bitises askiis, vaid õiges 16 bitises unicode's.

märts 16, 2006 7:44 PM  
Anonymous Anonüümne:

Liitun oma arvamustes Kurnjauhkaga. Aga miks mulle viimasel ajal tundub, et programmeerimine on Parnass ja progejad jumalad? Sellepärast, et see kõik humanitaari hämusele ajule nii kaugeks ja kättesaamatuks jääb?

märts 26, 2006 8:52 AM  
Anonymous Anonüümne:

Kui juba, siis juba - eesti keel (ja samuti ka kõik teised keeled) kirjutatakse LAHKU!

Ning tundmatule, et Sinu poolt kasutatud "y" asemel on meie tähestikus täht "ü".

jaanuar 02, 2008 11:02 PM  

Palun, võta ise sõna!