Alunperin koodaaminen oli suuritöistä. Uudet työkalut toivat automatiikkaa. Onko tämän jälkeen sovelluskehitys vain palapelin kasaamista?
Tietokone ymmärtää vain konekieltä
Aivan alkujaan ohjelmointi on ollut melkoisen kankeaa. Käskyjä ei voinut syöttää nykyisellä näppäimistöllä, vaan komentokieltä syötettiin tietokoneelle ohjelmointikytkimiä käyttäen.

Myöhemmässä vaiheessa tulivat kirjoitetut käskykomennot käyttöön. Käskyttäminen tarkoitti aluksi erittäin matalan tason komentamista. Tällä tarkoitetaan sitä, että esimerkiksi näytölle tulostettava teksti piti kirjain kerrallaan sijoittaa tietokoneen sellaiselle muistialueelle, että se tulee näytölle näkyviin. Kyse on Assembly-kielestä, joka oli seuraava askel varsinaisen konekielen jälkeen.
Wikipedian artikkelit kertovat edellä kuvatuista kielistä tarkemmin:
Matalan tason ohjelmointikielet
Kehittyneempien, korkeamman tason kielien myötä yksittäinen käsky tuli sisältämään enemmän toimintoja. Esimerkiksi näytölle tulostettava teksti voidaan antaa lauseena tai kokonaisena kappaleena. Tietokoneen sisuksissa tapahtuu tarkempi ohjeistaminen, jotta tietokone osaa halutun asian toteuttaa. Ohjelmointikieli siis käännetään (ja käytetään myös nimitystä tulkkaaminen) tietokoneen prosessorin ymmärtämään muotoon.
Itse opiskelin ohjelmointia siinä vaiheessa, jossa Assembly-kielen käyttö ei ollut välttämätöntä. Tulin senkin opiskelleeksi. Vakiintuneeseen käyttöön otin aluksi Basic-pohjaisia kieliä, ja myöhemmin Turbo Pascalin. Basic-ohjelmoinnista voit lukea aiemmasta kirjoituksestani. Turbo Pascalista kirjoittelin tässä kirjoituksessa.

Kohti korkeamman tason kehityskieliä
Ohjelmointikieliä tuli tarjolle lisää. Erityistä uutta 1990-luvulla tarjosi mm. Delphi-kehitysympäristö, jossa sanallisen käskytyksen rinnalle tuli graafinen sovelluskehitys, drag&dropina näytölle sijoitettavat valmiit graafiset komponentit. Käyttöliittymä voitiin rakentaa valmiimpia palikoita käyttäen. Ohjelmoija siis piirsi käyttöliittymän raameja, ja ajatuksen kulku saattoi olla tällainen:
- Tähän haluan tällaisen syöttökentän ja sille selitteen.
- Tähän alueelle piirretään ohjelman toimesta muuttuvaa sisältöä.
- Käyttöliittymään tulee vakiomuotoiset painikkeet.
Todellisuudessa näidenkin elementtien taakse tuli kuitenkin käskyttämällä rakentaa varsinainen toimintalogiikka aina vähintään joltakin osalta. Nykyään kehitystyökalut sisältävät laajojakin valmiuksia, jotka nopeuttavat sovelluskehitystyötä. Ohjelmistosuunnittelijan eli tuttavallisemmin koodarin tehtäväksi jää silti aina kokonaisuuden rakentaminen. Tulee päättää, mitä komponentteja tarvitaan, miten niitä käytetään, ja varsinaisen toimintalogiikan rakentaminen.
Muistan hyvin, kuinka Delphin tullessa ajattelin, että tämä ei ole oikeaa koodaamista. Tämähän on vain palapelin rakentelua. Kun useita vuosia ja tuhansia koodirivejä oli kirjoitellut, tuollainen puolivalmisteiden käyttäminen tuntui höpöhommalta.
Hyödyllinen kehityskulku
Kyllä kehitys on ollut hyvää. Ei ole järkevää aina lähteä tyhjästä liikkeelle. Kehitystyökalut mahdollistavat sovellusten nopeamman toteuttamisen. Lisäksi omia ohjelmakomponentteja voi tehdä yleiskäyttöisiksi niin, että voi toisessakin tilanteessa hyödyntää samoja valmiuksia. Tämähän on järkevää. Koodaaminen on myös usein isomman joukon yhteistyötä, jossa valmiita osioita kaikki voivat hyödyntää.

Arvelen, että tuoreempienkin koodareiden olisi helpompaa ymmärtää ohjelmistokehittämisen perusteita, jos joutuisi rakentamaan käyttöliittymää alkuaikojen tapaan pikseli kerrallaan. Kirjoittelin, kuinka piirustusohjelma toteutettiin aiemmin jokainen valopiste erikseen sytyttäen.
Bittimuseo kyselee, mikä on sinun ensimmäinen koodauskielesi?
Kiitokset kuvista / Thank you for the pictures: