|
Paar korda on jutuks tulnud programmeerimist käsitleva artiklitesarja avaldamine nt Digis või Arvutimaailmas. Sisuks oleks programmeerimise algõpetus, kuna seda teemat arvutiajakirjandus praktiliselt ei käsitle. Asi on jäänud toppama põhiliselt aja taha, aga alati on üles kerkinud ka küsimus, et mis keeles? PHP, Java, Javascript, Python või Flash? Ootaksin teie arvamust ning ka põhjendust. |
|
Eeldan, et need väljapakutud keeled on need, millega teemaalgataja ise kõikse paremini kursis on - pole ju mõtet hakata õpetama keelt, mida isegi ei tunne.
Eeskujulik näide StackOverflow stiilis vastusest. Tänud Rene!
(Oct 27 '09 at 08:02)
Tambet Matiisen ♦♦
|
|
Digi lugejaskonda silmas pidades võiks JavaScript täitsa hea valik olla. AM sihtgrupile pakuks pigem kooslust Excel+VBA. Õigupoolest olen ma sarnase katse juba kaks korda teinud: ühe korra Horisondi lugejatega (siis küll OpenOffice Calci ja selle Basicu baasil) ja ühe korra TÜs psühholoogidele programmeerimise aluseid õpetades. Muide, nende kahe katse järel pean tõdema, et Calcil on Exceli programmeerijasõbralikkuseni veel pikk maa areneda. 14-aastase vennapoja ässitasin Pythoni kallale. Aga võib-olla oleks Java isegi parem valik olnud? 1
Mina hääletan ka Javascripti poolt. See on igas arvutis vaikimisi installitud (nagu omal ajal QBasic), samas on selle õppimisel praktiline väärtus - saab tulevikus AJAXit ja dünaamilist HTML-i väänata. Lisaks on Javascript tänapäeval suhteliselt täisväärtuslik keel (kuigi omade kiiksudega).
(Oct 26 '09 at 07:53)
Tambet Matiisen ♦♦
JavaScript keelena on algusest peale täisväärtuslik olnud. Tema häda on selles, et brauseri sees JavaScripti kasutamisel on kõik välised liidesed määratud keele spetsifikatsioonist välja jääva brauseri poolt ja see on see koht, kus asjad sageli inetuks lähevad.
(Oct 26 '09 at 13:29)
Ahto Truu ♦♦
1
Uskumatu, aga internetis on täiesti olemas Javascripti käsiraamat eesti keeles: http://jscode.org/
(Nov 19 '09 at 22:53)
Tambet Matiisen ♦♦
JavaScripti inimsõbralikumaks kasutamiseks algajale: http://www.win.tue.nl/~wstomv/edu/javascript/about.html
(Sep 29 '10 at 05:27)
Ahto Truu ♦♦
|
|
Kellele ja milleks? Programmeerimist - struktureeritult mõtlemist, algoritme jne - saab õpetada ilma ühtegi konkreetset programmeerimiskeelt kasutamata. Arendavad mängud ja lastele mõeldud kõik-ühes keskkonnad on üks näide! Arvutiajakirjades on lugejaid seinast seina. Kui eesmärk on uutele algajatele programmeerimise põhitõdesid õpetada, siis oluline oleks võimalikult lihtsaks teha esimesed sammud ja harjutamine ja tulemuse "käega katsumine" - kompilaatorite tirimine ja paigaldamine on muidugi vajalik oskus ühe programmeerija igapäevaelus, kuid algust võiks saada teha ilma internetiühenduseta. Lisaks ei paku paljudele terminalist numbrite lugemine erilist pinget. Seega keel, mis igal tänapäeva seadmel mingil kujul olemas on ja üldkasutatava GUI-d omab: Javascript. Näide: (toksi see Firefoxi aadressiribale) javascript:2*2 PHP+Javascript progejaid on Eestis jalaga segada ja kui sarja lõpus 2*2==4 tasemest kaugemale jõuda, on kindlasti paljudel võimalik praktilisi teadmisi kooli/kontorisse kaasa võtta ja enda koodi (sealhulgas PHP koodi) parendada. Kui aga diibilt läheneda, siis võiks alustada Scheme (mille jaoks on samuti täielik keskkond olema,s DrScheme) ja/või C abil. Scheme selleks, et õpiks (mõnede arvates natuke liigagi) abstraktselt mõtlema ja programme konstrueerima. C selleks, et uus progeja oskaks enda CPU bittide jagu baite kokku lugeda õiges järjekorras. Meeldetuletuseks: C on nagu konjak - mida rohkem tärne, seda uhkem ;) Sihtgrupp oleks põhikooli õpilased minu arust. Keskkoolis on juba hilja :). Eesmärk oleks tekitada huvi programmeerimise kui loova tegevuse vastu vastandina arvuti tarbimisele - mängimisele, konfimisele, tuunimisele jne.
(Oct 26 '09 at 07:56)
Tambet Matiisen ♦♦
|
|
Isiklikult soovitaksin Pythonit, kuna sellel on äärmiselt lihtne ja kiire õppimiskõver, mis võimaldab keskenduda rohkem programmeerimise põhitõdede (algoritmid, andmestruktuurid jne.) õpetamisele. Kergesti omandatav süntaks ning lihtsamad programmid valmivad üsna kiiresti - peaks olema algajale piisavalt fun. Samas leian et vajalik oleks ka diibim (nagu Martin ennist mainis) lähenemine, kuid see oleks vast juba järgmine level. Kes on ise suuremad programmeerimise huvilised, jõuavad sinnamaani tavaliselt juba enesealgatusel. 2
Nõus, Pythonil on lihtne süntaks ja ta on naturaalsel viisil objekt-orienteeritud (Javascriptis on see kuidagi läbi prototüüpide, mis minu jaoks ei ole päris naturaalne). Tänapäeval ei ole lihtne kättesaadavus (a'la Javascript) enam nii suur probleem, kuna kõigil on internet käepärast.
(Oct 26 '09 at 09:32)
Tambet Matiisen ♦♦
|
|
Siimu vastus "skriptimiskeeltest" on bogus ka selle tõttu, et "Flash keelt" pole olemas. Flash on programmeerija seisukohast APIde kogum/IDE, kus keeleks Actionscript. AS2 oli paras segapuder, AS3 on juba parajalt objektorienteeritud-tüübitatud ja muidu nii Javascripti kui Java valdajaile suht käe järgi. Aga sõltumata keelest on üks probleem selles, et esimesed näited on ikka "print hello world", Fibonacci numbrite arvutamine, abstraktsete andmestruktuuridega möllamine vms. Kui eesmärk on panna asjast huvituma neid, kellel programmeerimine edaspidi põhitööks ei saa, siis on see lähenemine üsna niru sõltumata keelest. Selle probleemi üheks võimalikuks lahenduseks on Alice, mis üritab näited võimalikult kiiresti mängulaadseks ajada ja näidata, kuidas programmeerimisega saab mingeid nähtavaid objekte ja keskkondi mõjutada, mitte vaid abstraktseid numbreid kokku liita. Ei väida, et see oleks õige vastus, aga niisama diskussiooni mitmekesistamiseks. |
|
Viimane Communications of ACM kirjutab Scratchist. Scratchi tutvustus eesti keeles: http://elrond.tud.ttu.ee/~vilip/Scratch/Juhend/Scr_juhend14_P.html
(Sep 29 '10 at 05:30)
Ahto Truu ♦♦
|
|
Kindlasti ei saa me olla antud teemas täiesti objektiivsed. Ma ei saa soovitada Pythonit lihtsalt sellepärast, et ma teda ei oska või ma ei saa soovitada ka ABAP-i, kuigi ma teda oskan, aga tean, et selle keele kasutamiseks enamusel võimalus puudub. Kindlasti tuleb vaadata ka seda, kuidas inimene hakkab programmeerimist õppima, kas iseseisvalt või teeb seda läbi koolituste ja tuttavate. Materjali õppimiseks on tänapäeval rohkem kui küll (omal ajal sai alustatud viletsa valguskoopiaga Ülikooli raamatukogus), võta kätte, proovi ja harjuta. Lisaks on siin üles kerkinud küsimus, kas PHP näiteks on ikka hea keel alustamiseks . Mina arvan, et see sõltub inimesest. Kas see andmetüüpide lõtvus hakkab segama hilisemat tegevust või mitte, see on täiesti individuaalne. Ise olen seisukohal, et keel kui selline pole esmatähtis, oluline on aru saada programmeerimisest kui sellisest. Tunnen mitmeid PHP-ga alustanud selle, kes nüüd suurtes tarkvaraettevõtetes töötavad ja väga erinevaid keeli kasutavad, samas tunnen selle, kes 3-4 aasat peale õppima asumist küsivad täpselt samu küsimusi, mis alustades. Mine võta siis kinni, mida ta õppinud on. |
|
Kellele oleks artikkel alateadlikult suunatud? Kas tulevastele süsteemprogrammeerijatele või rakenduste programmeerijatele. Need on veidi 2 eri maailma ja nende vahel käib ka tugev ideoloogiasõda...umbes nagu *nix-laste ja windowslaste vahel. Vahe on selles, et süsteemprogrammeerijad peavad tegelema ja tajuma ka süsteemi siseelu (riist- ja tarkvara), samas rakenduste progejatel võtab raamistik/keskkond selle suures osas enda hooleks. Ühel juhul kaasneb pikk ja vaevaline binaarmaailma, protokollide, draiverite jms tundmaõppimine, teisel juhul interpreteeritakse enamus asju inimloetavaks ja toimub maagia :) Kui räägime application tasemest, siis JS, Ruby, Python jt "pealisehitised" ja "maagiat täis keeled" on OK alustuseks. Kui süsteemi siseelu vaja tutvustada siis C/C++-st ei saa üle ega ümber. Maailma ärisüsteemid ja servertarkvara tiirlevad siiski suures osas Java ja C maailma ümber, samas "arvutiga piiksu teha" saab ka lihtsamalt :) |
|
Atraktiivsuse kontekstis on üks Lua oluline eelis, et ta elab World of Warcraft'i sees. Didaktilises mõttes on ilmselt mõistlik kaaluda Pythonit, mõnd koolituslikku Scheme dialekti (DrScheme töötab enamasti kenasti) ning Rubyt. Nendele keeltele on omased:
Ideaalne õppekeel on nagu filosoofiline rada, mida mööda saab kaugele välja jõuda, mida ei pea sellegipoolest korraga lõpuni käima ning mis ei sea teelisele lõkse üles. Keeruliselt sängituvad keeled on algõppe jaoks probleem selles mõttes, et nad ei võimalda õpilasel tajuda keele ja muu maailma piiri -- see aga võib hiljem valusalt kätte maksta. (Ajaloos on sedalaadi probleemide ilus ja õpetlik näide mikrorevolutsiooni alguspäevade komme BASIC-programme POKE'dega pikkida.) See tähendab, et ActionScript ja Linden Scripting Language jäävad välja, kuigi neil iseenesest ju suurt häda ei oleks. (Lua + WoW on ka selles kontekstis natuke problemaatiline, aga seda probleemi neutraliseerib osaliselt Lua iseseisvus. ActionScript ja LSL niimoodi iseseisvad ei ole.) Veebisängitumine on tõenäoliselt tänapäeval veebi kõikehõlmavuse tõttu oma keerukuse suuresti minetanud, nii et JavaScript'i mina õkva maha ei tõmbaks, aga nagu näha, ülalmainitud soovituste sekka teda ka ei pistnud. PHP on muidugi tänapäeva BASIC, tema õpetamist tuleks, nagu Dijkstra ütles, kuriteoks lugeda. Iseäranis esimese keelena. Siimu rant "skriptimiskeeltest" on õppekeele valiku kriteeriumina peaaegu nii bogus kui olla saab. Selle kivistunud käibetõe põhjal ei tohiks keeltele käesolevas kontekstis ei pluss- ega miinuspunkte anda. |
|
Ilmselt sihtgruppi arvestades ei saa jah, suck threshold eriti suur olla, mis on puhta Java puhul ilmselge probleem. Samas võib selle läve oluliselt madalamale tuua millegi sellisega:
Hea alternatiiv Java-le on veel Groovy, mis on 100% Javaga ühilduv dünaamiline keel, mille süntaks on märksa sõbralikum ja kus mitmed rutiinsed tegevused on lihtsamaks tehtud kui Javas. |
