Ohjelmoinnin aloittaminen voi olla usein mörkö, joka ulottuu laajalle ja pitkälle. On vaikeaa päästä alkuun, kun erilaisia ohjelmointikieliä, työkaluja ja käsitteitä on pilvin pimein ja kaikesta pitäisi tietää vähän, jotta pystyy tuottamaan mielekkäitä juttuja. Koodarin työkalupakki -sarjassa käymme läpi muutaman tärkeän työkalukategorian, jotta pääset hajulle siitä, millaisia asioita juniorikoodarin olisi hyvä osata. 

Aloitetaan ehkä työkaluista tärkeimmästä: koodi- tai tekstieditorista. Siinä missä toimistotyön ykköstyökaluja ovat Wordin, Excelin ja Powerpointin kaltaiset työkalut, myös koodari tarvitsee ohjelmointityöhön erikoistuneen ohjelman. Koodieditoripuolella tarjontaa on valtavasti ja tärkein tekijä ohjelmaa valitessa on oma tottumus: koodarit suhtautuvat editoriin äärimmäisen tunteellisesti ja kiihkeät keskustelut ohjelmien paremmuudesta on erityisesti netin keskustelupalstoilla tuttu ilmiö.

Hyvän editorin ominaisuudet

Vaikka editoreja on valtava määrä ja mielipiteitä niistä yhtä monta kuin koodareita, on hyvillä editoreilla muutamia yhteisiä ominaisuuksia, joiden avulla hyvä työkalu nostaa työskentelytehoa. Teknisesti koodia voi kirjoittaa vaikka Windowsin omalla Notepad/Muistio-ohjelmalla, mutta siinä ei ammu kuin itseään jalkaan.

Syntaksivärjäys (code highlighting)

Ohjelmointikielessä kirjoitetuilla sanoilla on erilaisia merkityksiä: on ns. varattuja sanoja (kuten if, else, return, function), jotka toimittavat ohjelmointikielessä omaa virkaansa; on muuttuja- ja funktionimiä, jotka käyttäjä määrittelee itse; sekä merkkijonoja, jotka sisältävät tekstidataa. Koodaamista helpottaa kummasti, kun nämä eri sanat erottuvat niiden käyttötarkoituksensa mukaisesti koodista nopealla silmäyksellä: koodin lukeminen ja ymmärtäminen nopeutuvat.

Vasemmalla ilman syntaksivärjäystä ja oikealla värjäyksen kanssa

Automaattitäydennys (code completion)

Seuraava työskentelytehokkuutta nopeuttava ominaisuus hyvässä editorissa on koodin automaattinen täydennys: hieman kuin puhelimen ennustava tekstinsyöttö. Osassa editoreista tämä ominaisuus on sisäänrakennettuna, mutta käytännössä kaikkiin moderneihin editoreihin sen saa vähintään erikseen asennettavana lisäosana.

Automaattitäydennys analysoi olemassa olevan koodin ja tarjoaa nimensä mukaisesti automaattista täydennystä kun alat kirjoittamaan esimerkiksi funktiokutsua. Riippuen käytetystä ohjelmointikielestä ja ohjelmistosta automaattitäydennys osaa esimerkiksi näyttää muuttujien tyypit tai funktioiden dokumentaation kirjoittaessa.

Automaattitäydennys auttaa välttämään kirjoitusvirheitä ja nopeuttaa kehitystä.

Snipetit (snippets)

En edes yritä kääntää suomeksi mitä snipetit ovat, mutta käytännössä ne ovat automaattitäydennyksen kokeneempi kummisetä. Suositun lisäosan Emmetin kotisivulla oleva video on erinomainen esimerkki siitä, miten HTML-maailmassa snipetit säästävät valtavasti aikaa ja virheitä.

Valmiiksi luotujen snipettien lisäksi erityistä lisäarvoa ne tuovat silloin, kun käyttäjä luo omia, usein käyttämiään koodinpätkiä varten valmiita koodinpätkiä. Mikäli huomaat tuottavasi samanlaisia rakenteita usein, kannattaa miettiä miten voisit säästää aikaa snipettien avulla.

Monipuoliset muokkaustoiminnot

