IT pole wussidele

Mai 30, 2006

Eks see ole ju kõigile teada, et IT alal töötavad ikka õiged mehed. Sellised karvased ja karused isased. Naisi kohtab ITis harva. Nende jaoks liiga karm töö.

Täna tuli kinnitust selle kohta kui karmiks võib elu koodi- ja juhtmedžunglites minna. Django nimelise veebiframeworki listis ilmus bugiraport pealkirjaga “Admin dies when foreign key added”.

Karm värk.

See neeger tagasi aktsioonis!


Kõik keeled imevad (TM)

Mai 29, 2006

Nii! 2 nädalat pikk puhkus (erakorraline, tervislikud põhjused) on läbi ja võib jälle julgelt kirjutama hakata. Teistel neegritel on jätkuvalt vist mingi mai-juuni deprekas – üks kaasneeger nüsis kuuldavasti veene, ebaõnnestunult.

Mida ma selle kahe nädala jooksul siis õppisin? Seda, et mõne ülesande jaoks pole ideaalset tööriista(programmeerimiskeelt) – ehk kõik keeled sakivad rohkemal või vähemal määral. On mahukas ja üliambitsioonikas ülesanne, mis üritab implementeerida päris mitut W3C spekki. Seda kuiva lugemismaterjali on kokku tuhandeid ja tuhandeid lehekülgi (yuk!). Antud juhul polegi see tegelikult oluline, mida see täpselt teeb.

Keeleks sai valitud Vana Hea (TM) C (Tegelikult ainult südamiku jaoks, sest kasutajaliidest on palju otstarbekam kirjutada mõnes OO keeles. Samuti on see erinevalt kasutajaliidesest suhtkoht platformist sõltumatu). Umbes 96KLOC juures tekkisid probleemid, kui oli vaja hakata implementeerida ühte IDLis kirjeldatud andmemudelit (kasutajaliidese sidumine südamikuga). Mudel on paraku disainitud sellise OO keele jaoks, mis toetab klassidele multiple inheritage’t – ehk on n interfeissi, mis kõik vajavad mingeid oma muutujaid ja funktsioone. C puhul tähendab see palju koodi dubleerimist ja nii tekib maintenance hell. C Preprocessor? Loomulikult on teoreetiliselt võimalik, aga pikad makrod sakivad üldiselt ja C ei ole eriti OO asjade jaoks mõeldud.

Proovisin järgmisena Obj-C keelt. Kuna Obj-C kood tõlgitakse enne kompileerimist Csse (praktiliselt veidi “kenam” preprocessor ja vajab tööks oma runtime library‘t), siis pole seda üldsegi keeruline C‘ga koos kasutada. Kuna soov oli olla platformist võimalikult sõltumatu, siis ei saanud olemasolevaid häirivalt bloated frameworke kasutada ja tuli ehitada oma juurklass (päris huvitav tegevus). Lihtne mäluhaldus ja reference counting. Üldsegi mitte keeruline. Võibolla oleks pidanud kohe tähelepanu pöörama sellele, et Obj-C ei toeta multiple inheritage‘t. Saab ainult klasse “täiendada” – ehk lisada/kirjutada üle olemasolevatel klassidel meetodeid. Uusi muutujaid ei saa lisada. Ja nüüd on sarnane probleem. Veidi lihtsam, kui C puhul, aga ikkagi. Millised on olulisemad klassid? Kumb panna alamklassiks? Lõppklasse on 60-70 ringis. Klass A implementeerib eri a interfeissi, B implementeerib eri b interfeissi, C implementeerib c eri interfeissi. A ja B puhul kattuvad ab interfeissi, B ja C puhul bc interfeissi jne. Tekib liiga keeruline süsteem, mida vähemalt minu mõistus ei võta. Lisaks tekivad klassinimedega konfliktid, sest Obj-C ei toeta nimeruume ja seetõttu tuleb igale klassile panna piisavalt unikaalne prefix. Ülisupermegakeerulise abstraktse juurklassi tegemine oleks ka veidi jabur nii, et tuli otsida paremat keelt.

