Ohjelmointiputkan tekniikka ja sen kehitys

Lauri Kenttä

Ohjelmointiputka alkoi 15-vuotiaan Antti-pojan harrastuksena, ja alkuun jälki oli todellakin sen näköistä – sivustolla oli tusinoittain omituisia bugeja ja käytössä olivat PHP:n pahamaineiset ominaisuudet magic_quotes ja register_globals. Mutta tekemällä oppii: pari vuotta vierähti, ja sivusto alkoi olla kohtuullisen toimiva. Tiedostot vaihtuivat oikeaan MySQL-tietokantaan, eikä viesteihinkään enää ilmestynyt ylimääräisiä \-merkkejä. Toki jotkin toiminnot – muun muassa oppaiden kommenttien muokkaus – käyttäytyivät yhä omituisesti, mutta tavallinen käyttäjä tuskin törmäsi sivustolla vikoihin.

Kuvassa on ote Ohjelmointiputkan vanhasta koodista. Tämä pätkä liittyy Python-koodin väritykseen. Koko funktiolla on mittaa 80 riviä, eikä kokonaisuus ole sen selvempi kuin tämä katkelmakaan. Tämän sivun lopussa on vastaava funktio nykymuodossaan.

Kaikki eivät silti olleet tyytyväisiä. Aina aika ajoin heräsi keskustelua uusista ominaisuuksista, joita sivustolle täytyisi saada. Tärkeimmät Antti toteuttikin, keskusteluun nimittäin saatiin hirsipuu ja ROT13-koodaus. Tästä huolimatta moni innokas nettiohjelmoija vaati itsepintaisesti, että sivustosta tehtäisiin nykyaikainen: HTML-koodin haluttiin noudattavan standardeja ja ulkoasuun vaadittiin CSS-koodia vanhan taulukkotaiton tilalle. Rohkenipa joku ehdottaa myös tietoturvan parantamista ja vanhojen bugien korjaamista; eräs innokas painotti viestiään etsimällä sivustolta koko joukon tyypillisiä SQL- ja XSS-haavoittuvuuksia.

Vuonna 2008 nimimerkillä "tietoturvatestaaja" esiintynyt käyttäjä näytti Antille, millä tolalla sivuston tietoturva oli: hän teki PutkaSQL-nimisen Python-skriptin, jolla saattoi suorittaa tietokantakyselyitä Ohjelmointiputkassa.

Vaikka kaikenlaista lupailtiinkin jo vuosia aiemmin, kauan odotettu mullistus antoi odottaa itseään aina kymmenvuotisjuhlan kynnykselle saakka. Elokuussa 2011 koko Ohjelmointiputka korvatiin uudella versiolla, joka oli hieman aiemmin toiseksi ylläpitäjäksi nimetyn Laurin käsialaa – Antti kun ei halunnut eikä ehtinyt uudistaa jo ennestään toimivaa koodia. Sivustosta tulikin nyt teknisesti varsin laadukas: siistiä HTML-koodia (sittemmin myös XHTML-koodia) CSS-tyyleillä, JavaScriptilla paranneltu käyttöliittymä sekä PHP:llä ohjelmoitu, entistä ehompi taustajärjestelmä, joka noudattaa olennaisilta osin MVC-mallin periaatteita ja yhdistää olio-ohjelmoinnin ja proseduraalisen ohjelmoinnin parhaat puolet. Vanhaa koodia ei paljon säilynyt.

Näin Python-koodi väritetään vuonna 2012. HTML:n font-tagit ovat vaihtuneet CSS-luokkiin, joita 70 rivin mittainen Varittaja-luokka osaa lisätä koodiin säännöllisten lausekkeiden perusteella. Nyt kielikohtainen osuus on lyhyt ja uuden kielen voi lisätä minuuteissa.

Uudistuksen jälkeen Ohjelmointiputkasta on ehkä tullut omalla tavallaan tylsä: nappeja painellessa ei tarvitse enää jännittää, mitä seuraavaksi tapahtuu. Toisaalta nyt perustekniikka on kunnossa ja sivusto voi hyvillä mielin suunnata uusiin haasteisiin.

Ulkoasu by: Lassi Eronen (2002)