Tekstinkäsittelymaailmasta tutut tekstin muokkaustoiminnot löytyvät myös ohjelmointimaailmasta. Hyvä editori mahdollistaa esimerkiksi useamman kohdan muokkaamisen samaan aikaan, säännöllisten lausekkeiden (regular expressions) käytön sekä jälleen kielestä ja editorista riippuen jopa tehokkaita refaktorointityökaluja, joilla voidaan muokata tiettyä koodikutsua samaan aikaan kaikkialla projektissa.

Editorit

Esittelen alla muutaman erityyppisen editorin: kaikilla näillä on mahdollista saada aikaan samaa koodia, mutta osa on erikoistuneita tiettyihin kieliin, kun taas osan vahvuuksia on toimivuus kaikissa ympäristöissä samalla tavalla.

Atom

Githubin kehittämä Atom saavutti suurta mielenkiintoa julkaisunsa aikana ja on onnistunut saavuttamaan suuren käyttäjäkunnan avoimen lähdekoodin, ilmaisuuden sekä muokattavuuden ansiosta. Atom on helppo ottaa käyttöön ja sitä voi laajentaa oman käyttötarpeensa ja osaamistason kehittymisen myötä. Aktiivinen avoimen koodin kehittäjäyhteisö luo jatkuvalla syötöllä lisää lisäosia, joita voi helposti asentaa editoriin sisäänrakennetulta markkinapaikalta.

Itse olen viime aikoina innostunut erityisesti Teletype-ominaisuudesta, joka mahdollistaa samaan editori-ikkunaan liittymisen verkon yli. Näin erityisesti ongelman kohdatessa tai uutta opetellessa kaikki osapuolet pääsevät kiinni samaan ikkunaan ja pystyvät reaaliaikaisesti muokkaamaan koodia.

Sublime Text

Atomin kanssa veriveljiä on Sublime Text, joka on toiminnallisuudeltaan ja ominaisuuksiltaan samankaltainen kuin Atom. 80$ hintaista Sublime Textiä voi kokeilla ilmaiseksi, mutta moni Sublime-käyttäjä siirtyi nimenomaan maksullisuuden sekä suljetun koodin takia Atom-leiriin tämän julkaisun jälkeen. Perusominaisuuksiltaan Sublimen ja Atomin välillä ei ole merkittäviä eroja ja lisäosatarjonta on myös suurin piirtein samalla tasolla.

Visual Studio Code

Siinä missä itselläni on paljonkin kokemusta molemmista edellä olevista, tuorein kolmikosta on jäänyt itselleni toistaiseksi kokeilematta. Microsoftin kehittämä Visual Studio Code kerää kuitenkin koodariyhteisössä paljon kehuja.

Yhtenä vahvimmista piirteistä VSCodella on suoraan editoriin rakennetut debug-ominaisuudet eli koodin tilan tutkiminen ohjelman suorituksen aikana. Sisäänrakennettuna löytyy tuki Javascript-koodin debuggaamiselle, mutta lisäosia asentamalla saman toiminnallisuuden saa myös esimerkiksi Python- ja C#-koodille.

Emacs

Edellä mainitun kolmikon painiessa aika lailla samassa sarjassa, seuraava kaksikko erottuu joukosta merkittävästi. Emacs on komentorivillä pyörivä ohjelmisto, joka tunnetaan useimmiten koodieditorina, mutta joka taipuu lähes mihin tahansa tietokoneella tehtävään työhön. Siinä missä Sublime, Emacs ja VSCode ovat tämän vuosituhannen keksintöjä, Emacsin historia yltää aina 1970-luvulle asti.

Aikaisen aloitusvuoden sekä komentorivimäisen käyttöliittymän ei kuitenkaan sovi antaa hämätä. Emacs on tehokäyttäjän työkalu, joka komentorivitoiminnallisuudesta johtuen pyörii käytännössä kaikkialla ja edellä mainittuun kolmikkoon verraten yksi suurista eduista peruskäytössä onkin se, että Emacs pyörii samalla tavalla niin kotikoneella kuin ssh-yhteyden yli palvelimellakin. Yli 40 vuotta kehityksessä ollutta editoria kehitetään jatkuvasti edelleen.

Vim

Jos Atom ja Sublime voidaan nähdä kilpailevan samasta kohdeyleisöstä, Vimin ja Emacsin rakkaustarina on sitäkin verisempi. 90-luvulla ensi kertaa julkaistu Vim pohjautuu Emacsin kanssa samaan aikaan julkaistuun vi-editoriin (Vim on lyhenne sanoista Vi iMproved). Emacsin kanssa yhtäläisyyksiä löytyy komentorivikäyttöliittymästä ja mahdollisuudesta käyttää käytännössä missä tahansa.