Java? Nomaeitea… kui palju see Obj-C’st oma võimaluste pärast erinebki? Palju koodi vähe sisu. Negatiivsed emotsioonid getterite ja setterite kribamisest. C#? Nomaeitea… suht sarnased emotsioonid, mis Java puhulgi. Olemasoleva C koodiga suhtlemine on võimalik kuid “ebameeldiv”. Python? Ruby? Ma arvan, et mu arvuti pole nii võimas, et nende peale ehitatud suurt juppi jooksutada. Pascal? D? Ärge tehke nalja! Ahjaa, meil on ju olemas veel üks vinge kõrgtaseme keel – C++ !

Tuleb tunnistada, et C++ on ülivõimas keel. Igat asja on praktiliselt võimalik teha n eri viisil, kus n on alati suurem ühest. Template tugi, operaatorite ülelaadimine, nimeruumid, korduvalt mainitud multiple inheritage, STL, saab C’ga rahuldavalt läbi, märkimisväärselt kiirem kui Obj-C. C++ võimaluste rohkus ongi selle suurimaks miinuseks! Esimene probleem on, et millist subsetti keele võimalustest kasutada? Kasutada operaatorite ülelaadimist või vältida? Jne.

Lisaks on C++ kood äärmiselt kole ja minu jaoks suhteliselt mitteloetav/keeruline. Konstruktorite ees pole return tüüpi, sest see on alati void? Fain, aga ainuüksi see pisike detail tekitab pisut segadust. static_cast, dynamic_cast, reinterpret_cast, typeid, extern C, MingiTüüp& jne jne jne jne. Palju võimalusi, mille selgeks õppimine (“mastering”) võtab kaua aega. Klassidefinitsioonid on jubedad. STL lööb näkku. Keerulisem mäluhaldus? Reference count‘imist/resursside jagamist saab implementeerida mitmel eri viisil, mis kõik pole eriti ilusad ja on ilmselgete puudujääkidega. “Gurud” ise tunnistavad ka seda ja soovitavad läheneda igale taolisele case‘le eraldi. STL‘i sakkimine tuleb siinkohal eriti hästi välja.

