Yleistä infoa koodin kirjoittajan työkaluista
Koodari tarvitsee työkalun, sellainen on teksti-editori.
Ihmisläheisestä lähdekoodista kääntäjä/tulkki-ohjelmat tekevät CPU:n ymmärtämää konekoodia,
joten kaikki tekstin ”lisätauhka” sekoittaa kääntäjän toiminnat.
Siksi tavallinen tekstinkäsittelyohjelma ei käy.
Koodarille tehdyt editorit tekevät hieman enemmänkin kuin pelkkää koodia:
niistä on kehitetty koodin kehitysympäristöjä, IDE - Integrated Development Environments.
Tekstieditorilla on kahdenlaista käyttöä:
1. GNU/Linux on käyttöjärjestelmä jossa kaikki on tiedostoa, niin laitteet kuin oikeat tiedostotkin.
Kaikki tietokonetta ohjaavat konfiguraatio-asetukset tehdään tekstitiedostoissa
jotka hyväksyvät vain puhdasta ASCII-tekstiä.
Näissä on oltava tarkka syntaksi. Väärä merkki, vaikkapa tekstinkäsittelyohjelman kursiivi tai lihavointi,
sekoittaa systeemit, jolloin koko järjestelmä voi olla vaarassa tuhoutua.
2. Ohjelman lähdekoodi (C, Python, JavaScript, jne) vaatii vastaavat ominaisuudet kuin konfiguraatiotiedostot.
Lähdekoodin kääntäjä muuttaa koodin prosessorin ymmärtämään muotoon.
Kääntäjä/tulkki on hyvin tarkka syntaksin suhteen. Pienintäkään virhettä se ei salli.
Jopa komennnon sijainti rivillä (sisennys) tulkitaan ohjeeksi.
Siksi ohjelmien lähdekoodit kirjoitetaan tekstieditorilla.
Miksi tekstinkäsittelyohjelma ei käy?
Jokainen tietokoneen käyttäjä tuntee tekstinkäsittelyohjelman, ajattelematta asiaa sen enempää.
Ne tallentavat ruudulla näkyvän merkkivirran lisäksi paljon muuta mutta näkymätöntä,
kuten esim tekstin ulkoasun muotoilumerkit kursiivi ja lihavointi, alleviivaus, merkin koko ja väri, jne.
Nuo lisämerkit sekoittavat konfigurointitiedostot ja koodin kääntäjäohjelma ”tilttaa” (lakkaa toimimasta).
Millainen koodarin editorin tulisi olla?
Editori on aivan eri asia kuin tekstinkäsittelyohjelma, ne on kehitetty aivan eri tarkoituksiin.
Mutta koodaajan editorin tulee olla enemmän kuin pelkkä editori.
Sen tulee osata automaattisesti sisentää/tabuloida eri kielien koodirivit ohjelmalohkojen mukaan.
Tällöin koodin luettavuus paranee. Saman tekee värikorostus.
Kun käyttäjän syöttämän tekstin väri muuttuu merkityksen mukaan,
silloin ohjelmakoodin rakenteen hahmottaminen helpottuu. Samalla kirjoitusvirheiden määrä vähenee.
Tavallisesti väritettävää tekstiä ovat kielen varatut sanat, kommenttirivit ja dokumenttitekstit.
Tärkeää tietää, että editorin tekemät värikoodaukset, korostukset, yms. tehdään ja nähdään vain näytöllä.
Ne eivät siirry kääntäjälle/tulkille menevään dataan. Sille menee pelkkää puhdasta kooditekstiä.
Oikea IDE-editori ennustaa mitä olet kirjoittamassa, ehdottaa muutoksia, näyttää virheesi, yms.
Hyvä ominaisuus on se, että kun kohdistin/kursori on kaari-, aalto-, tai hakasulkeen alla,
editori korostaa sen vastaparin.
Tämän toiminnon avulla on helppo löytää esim puuttuva kaarisulku.
Rivien ja sarakkeiden numerointi on tärkeää, samoin ulkoasun automaattinen muotoilu.
Kaikki tämä on ”piilotettu” graafisen käyttöliittymän alle.
Kukin työkalu saadaan käyttöön hiiren klikkauksella. Pikahelppi auttaa ongelmatapauksessa.
IDE, Integrated Development Environment, integroitu ohjelmiston kehitysympäristö
Koodarin tekstureista on kehitetty koodin kehitysympäristöjä, IDE - Integrated Development Environments.
IDE on kokoelma työkaluja ja ohjelmia, joiden avulla suunnitellaan, testataan ja kehitetään ohjelmakoodia.
Työkalut ovat toisiinsa integroituja, ja ne pystyvät vaihtamaan tietoa keskenään.
Näitä ovat teksturi-editorin lisäksi kääntäjä, assembler (assembly-ohjelman kääntäjä),
linkkeri (yhdistää eri käännöskoodit), virheenetsintätyökaluja, yms.
Kaikki tuo on tehtävissä erillisillä ohjelmilla, niin ennen tehtiinkin,
mutta IDEllä työ on helpompaa ja tehokkaampaa. Ja mukavampaa.
Kaikki IDEt osaavat työstää useita eri ohjelmointikieliä.
Lisää: https://wiki.python.org/moin/PythonEditors
Mitä IDE:ssä tulisi olla:
* Syntaksin maalaus usealle eri tiedostotyypille
* Hyvä koodin editointi (automaattiset sisennykset ja tabuloinnit oikein)
* Kääntäjän, tulkin ja debuggerin (virheenetsintätyökalu) käyttö suoraan IDEstä
* Ohjelman ajo eli suoritus yhdestä napista
* Projektien tiedostot esitetään puurakenteessa
* Automaattinen koodin virheiden esitys, näyttää heti missä kohdassa virhe esiintyy
Teemme koodia ainakin Python, C, HTML, JavaScript/nodejs, bash-script ympäristöissä,
joten IDEn tulisi “osata” ainakin näitä.
Kaikilla voi tehdä kaikkea, mutta joku IDE sopii parhaiten yhteen, toinen toiseen.
Meidän käyttämät työkalut
Thonny on Tarton yliopiston lahja Python-ohjelmoinnin opiskeluun/opetukseen.
Paras Python-työkalu.
Se on monipuolisempi kuin Pythonin oma IDLE, mutta helppokäyttöisempi kuin isommat IDEt.
RasPin Thonnyssa on asennettuna Python versio 3.5 joten sen vuoksi ei tarvitse vaivautua.
Työkalun käytön opiskeluun ei tarvitse uhrata aikaa muutamaa minuuttia enempää.
Thonnysta on Punomon sivuilla ihan oma dokumentti, joten tässä ei enempää.
- koodarin mini-IDE
Geany ei ole IDE,
eikä se ole teksturi,
vaan se on kevyt-IDE.
Geany on helppokäyttöinen, mutta silti monipuolinen IDE.
Enempi vakaville harrastelijoille tarkoitettu.
Geany on perusopinnoissa helppo ottaa haltuun.
Geany on esiasennettuna Raspbian-käyttöjärjestelmässä joten se on heti käyttövalmis.
Me käytämme sitä VNC-etäohjelman avulla Mint-koneen ruudulla
joten sitä ei välttämättä tarvitse asentaa pääkoneeseen.
Tärkeä etu, se toimii niin Linux, Windows, Mac OS X ympäristöissä.
Geany soveltuu monenlaiseen koodaukseen, mutta me tullaan käyttämään sitä pääasiassa:
HTML ja CSS, eli web-sivujen rakenteen opiskeluun ja JavaScript, Nodejs ja Python koodaukseen.
Geany on nopea ja kevyt ohjelmointiympäristö, ja vieläpä (osittain) suomenkielinen kuten allaolevasta kuvasta näkyy.
Se sisältää yhteen pakettiin koottuna kaiken sen mitä koodaaja tarvitsee työssäänja kuitenkin se on helppo ottaa haltuun.
Geany omaa lukuisan määrän plugineita, liitännäisiä, osa on mukana oletuksena,
toiset on imuroitava Geanyn sivuilta: https://www.geany.org/Support/Plugins
Raspin komentorivi-editori on nano
Ennen graafisia käyttöliittymiä tietokoneen kanssa kommunikoitiin komentorivillä. Ja Gurut vieläkin.
Siksi tekstieditorit tulevat komentorivien maailmasta.
”Vanhat gurut” ovat mieltyneet Vimiin tai Emacsiin.
Me RasPilaiset käytämme Nanoa joka on komentotulkissa ajettava helppo editori, ei siis IDE.
Kun olet kirjautunut/loggautunut RasPiin, nano otetaan käyttöön terminal-ohjelmassa kirjoittamalla komento:
nano
tai
nano tiedostopolku
jossa tiedostopolku on polku tiedostoon, jota tahdot muokata.
Ruudulle ilmestyy ohjelma, kuten näytetään seuraavassa kuvassa.
Sitten vaan koodia kirjoittamaan.
Useimmin nanoa tarvitaan kun pitää tehdä pieni muutos johonkin konfigurointitiedostoon.
Tämä ikkuna aukeaa Mintin näytössä kun olemme yhteydessä Raspiin SSH-yhteydellä (Putty) ja nano on käynnistetty.
Eli voimme kirjoittaa tekstiä "pääkoneessa" ja kuitenkin tallennus tapahtuu Raspin hakemistoon.
Tai etäkäytämme sitä suoraan RasPissa verkon kautta.
Sama asia.
Nanokin osaa värittää koodin avainsanoja. Ikkunan alaosassa on käyttöohjeet. Aluksi riittää, että
- osaa tallettaa tiedoston, CTRL+o
- ja poistua nanosta, CTRL+x.
Kursoria siirretään nuolinäppäimillä.
Jos enemmän ohjeita kaipaat, niin istunnon aikana paina CTRL+g,
käyttöopas/ohjesivu aukeaa ja oikein suomeksi.
Takaisin päästään CTRL+x.
Netbeans
on menestyvä ja avoimeen lähdekoodiin perustuva projekti, jolla on erittäin laaja käyttäjäkunta,
kasvava yhteisö sekä lähemmäksi 100 partneria (lisää tulee koko ajan) ympäri maailman.
Sun Microsystems perusti NetBeans-projektin kesäkuussa 2000 ja toimii edelleen projektin pääsponsorina.
Tällä hetkellä on kaksi eri tuotetta: NetBeans IDE ja NetBeans alusta.
NetBeans IDE on kehitysympäristö - ohjelmointityökalu, jolla voidaan kirjoittaa, kääntää, debugata
ja ottaa käyttöön sovelluksia.
Ohjelma on kirjoitettu Javalla, mutta se pystyy tukemaan mitä tahansa ohjelmointikieltä.
NetBeans kehitysympäristöä voidaan laajentaa siihen saatavilla useilla eri moduuleilla.
NetBeans IDE on ilmainen työkalu ja sen käyttöä eivät koske mitkään rajoitukset.
Lainattu: https://netbeans.org/index_fi.html
NetBeansin avulla rakennetaan koodia kaikille ohjelmointikielille. Löytyy myös HTML5-tuki.
Me käytämme sitä JavaScript-ja Nodejs-koodaukseen.
Työskentelemme Linux-koneella ja teemme koodia RaspberryPi-tietokoneeseen.
NetBeans on Java ohjelma joten se toimii kaikissa käyttöjärjestelmissä joissa on Java Virtual Machine, JVM.
Siksi sen voi asentaa niin Windowsiin kuin Applen OSX koneisiin,
mutta tulevaisuuden kannalta käyttöjärjestelmäksi kannattaa valita GNU/Linux.
Sama kuin RasPissa ja miljardeissa älypuhelimissa ja tableteissa.
NetBeans on raskasta sarjaa, paras graafinen koodieditori, paras virheiden etsintään (debuging),
monipuolisimmat lisäominaisuuudet lisäpalikoilla (plugins).
Se on tehokas, monipuolinen ja kuitenkin helppokäyttöinen.
Tosin kaikki oppiminen vaatii ponnisteluja, mikään ei tule ilmaiseksi.