Karhulla on asiaa

Teks­tie­di­to­ri on koodarin tärkein työkalu: oma historiani teks­tie­di­to­rien parissa

Kimmo Tapala 18

Koodarit tuottavat ja muokkaavat usein valtaviakin määriä tekstitiedostoja, ja tuossa hommassa avainasemaan nousee normaalistikin se ohjelma, jolla tiedostoja työstetään. Näitä ohjelmia kutsutaan tekstieditoreiksi, ja niiden merkityksestä koodin parissa työskenteleville ihmisille kertoo hyvin se, että harvat asiat koodareiden keskuudessa aiheuttavat aivan niin suurta vastakkainasettelua ja tunteenpurkauksia kuin tekstieditorit. Erilaisia tekstieditoreita on maailmassa aivan tolkuton määrä, joten niistä kirjoittaminen yleisellä tasolla tuntuisi melko turhalta. Tästä syystä ajattelin kertoa omasta historiastani tekstieditorien parissa ja miksi päädyin kulloinkin käyttämään ko. editoria.

1980-luvun loppu: kevyttä editointia PC:llä

Lapsuudenkotiini hankittiin ensimmäinen tietokone vuonna 1988. Masiina oli Osborne-merkkinen PC-AT-kone, jossa oli suorittimena kahdeksan megahertsin kellotaajuudella sykkivä Intelin 80286, muistia muistaakseni 640 kilotavua, ehkä 40 megatavun kiintolevy, EGA-grafiikkakortti ja 3,5 tuuman levykeasema. Koska AUTOEXEC.BAT ja muut DOSin asetustiedostot eivät muokkaannu itsestään, oli minulla jo tuolloin jonkinlainen tarve tekstieditorille. Editoriksi valikoitui QEdit, joka jatkaa edelleen elämäänsä nimellä The SemWare Editor (TSE).

QEdit oli varsin hyvä tekstipohjainen editori, jonka käyttö oli kohtuullisen intuitiivista jopa minunlaiselleni ala-asteikäiselle kollille. Isommilta pojilta tuli poimittua tärkeimmät opit editorin käyttöön ja silloiset tekstieditointitarpeet QEdit täytti hyvin. Koodailuharrastusta en ollut vielä tuossa vaiheessa aloittanut, joten isompien tekstimäärien editointiin ei onneksi ollut tarvetta.

Mikäli haluat kokeilla hiukan tuoreempaa versiota QEditistä, saat testattua sitä selaimessasi. Vinkki: ESC-näppäimellä saat editorin valikon näkyviin muokatessasi tekstiä.

1990-luku: koodailua Amigalla

Etukäteen pahoittelut seuraavasta nostalgiakiertotiestä, mutta ajattelin käyttää tilaisuuden hyväkseni ja taustoittaa hieman omaa Amiga- ja demoskeneharrastustani.

Koodauksen pariin pääsin varsinaisesti vasta 1990-luvulla Amigalla. Hommasin vuonna ’93 Commodore Amiga 600:n, koska käytännössä kaikilla kavereillani oli jonkinlaiset Amigat. Noh, Amiga-historiani meni siinä mielessä hassusti, että myin tuon A600:n jossakin vaiheessa kaverilleni ja ostin Amiga Technologiesin Amiga 1200:n. Kyseinen A1200 ei ehtinyt minulla kauhean kauaa olla, sillä eräissä hääkemuissa tein tuon samaisen kaverini kanssa diilin, jossa vaihdoin A1200:n Sonabin NG11-kaiuttimiin ja ostin häneltä takaisin tuon aikaisemmin myymäni A600:n. Koska A1200:n kanssa olin jo tottunut hiukan rivakampaan menoon sekä kiintolevyyn, piti A600 saada viritettyä vähintään samalle tasolle. Viritys onnistui (jos tämän nyt onnistumiseksi voi laskea) A600:lle rakennetulla turbokortilla, jonka myötä Motorolan 68000-suoritin vaihtui 68030:een ja muistia tuli rutkasti lisää. Samalla tyrkkäsin koneeseen kiinni kannettaviin tietokoneisiin tarkoitetun IBM:n neljän gigatavun Travelstar-kiintolevyn, joka tuntui silloin kapasiteetiltaan aivan uskomattomalta. Tästä koko säädöstä aiheutui kolme ongelmaa:

  1. Turbokortti vei koneen sisältä kiintolevykelkalle tarkoitetun paikan, joten kiintolevy ei enää mahtunut koneen sisälle.
  2. Turbokortilla olevat piirit kävivät niin kuumana (sulattivat mm. kortin päälle kiinnitetyn pleksilevyturhakkeen aivan mutkalle), että koneen koteloa ei voinut sulkea.
  3. Koneesta tuli hämmästyttävän kiikkerä kapistus. Kone kaatuili satunnaisesti useita kertoja päivässä.