Olen kuulnud, et millegi mõistliku tegemiseks C++’s on vaja vähemalt 3 aastast kogemust. Mul ei ole nii palju aega! Unlearning C pole ka nii lihtne. Järeldus: C++ on värdkeel ja ma olen jälle alguses tagasi. : (

PS! Väike tähelepanek seoses IDL’ga. Otsides sattusin sellise organisatsiooni kodukale, kust vähe hiljem leidsin järgneva C++ reakese: “using namespace WTF;”.


Neeger on hõivatud,

Mai 23, 2006

… sest neeger vaatab popkorni saatel äriinimeste närvitsemist. Kui ikka tuhanded ja tuhanded kroonid haihtuvad paari päevaga, siis njah… päris kurb. Tegelikult vist mitte, sest ise börsil ei mängi ja pensionisambaks on maarjakask.

Või peaks ikkagi paanikas ringi jooksma/püksirihma koomale tõmbama? LHV:

Arenevate turgude aktsiad langesid 22. mail kümnendat päeva järjest. Tegu on pikima järjestikuse langusega viimase 8 aasta jooksul – kusjuures isegi tehnoloogia mulli lõhkemine 2000. aastal ei avaldanud niivõrd suurt pidevat negatiivset mõju arenevatele turgudele, kui praegune olukord.

PS! Kas see tobe kinnisvaramull ka kunagi lõhkeb?


Tõde Playtech Academy kohta?

Mai 18, 2006

Järgnev on küll puhas spekulatsioon, aga tundub täiesti võimalik.

Kellele on Playtech Academy tegelikult mõeldud? Arvan, et ma polnud ainus, kelle peas see küsimus tekkis. Aga mida väidavad korraldajad ise? Tsiteerin:

Playtech Estonia koolitusjuhi Kaie Jõeveeri sõnul on firma tasuta suvekoolitus suunatud vähese või puuduva töökogemusega IT-eriala lõpetanutele.

Huvitav… Kust küll võib leida selliseid inimesi? Eriti arvestades, et päris mitmed IT tudengid lähevad juba esimeselt kursuselt tööle. Kui inimene on juba mõne IT eriala lõpetanud, aga sellegipoolest ei suuda endale tööd leida(miks küll?), siis ma arvan too inimene ei vääri seda paberit või haridusasutus oma nime. Tundub jama põhjendus või ka mitte?

Tegelikult eksisteerib siiski üks koht, kust võib leida nendele kriteeriumitele vastavat toormaterjali. Ülikool. Täpsemalt need, kes on otsustanud oma elu siduda ülikooliga. Ehk siis mitmed magistrandid, doktorandid ja kooli enda IT töötajad.

Peale tänast Playtech Estonia koolitusjuhi kirja ühe haridusasutuse siselisti, mille liikmed on enamasti ülikooliga lähemalt seotud inimesed (magistrandid+, kooli töötajad) ei tundugi see mõte nii jabur. Kiri ise sisaldas minu arvates ka keskmisest naljakamaid/segasemaid lauseid. Näiteks:

Just Sinu jaoks oleme loonud Playtech Academy – pakume innukatele kuid vähese töökogemusega IT-spetsialistidele äärmiselt kõrgetasemelisi praktilisi kursusi rahvusvaheliste tippspetsialistide juhendamisel.

Samuti kutsutakse listi liikmeid 24ndal mail toimuvale infotunnile. Huvitav on asja juures see, et samasugust kirja pole saadetud antud asutuse üldisematesse listidesse.

Nagu Taavi Kotka kunagi ütles, et töötajaid ei lööda üle nendelt ettevõtetelt, kellega on kokkulepped, aga teised pole selle eest kaitstud. Ülikoolidel puuduvad arvatavasti taolised kokkulepped ja neil on ka palgad madalamad, kui erafirmades ning juba pikemat aega on neil terav kaadripuudus. Magistriõppesse läheb kohati edasi nii vähe bakalaureusekraadi omanikke, et ei suudeta täita isegi riigieelarvelisi kohti!

Teine küsimus on muidugi see, et kas see on ikka hea mõte? Teatavasti ei oska teoreetikud oma teadmisi praktikas eriti edukalt rakendada ja IT kõrghariduse kvaliteet langeb veelgi.

Kas Playtech Academy eesmärgid polegi nii üllad, kui avalikult reklaamitakse? Olukorrast tööturul?


Egotropp

Mai 15, 2006

Juhtusin lugema ühte tänast minuti artiklit ning otsustasin ka ennast proovile panna ja muuseas paar CV kaunistust hankida. Võtsin alustuseks C# ette:

C# Fundamentals
Score: 3.81
Percentile: Scored higher than 84% of previous examinees
 
Demonstrates a clear understanding of many advanced concepts within this topic. Appears capable of mentoring others on most projects in this area.
Strong Areas

  • Grammar
  • Type Members
  • Delegates
  • Classes and Interfaces
  • Methods
Weak Areas

  • Type System

Ah noh, käib küll, sest ega ma ju seda eriti oska ikka küll. Mõtlesin, et proovin hoopis midagi lihtsamat:

C
Score: 3.34
Percentile: Scored higher than 80% of previous examinees

 

Demonstrates a solid understanding of core concepts within this topic. Appears capable of working on most projects in this area with moderate assistance. May require some initial assistance with advanced concepts, however.
Strong Areas

  • Pointers
  • Input/Output
Weak Areas

  • Functions
  • Arrays
  • C Expressions

May require some initial assistance with advanced concepts, however??? Pisar pisar pisar. Brainbench for life! : (


XML kui imerohi

Mai 12, 2006

Oli vaja testida mõningaid tänapäevaseid veebiprogemise lahendusi. Eigo mainis, et tema teeb enamasti Zope 2′ga veebi ja pidavat täitsa asjalik olema. Mõtlesin, et uurin toda asja. Võtsin siis stabiilseks kuulutatud Zope 3 kätte, (uus versioon, et moodne olla) otsisin tutoriali ning hakkasin käpad küljes tegema.

Tegu oli tüüpilise Rails’ist inspireeritud todo-nimekirja tutorialiga. Koosnes see viiest osast.

  1. Teeme paar Pythoni klassi. Sisse on toodud interfeissiklasside mõiste, mis nagu väga mõttetu ei tundugi. Peale vaadates on hea, lihtne ja loogiline. Selle sammu lõpus autor hõiskab: And that’s it. Really! Now what needs to be done next is to wire these into Zope 3. But already, one can see that this is much simpler than what one might have to do to write some data objects for Zope 2.
  2. Progeme kõvasti XMLi, et asja tööle saada.
  3. Progeme kõvasti XMLi, et asja tööle saada.
  4. Progeme kõvasti XMLi, et asja tööle saada. Muuhulgas ka Zope’i template’i keelt ja CSSi, mis on tegelt mõnus vaheldus.
  5. Suur hunnik over-engineeritud APIdega Pythoni progemist, et funktsionaalsust lisada ja veel suurem hunnik XMLi, et see kõik kokku panna.

Maitia. Millalgi oli jube probleem selle üle, et developerid ei suutnud korraga mõelda OO-paradigmas ja Relational-paradigmas. Isegi eraldi nimi sai sellele probleemile välja mõeldud. Too probleem sai enam-vähem lahendatud igast Hibernate’ide, SQLObjectite ja SQLAlchemy’tega.

Aga sellest pole mõned mehed veel aru saanud, et XML ei ole programmeerimiskeel ja et ülipaindlike süsteemide ehitamine on 99% aja kulutamine 1% juhtude peale.

Muide, “Hello World!” Zope 3’s on: 5 faili, 4 klassi, 31 rida väga õhulist koodi, 1 koodifail, 58 rida XMLi.

Järgmine framework, palun!


Playtech Academy

Mai 11, 2006

Alles see oli kui Webmedia kuulutas välja järjekordse Suvepraktika. Loomulikult ei saanud Playtech neegrite otsimise rallil maha jääda, ja nüüd on Playtech'il vastu pakkuda Playtech Academy:

"Igal osalejal on võimalik kolmekuulise õppeprogrammi käigus omapoolsete kuludeta omandada suurepärane väljaõpe, mis omakorda võimaldab head tööpositsiooni Playtechis. Kursuse läbinud spetsialistidele tehakse Playtechi poolt tööpakkumisi lähtuvalt osalejate huvidest ja oskustest, ent kursusel osalemine ei kohusta osalejat automaatselt Playtechis jätkama."

Juhhuu!


Amadeus Algjava Revüü vol 2

Mai 9, 2006

Janeki arvamust professor Kiho geniaalse Amadeus Algjava kohta võib leida siit ja siit. Mõtlesin, et proovin ise ka järgi millega tegu on.

Kuni tänaseni polnud ma asja ise testinud. Idee tundus muidu täiesti mõistlik. Teeme abiratastega Java, siis saab lihtsamalt ja kiiremalt enterprais-neegreid toota. Teostus on aga midagi täiesti erinevat…

Kõigepealt juhin tähelepanu sellele, et Amadeus Algjava näol ei ole tegu mingi koolilapse progetud junniga. Tegu on Tartu Ülikooli arvutiteaduse professori pikaajalise arendustöö käigus sündinud õppevahendiga. Teiseks, tegu ei ole mingisuguse pre-alpha versiooniga, loemind.txt annab build’i numbriks 60508.

Niisiis, probleemidest.

Kasutajaliides ei ole kasutatav. Menüüsid on lademes ja menüüdes olevad eestikeelsed kirjed on suuresti professor Kiho omalooming. See “togimine” tekitas minus erilist hämmingut. Togimise tulemusel ei tundunud mitte midagi juhtuvat. Väikse pusimise peale leidsin ma lõpuks üles menüüst “Erisoovid” valiku “Kohastus”, mis lubas mul keele inglise keelseks teha. Sain lõpuks midagi aru isegi.

Pannes Amadeus Algjava (nimi on jube) käima hüppavad ette kolm akent. Üks sisaldab midagi krüptilist. Ma arvan, et tegu on hierarhilise ikoonidega logiga, kuigi ma pole päris kindel. Siis on üks pisike aken, mis on vist koodi sisestamiseks, ja teine pirakas aken, mis on tühi, aga sisaldab teksti “projekt: määramata”.

Valik “salvestamine” on kogu aeg igal pool hall ja mittevalitav. Abitekstides on kirjas, et programmi käivitamiseks tuleb see salvestada. Vaatasin siis näiteprogramme ja neid ma ka salvestada ei saanud. Ma ei tea, kuidagi imelik.

Professor Kiho on võtnud enda vaevaks ka tüüpilise kasutajaliidese paradigma muutmise tutvustades rohkelt uusi interaktsioonimeetodeid. Näiteks: “Projekti aknas programmi nimel kolmekordne vasak hiireklõps avab programmmi.” Sel mehel ei hakka kunagi igav.

Maineprobleemid. Nagu ennist mainisin on tegu ühe ülikooliprofessori pikaajalise tööga ja see on tehtud eesmärgiga paremini õpilasi progema õpetada. See pikaajaline tõenäoliselt ülikooli rahadega tehtud töö on saast. Esimese aasta tudengid teevad parema kvaliteediga tarkvara OOPi kursusel.

Tema enda kodulehelt: “Professor for Software Systems, I am currently teaching advanced programming-related subjects (Programming, Algorithms and Data Structures, Software Engineering).”

Kasutusprobleemid. Hiljuti tuli päevakorda Programmeerimise kursuse reformimine. Praegu õpetatakse kõigile Javat. Ka statistikutele, matemaatikutele, füüsikutele ja keemikutele. Mida Javaga reaalselt maailmas tehakse? Noh, enamasti siiski enterprais-süsteeme suurfirmadele ja suurfirmades.

Kui see Algjava totaalselt ümber kirjutada, näiteks mõne andeka esimese kursuse tudengi poolt, siis võib temast isegi asja saada Java õpetamiseks. Saaksid Tartu suurfirmad omale odavaid Java progejaid küll ja küll. Kuid samas ei lahenda Algjava teist probleemi: oma algkoolituse Algjavas (ega Javas) saanud IT’le mittespetsialiseeruv tudeng ei hakka seda ju ometi tulevikus oma koolitöö tarvis kasutama.

Või kujutab keegi ette näiteks olukorda kus magistriõppes oleval füüsikul on vaja arvutada mingi planeedi orbiiti või mida iganes ning ta käivitab selleks Algjava? Loodan, et mitte.

Kokkuvõtteks. Kuna mul on tõsiselt hetkel palju paremaid ja asjalikumaid asju teha, siis ma ei hakka rohkem kirjutama. Võtan aga kiirelt kokku oma muljed:

  • Algjava kasutajaliides ei ole kasutatav ja teeb programmeerimise vaid keerulisemaks.
  • Algjava kvaliteet on olematu.
  • Arvestades, et Algjavat võidakse hakata kasutama programmeerimise algõppes ning seda inimeste peal, kes pole varem progenud ega hakka tulevikus seda edasi õppima, siis… Minu kaastunne teile.
  • Algjava ei ole praktiline lähenemine. Raske on ette kujutada, et keegi hakkaks tulevikus oma bakatööd näiteks Algjavas progema.

Ülikooliskaalal annaks hindeks F, aga arvestades, et ülikoolis saab tüüpiliselt F’i vaid see, kes mitte midagi ei teinud, siis annaks E. Noh, kvaliteet on alla igasugust arvestust, aga inimene nägi vaeva ikkagi! Kuidas ma ta läbi kukutan? :(


Amadeus Algjava Revüü vol 1

Mai 9, 2006

Otsustan oma tavapärase lõunapausi ajal katsetada suurepärast Amadeus Algjava’t (vers. 60508) ja jagada veidi muljeid.

Kõigepealt lugesin veelkord läbi sissejuhatava teksti, kus on kirjas, et nimetet rakendustarkvara töötab hetkel vist ainult operatsioonisüsteemis Windows. Edaspidi ka Linuxi ja Solarise all. Nojah, mul on siin mingi eriti ebakompatiibel Mac OS X 10.4 ja ma arvasin, et Java on platformist sõltumatu. Aga ega see mind ei heidutanud ja suunasin internetilehitseja ikkagi allalaadimislehele. Laisa inimesena ei viitsinud kohe detailseid instruktsioone lugeda ja tegin täpselt nagu allalaadimislehel kirjas:

After downloading, run java -jar AlgJavaStarter.jar

Okei!

kompu:~/Desktop janek$ java -jar AlgJavaStarter.jar
AlgJavaStarter:user.dir=/Users/janek/Desktop
AlgJavaStarter: READING . . . .
AlgJavaStarter: OK: File http://www.cs.ut.ee/~kiho/Amadeus_AlgJava/updateInfo.txt read.
AlgJavaStarter: OK: File /Users/janek/Desktop/Amadeus.properties created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/demo/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/gif/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/macros/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/models/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/Portfolio/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/temp/ created.
AlgJavaStarter: OK: Folder /Users/janek/Desktop/workspace/ created.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/./Amadeus_AlgJava.jar copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/./runMain.bat copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/temp/SKM_DTD_rich.dtd copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/Portfolio/SKM_DTD_rich.dtd copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Dialoog.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Graafika00.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Graafika.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/GraafikaV?rvid.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Lyliti.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Meetodid.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/MusterRek.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/SYT.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Tekstifailid.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Tere.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/demo/Ts?kkel.algjava copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/gif/collapsed.gif copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/gif/collapsed2.gif copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/gif/collapsed3.gif copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/macros/AlgJavaMacro.html copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/macros/AltGrMacro.html copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/models/Java5Model.html copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/Portfolio/AlgJavaDemo.html copied.
AlgJavaStarter: COPYING . . . .
AlgJavaStarter: OK: File /Users/janek/Desktop/Portfolio/AlgJavaWorks.html copied.
AlgJavaStarter: modifyPropertiesAndStart.

Install tekitas Desktopi peale vähemalt 10 uut faili/kataloogi. Bäh! Kuskil oleks võinud olla mingi hoiatus. Loomulikult oli kõik detailses “loemind” failis ilusti ära selgitatud. My bad:

Olgu AlgJavaStarter.jar laaditud kataloogi D:\AlgJava

Esimese asjana torkab silma eestikeelne menüüriba, kust võib leida mitmeid huvitavaid eestindusi:

  • Fail -> Kohtumiseni! (Quit)
  • Vaade -> Togida
  • Toimeti -> Togida
  • Toimeti -> Haarata
  • Lisada -> Haru
  • Lisada -> Poolitus
  • Lisada -> Vahepeatus
  • Erisoovid -> Kohastus
  • Erisoovid -> Togida valiku soov

Faili menüü all tekitas kohe segadust ka see, et mis erinevus võiks olla näiteks “Avada”, “Importida”, “Sisestada Java” ja “Lugeda tekst” vahel. Igastahes invaliidistati mind juba alguses edukalt ära. Nüüd ma tean, mis tunne on neil, kes peavad esimest korda programmeerima hakkama.

Alustuseks üritasin uut faili luua ja paari minutilise katsetamise tulemus on pildilt näha:

Ma ei saa mitte midagi aru. APPPPIIIIII!!!!111 Mida ma tegema pean??? Klikkisin suvaliselt valikutes tegin kogemata õige “erisoovi” ning programm muutus ingliskeelseks. Palju parem, aga tegelikult vahet pole. Ikka ei saa aru, mida teha vaja. Ilmselt on aeg uurida “Käsiraamatut”. No problemo! Klikk ja jään ootama! Jah! SEE PANGESTUS!!

Hinnang: 0/5


“Lihtsustatud” Java

Mai 8, 2006

Kunagi mitte väga ammu puhkes Tartu Ülikooli Matemaatika-informaatikateaduskonnas maailmavalupuhang (jälle!), millest võib lähemalt lugeda siit. Ühe probleemina toodi välja see, et päris mitme eriala (matemaatika, statistika, informaatika, infotehnoloogia, keemia, füüsika + võibolla keegi veel) esmakursuslastele antakse programmeerimise ainet samamoodi. Täpselt nagu üks universaalne pesupulber, mis ei kõlba mittemillekski, sest ilmselgelt on näiteks keemikute ja informaatikute vajadused erinevad. Samuti vinguti/vaieldi selle üle, et kas Java on ikka õige keel algprogrammeerimise õpetamiseks, sest seal on vaja juba “Hello World” stiilis programmi kirjutamiseks kasutada mitmeid OOP konstruktsioone (peaklass, ‘public static void main’, System.out.println, jms), mida ametlikult õpetatakse alles järgmisel semestril. Pythoni/Ruby/Lispi/VB/C/misiganes vennad ei suutnud ära otsustada, et mida Java asemel tuleks õpetada ja seetõttu ei muutu lähiajal ilmselt mitte midagi.

Aga tunneli lõpus on siiski väike valguskiir – Jüri Kiho ja tema suurepärane Amadeus Algjava. Nomaeitea… Ei julge veel mingit kindlat seisukohta võtta, aga tundub sama jabur, kui kirvega kraavi kaevata. Igastahes on tegu hea õppetunniga Java vastastele ja ilmselt samal põhjusel ruulib Keskerakond ka järgmistel valimistel kuna nende vastased on liiga killustunud.