|
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. |
|
Miks pole hea algajale:
Esmalt mõtlesin, et toon siin välja kõik enamkasutatud programmeerimiskeeled ja nende peamised vead, kuid vaevalt leidub siis kedagi, kes seda viitsiks lugeda. Välja tõin PHP positiivsed, c ja c++ negatiivsed küljed, sest tavaliselt programmeerija ei oska neid nimetada. +1 huvitava lingi eest.
(Oct 01 '10 at 12:29)
Rene Saarsoo ♦♦
Hoiatuseks nendele, kellele lingi alt tühjad graafikud avanevad - graafikud ei tööta IE all, fallback to FF.
(Oct 06 '10 at 06:02)
Tambet Matiisen ♦♦
|
|
Toodud nimekirjas on enamik keeli skriptimiskeeled või neist välja kasvanud keeled (va. Flash?). Päris programmeerimiseks need eriti ei kõlba (siis on vaja juba vähemalt C, F ja L perekonda tundma õppida). Põhitõdede õpetamiseks on nad ka liiga keerulised (nagu eelnevad vastajad on välja toonud). Skriptikeeltest on ühed puhtamad ja selgemad keeled käsurea keeled (bash, command prompt), kus on enamik laialt kasutatavaid keelestrukture olemas. Objekt-orienteeritult lisanduks neile veel PowerShell, mille tugevus teiste O-O keeltega võrreldes on interaktiivne kasutajaliides ja varasem olemasolu enamikes arvutites. Need on ka keeled, mille tundmisest on enamikule kasutajatele tõenäoliselt kõige rohkem kasu. Kindlasti tuleks vältida Flash keelt (sest tegemist on ikkagi kinnise tootega, mille virtuaalmasinate kvaliteet jätab väga soovida) ja JavaScripti. JavaScripti seetõttu, et tal on liiga palju "murrakuid" ja standardne osa on imepisike (sisuliselt ainult keelestruktuurid + DOM, ülejäänu on laiendustespetsiifiline), mis tähendab, et tuleb õppida JavaScript keskkonda tundma (nt. veebileht vs PDF). Päris programmeerimist ei kujuta ette ilma tugevalt tüübitud käsitsi hallatava mälukasutusega keelte tundmiseta. Java-s on mäluhaldus ebameeldivalt keeruline (lihtne linked-list implementatsioon võib juba mäluhalduses probleeme tekitada) ja nõuab tugevalt keele sisestruktuuride tundmist. .NET-s on asi veidi ilusam tänu haldamata API-le, kuid reaalselt ei kasutata haldamata API-t peaaegu üldse (see on ka peaaegu olematu dokumentatsiooniga). PHP-s on mäluhaldus Java-ga võrreldes oluliselt lihtsam, kuid C ja C++ konstruktsioonid on palju silmapaistvamad ja paremini seotud arvuti füüsilise ülesehitusega. 1
Kui teemaks programmeerimiskeeled, ilmub alati välja keegi, kes teatab, et "skriptimiskeeled" on mingisugune alam rass ja polegi nagu päris programmeerimiskeeled. Justnagu "skriptimiskeeltel" ja "päris" programmeerimiskeeltel oleks mingi selge vahe.
(Nov 17 '09 at 20:49)
Rene Saarsoo ♦♦
Muide, mida sa mõtled C, F ja L perekonna all? C, Fortran ja Lisp?
(Nov 17 '09 at 20:52)
Rene Saarsoo ♦♦
|
|
Mida ma ise vast soovitaks on:
Arvan, et keel, mida kasutada õppimiseks, peaks:
3
Miks peaks programmeerimise algõpetuse juures mäluhaldust ja pointereid õppima?
(Nov 17 '09 at 20:57)
Rene Saarsoo ♦♦
Peamiselt sellepärast, et paremini aru saada kuidas asju arvutis mälus hoitakse ja kuidas neile ligi pääsetakse. Ma arvan, et kui edasi liikuda teiste keelte peale, kus garbage collectionit ei ole, siis võib väga kergelt hakata vigu tulema, kui neid põhimõtteid ära ei õpi.
(Nov 19 '09 at 12:45)
egon ♦♦
|
|
Pidage mind vanamoeliseks, aga arvan, et need kaks keelt täidavad siiani oma eesmärke.
Klassikaline BASIC aga jääb hätta juba säärase lihtsate programmeerimisülesate jaoks elementaarse tehnikaga nagu rekursioon. Isegi "tänapäevased" BASIC'u dialektid kipuvad kolme koiba lonkama.
(Nov 30 '09 at 15:56)
dig
Mis Pascali järglastel, so siis FreePascalil ja Delphil, jääb "päris" programmeerimiskeele staatusest puudu?
(Nov 30 '09 at 19:48)
Avo
OK, Basic on tõesti natuke liiga lihtne, ent Pascalit on kiidetud just väga arusaadava süntaksi pärast, see justkui loeks koodi ette. c keelest pärinevad begin..end sulud { }, muutujate manipuleerimise trikid nagu ++a,a-=3, a=b==3?b*b:b%2 ja muu, mis teeb selle keele edasijõudjale haarvaks, aga õppijale on selle süntaks veidi keeruline. Muidugi soovitaks sinna liikuda edasi niipea kui programmeerimise põhitõed juba selged on.
(Dec 01 '09 at 10:16)
Teet
FreePascali ja Delphi häda on peaasjalikult ajaloolises pagasis alustades näiteks niisugustest triviaalsustest nagu "word", mis oma seotuse masinasõnaga ammuilma minetanud on, aga iidsete mikrorevolutsiooniaegsete translaatoritega (nagu MT/+ või Turbo Pascal for CP/M) tagasi ühildumise huvides alles püsivad. Aga see ei tähenda, et nad päris keeled ei oleks. Natuke naljaka ja mitte päris otstarbeka kriteeriumina: vajadusel saab fpc's kasvõi Linuxi tuumamoodulit kirjutada.
(Dec 02 '09 at 21:18)
dig
|
|
Ma ei saa aru miks paljud Pythonit algajale soovitavad? Ärge saage valesti aru, python on suht ok keel, kuid algaja jaoks toimub selles liiga palju "maagikat". Ehk kui juba on käinud ära see arusaamise "klõps" siis tegelikult enam väga vahet pole. Aga kui see klõps käib dünaamilise keelega siis sellega kuidas "kapoti all" asi käib on tõsiseid raskusi arusaamisel. Ma tean päris paljusid programmeerijaid kelle esimene keel on olnud näiteks PHP, kuid nendel on juba tõsiseid raskusi teistes keskkondades programmeerimisega. Nagu öeldud, PHP on tänapäeva BASIC. Pole tal süsteemipärast maailmavaadet ega konsistentset arhitektuuri. Inimene, kes PHP korratust programmeerimiseks pidama hakkab, on hädas tõesti. Python on nondest hädadest prii. Häda ei ole ju keele dünaamika, häda on keele autorite mõttelaiskus.
(Dec 02 '09 at 19:34)
dig
2
Programmeerimine ongi ju maagia ning programmeerijad võlurid - ma ei näe siin mingisugust probleemi :)
(Dec 04 '09 at 09:36)
Rene Saarsoo ♦♦
|
|
FreePascal'i sõpradele võib äratundmisrõõmu pakkuda see dokument aastast 1981. Muist tollest nomenklatuurist oli juba siis vana ja seda säilitati tagasiühilduvuse huvides. |
|
Ise noorprogrammeeriana alustasin PHPst, ei teagi kas sain nüüd siis pättusega hakkama? Lihtsalt, kui ma programmeerimise otsa sattusin siis ma natuke aega tegelesin 2e asjaga - PHP ja JS. Kuna aga PHP tundus kordades lihtsam hakkasin seda edasi õppima. Nüüd olen jõudnud kohta, kus arvan, et PHPd juba natuke oskan - prooviks midagi uut. Pöörasin oma pilgud tagasi JSi juure ning ilmselt JSi kõrvale hakkan veel Pythonit ka uurima. See oli väike "eellugu". Kui seda tutvustamis keelt valida, tuleks minu arvates lähtuda sellest, mida kiiremini ja kergemini sa saaksid valmis millegi huvitavaga? PHPs näiteks kalkulaatori loomiseks ei pea olema eriline geenius. Edasi siis juba lihtsamad mängud jne. Kindlasti tuleks aga PHP kõrvale tekitada huvi ka teiste keelte vastu millega seda PHPd huvitavamaks muuta ala JS. |
|
Ma alguses proovisin Pythonit aga see ei sobinud kohe üldse, samas tundus küll suhteliselt lihtne. Nüüd alustasin Javaga ja olen üle kuuaja juba tegelenud. Python on hea aga kasutajaliidese ja koodi kokkuajamine pole just kõige lihtsam, Java tundub sellepoolest parem olevat, aga samas on Java rangem keeleliselt. Pythonis hakkavad asjad ka päris kergesti tööle aga Javas nii kergesti ei saa, peab vigadega maadlema, mis on suhteliselt lahe. Kui eesmärk on kiiresti midagi valmis saada, siis soovitan Pythonit. |