Ykköskohta korjaantui sillä, että koneen sisältä vedettiin IDE-kaapeli vasemman kyljen PCMCIA-korttipaikan aukon läpi ulos ja tuo kallisarvoinen Travelstar sai majailla koneen vieressä pöydällä. Kakkoskohtaan puolestaan tuli helpotusta sillä, että koneen kotelon ja näppäimistökopan väliin sai kiilattua pystyyn 3,5 tuuman levykkeen, joka kannatteli takareunasta koneen yläosaa n. 30 asteen kulmassa ja auttoi näin ilmanvaihtoon. Ongelmana tässä toki oli se, että koneen näppäimistö oli silloin n. 45 asteen kulmassa pöytään nähden, mutta sehän ei taipuisilla ranteilla varustettua teini-ikäistä käyttäjää haitannut. Kolmoskohta ei sitten koskaan korjaantunutkaan, mutta kone sai em. tuuletusratkaisun myötä epästabiiliin käytökseensä hyvin sopivan kiikkerän olemuksen myös fyysisesti.

Amiga-touhuilun myötä aloin olla aktiivisempi myös demoskeneharrastukseni kanssa, joten koodailu Amigalla alkoi kiinnostaa. Hommasimme kaveriporukalla aloittelijaystävällisen AMOS Professional -ohjelmointiympäristön, jolla meidän oli tarkoituksena lähteä rakentamaan omia demo- ja pelituotoksiamme. Niin demoista kuin peleistä ei kauheasti ole jäänyt jälkipolville kerrottavaa, mutta aloittelevalle koodarille AMOS oli kaikesta huolimatta erittäin hyvä ponnahduslauta, sillä sen kanssa sai rauhassa keskittyä ohjelmointiin ja unohtaa kaiken ylimääräisen työkalusäädön. Tässä suhteessa nykyään ohjelmoinnin aloittaminen onkin aika paljon haastavampaa, sillä ennen kuin pääsee varsinaisesti koodin kimppuun, pitää asentaa ja konfiguroida ämpärillinen kaikenlaisia työkaluja.

AMOS-ohjelmointikielen eri versiot ovat BASIC-kieliä, joita ohjelmoidaan niiden omassa IDE:ssä, eli integroidussa kehitysympäristössä. Koodi tuotettiin siis käytännössä aina AMOS-editorilla. Editori on etenkin nykystandardien valossa erittäin pelkistetty, mutta toisaalta itselläni ei tuolloin ollut mitään vertailupohjaa, joten sillä mentiin varsin tyytyväisenä. AMOS oli ensimmäinen IDE, jota olen koskaan käyttänyt.

Muuhun tekstieditointitarpeeseen Amigalla käytin CygnusEd-editoria, eli CEDiä, joka näyttää edelleen olevan ainakin jossain määrin hengissään. CED oli nopea, kevyt ja riittävän monipuolinen editori satunnaiseen tekstieditointiin. Mitään hienouksia ei tuolloin editorista löytynyt, mutta eipä niitä osannut kaivatakaan. Edelleenkään ei CEDissä ole esim. syntaksiväritystä, eikä sitä ilmeisesti ole tulossakaan, koska se edellyttäisi koko editoriarkkitehtuurin uudelleenrakentamista.

2000-luvun alku: Mac ja ensimmäiset verkkosivuprojektit

Vuonna 2001 hommasin itselleni ensimmäisen modernin Mac-tietokoneeni. Aikaisemmin olin toki retromielessä hommannut itselleni Macintosh LC:n, mutta kaatuilevan (ja tässä vaiheessa violetti-pinkki-värityksen saaneen) Amiga 600:n tilalle oli pakko saada jokin sellainen kone, jolla päivittäinen käyttö olisi oikeasti mahdollista. Päädyin lopulta hommaamaan grafiitinharmaan putkinäyttö-iMacin 500 MHz:n G3-suorittimella. Tuosta eteenpäin olen ollut pääasiallisesti Mac-käyttäjä.

Koska Macin myötä lähdin tosissani suuntautumaan verkkosivustojen rakentamiseen, oli toimivalle tekstieditorille kipeästi tarvetta. Aivan välittömästi sopivaa editoria ei meinannut löytyä, sillä lähes kaikissa kokeilemissani editoreissa tuntui olevan jotakin vikaa. Jossakin vaiheessa törmäsin kuitenkin BareBones Softwaren TextWrangler-editoriin, joka oli käytännössä ilmaisversio samaisen lafkan silloin kokonaan maksullisesta BBEdit-editorista. TextWrangler oli minulla käytössä vuosikausia ja valtaosa 2000-luvun alun opiskeluaikojen kotikoodailuista tuli tehtyä sillä.

Opiskelujen jälkeen aloitin nykyisen työnantajani leivissä. Töissäni käytin tuolloin pääsääntöisesti Windows-konetta ja Macromedia (sittemmin Adobe) Dreamweaveria, joka on verkkosivustojen rakentamiseen tarkoitettu IDE. Dreamweaverin WYSIWYG-näkymästä ei varsinaisesti ollut mitään hyötyä koodarin hommissa, joten käytin Dreamweaveria lähinnä tekstieditorina, jossa oli integroitu FTP-asiakasohjelma. WYSIWYG-näkymää taisin kylläkin käyttää pari kertaa onnistuneesti kuvakarttojen luomiseen, joten ei siitä pelkästään haittaa ollut. Dreamweaver oli pelkässä tekstieditorikäytössä raskas, hidas ja valitettavan buginen, mutta juurrutti minuun ajatuksen siitä, että projektikohtainen tiedostonavigointi editorissa on varsin hyvä idea.

Töiden myötä aloin kaivata myös kotikoodailuun jotakin hiukan ammattimaisempaa editoria TextWranglerin tilalle. Hyvinkin monenlaisten editorikokeilujen jälkeen löysin itseäni miellyttävän Espresson. Espresso oli hyvin kaunis, visuaalinen, nopea ja intuitiivinen. Se tarjosi hyvin pitkään minulle kaiken, mitä tekstieditoriltani toivoin, enkä usko, että olisin siihen valintana kovin tyytymätön nytkään.

2010-luku ja siitä eteenpäin: laajennettavuus, muokattavuus ja etäkäyttö

2010-luvun taitteessa markkinoille alkoi toden teolla tulla tekstieditoreita, jotka astuivat vahvasti Emacsin ja Vimin miehittämälle alueelle: ne lupasivat lähes loputtomat laajennus- ja muokkausmahdollisuudet sisäänrakennettujen ohjelmointirajapintojen kautta. Näiden rinnalla Espresso tuntui rajoittuneelta ja niinpä lähdin jälleen etsimään itselleni uutta työjuhtaa.

Rakastuin silmittömästi Sublime Textiin, sillä se tuntui loputtoman konfiguroitavalta ja laajennettavalta, mutta kuitenkin hämmästyttävän nopealta ja tehokkaalta. Sublime Textin Python-kielinen ohjelmointirajapinta varmisti, että laajennuksia sille tuli kuin sieniä sateella ja Package Control -paketinhallinta teki laajennusten löytämisestä ja asentamisesta vaivatonta. Sublime Textin eri versiot olivat minulla käytössä yli kymmenen vuotta ja olin jo melko varma, että olin löytänyt itsellenin tekstieditorin, jota en vaihda mihinkään.

Työni oli kuitenkin muuttanut muotoaan näiden vuosien aikana. Työni painottui entistä enemmän palvelinten hallinnointiin, erilaisten konfiguraatiotiedostojen muokkaamiseen ja elämään terminaalisovelluksessa. Koska käytin päivittäin kolmea eri käyttöjärjestelmää (macOS, Linux ja FreeBSD) monella eri koneella ja useimmiten ilman graafista käyttöliittymää, alkoi tuntua siltä, että olisi mukava pystyä toimimaan ainakin lähes yhtä tehokkaasti näillä kaikilla koneilla – niin paikallisesti kuin etäyhteydenkin yli. Olin jonkin aikaa seurannut Neovim-editorin kehitystä ja se alkoi minusta vaikuttaa erittäin varteenotettavalta kandidaatilta. Neovim on moderni tulkinta Vim-editorista ja yhteensopiva mm. Vimin konfiguraation kanssa.

Olen käyttänyt Neovimiä nyt n. vuoden ajan ja järkyttävän kovan oppimiskynnyksen jälkeen tunnen vihdoin olevani jokseenkin sinut editorin kanssa. Neovimin käytön jatkaminen on paikoitellen vaatinut paljonkin itsekuria ja googletusta, mutta koen, että Neovimin myötä Vimin käyttö on tullut niin tutuksi, että palvelinten konfiguraatiotiedostojen muokkaaminen onnistuu erittäin sujuvasti. Neovimin kehitystahti on viime vuosina ollut huima ja aikaisemmin buginen editori on nykyään käyttökokemukseltaan jo oletuksena erinomainen. Neovimiä konfiguroidaan ja laajennetaan helposti ymmärrettävällä ja tehokkaalla Lua-ohjelmointikielellä, ja erilaisia laajennuspalikoita löytyy aivan joka lähtöön. Uskoisin, että oma tekstieditorihistoriani päättyy joko Neovimiin tai johonkin muuhun Vim-pohjaiseen editoriin.

Tykkäsitkö tästä jutusta?

15
3
0
0
Kenttä on validointitarkoituksiin ja tulee jättää koskemattomaksi.
Jaa juttu somessa
Tällä viikolla näitä luettiin eniten
  1. Miten projektin hinnoittelumalli vaikuttaa suunnittelun joustavuuteen?
  2. Terminaalimultiplekseri tmux – ystävä, johon voi luottaa
  3. WCAG-kriteerit ymmärrettävästi – näin teet sivustostasi saavutettavan
Viime aikoina eniten reaktioita herättivät
Ota yhteyttä
Tilaa uutiskirje