lähde: http://www.manuelmagic.me/manuelsweb/geek/texteditors/index.html

Yksi vimin kuvaavimmista ominaisuuksista on sen oppimiskäyrä, joka on tunnetusti todella jyrkkä ja tästä syystä myös vitsailun aihe. Suositulla Stack Overflow -sivustolla kysymys ”Kuinka suljen vimin?” on kerännyt yli 1,3 miljoonaa katselukertaa ja koodarikulttuuri on täynnä hauskoja vitsejä vimin sulkemisesta.

Graafisiin käyttöliittymiin nojaavissa editoreissa kuten Sublimessa, Atomissa ja VSCodessa monet toiminnallisuudet löytyvät valikoita klikkaamalla tai tekstihauilla, mutta Emacsin ja Vimin kanssa pääsee opettelemaan toinen toistaan kryptisempiä komentoja. Mutta kun vimiin pääsee sisälle, komennot tulevat nopeasti selkärangasta ja asiat tapahtuvat merkittävästi nopeammin kuin graafisten kilpailijoiden kanssa.

Eclipse

Kolmannen kategorian tässä vertailussa ansaitsevat IDE:t (Integrated development environment), jotka ovat monipuolisempia kokonaisuuksia editoritoiminnallisuuksien ympärille. Usein IDE:t on suunniteltu tietyn ohjelmointikielen tai -ympäristön ympärille siinä missä edellä mainitut toimivat samalla tavalla kaikkien kanssa.

Monille Java-koodareille tutuin on Eclipse. Eclipsen sisällä pystyt hoitamaan kaikki Java-ohjelmointiin liittyvät tehtävät koodin kirjoittamisesta, kääntämisestä ja ajamisesta testaukseen ja palvelinympäristöjen pyörittämiseen.

Phpstorm

PHP-koodarin hyvä ystävä on Phpstorm, joka tarjoaa monipuolisen työympäristön laajojen PHP-projektien pyörittämiseen. Tietylle kielelle optimoituna alustana Phpstorm pystyy tarjoamaan nimenomaan PHP-web-koodia kirjoittavalle koodarille vahvan yhden työkalun elämyksen, jonka sisällä pystyy hoitamaan niin versionhallinnat, testaukset kuin tietokantayhteydetkin.

PyCharm

PyCharm on Phpstormin kehittäjän IDE Python-koodareille. Sisäänrakennetut toiminnallisuudet koodin analysointiin tarjoavat IDE-maailmaan sopivasti voimakkaammat työkalut sekä editoritasolla ymmärryksen koodista.

Koska itse olen pääosin käyttänyt Sublimea, Atomia, Emacsia ja Vimiä, kattava tuntemus IDE-ympäristöistä ei ole vahvuuksiani. Halusin kuitenkin nostaa esille muutaman yleisesti käytetyn, mikäli lukija tahtoo kokeilla IDEn käyttöä.

Yhteenveto

Valitsitpa koodieditoriksesi minkä tahansa, suosittelen käyttämään tarpeeksi aikaa sen opettelemiseen. Jokaisessa editorissa on omat tehotyökalunsa, joita ilman koodia kyllä kirjoittaa, mutta jotka omaksumalla tuottavuus kasvaa ja voit keskittyä enemmän ongelmien ratkaisuun kuin koodin kirjoittamisen tuottamiin esteisiin.

Toiset editorit omaksuu nopeasti ja toisten kanssa oppii joka päivä uutta, mutta tärkeintä on löytää työkalu, joka sopii juuri sinun käyttötarpeeseesi sekä työskentelytapoihisi. Ja mikäli rakkautesi editoria kohtaan sykkii voimakkaana, Internetistä löytyy loputtomasti keskusteluketjuja, joissa pääset julistamaan rakkauttasi.

Tässä postauksessa esittelin pienen kattauksen suosituimpia editoreja, mutta editorikenttä on valtava ja uusia innovaatioita pyritään keksimään koko ajan. Itse olen jo pitkään seurannut mielenkiinnolla esimerkiksi Light Tablen lähestymistapaa.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *