Close menu
Close menu

Tunnistaudu

Kirjaudu

Etkö ole vielä jäsen?

Liity jäseneksi

0. Johdanto

Tutustumme aluksi erilaisiin ohjelmointikieliin. Jätämme pois sellaiset ohjelmointikielet, jotka toimivat pelkästään konsoli-ikkunassa eli haluamme löytää sellaisen ohjelmointikielen, jossa on selkeät grafiikka-komennot. Yksi kriteeri olisi se, että koodausta voitaisiin tehdä myös selaimella, koska tällöin varmistetaan se, että se pyörii kaikilla laitteilla. Vertailun helpottamiseksi koodaamme eri ohjelmointikielillä 400 x 400 pikselin ikkunaan, jonka taustaväri on sininen. Ikkunan sisällä piirretään paikkaan x = 100 ja y = 100 vihreä neliö, jonka koko on 200 x 200. Neliön sisällä on keltaista tekstiä, jonka koko on 50 pikseliä. Haluamme tehdä ohjelman, joka piirtää seuraavan kuvion.

Katsomme koodin yksinkertaisuutta, laajennettavuutta, jatkuvuutta. Valitaan lopuksi paras mahdollinen ohjelmointikieli aloittelijalle, jota käytämme tässä projeketissa. Huomio: Ohjelmien kommentit ja mielipiteet ovat kokonaan materiaalin tekijän.

Tietokonekielen valinta – johdanto historiasta

Tässä projektissa on tarkoitus tehdä vuorovaikutteista grafiikkaa ohjelmoimalla. Oletus on, että oppilaalla ei ole yhtään aikaisempaa ohjelmointikokemusta. Aluksi on tarkoitus vertailla ja esitellä erilaisia ohjelmointiympäristöjä eli tutustua erilaisiin ohjelmointikieliin. Ohjelmointikielen pitäisi olla selkeä, aloittelijalle sopiva ja laitteistoriippumaton (=toimii selaimessa). Lisäksi ohjelmointikielen pitäisi olla ilmainen opetuskäytössä ja sillä pitäisi olla jatkuvuutta.

Ohjelmointikielet yleensä syntyvät tarpeesta. Tarve oli hyvin erilainen vielä 1980-luvulla kuin nyt, joten kerrotaan aluksi ohjelmointikielten historiaa. Aluksi tietokoneet tottelivat yksikertaista hex-koodia eli ns. konekieltä. Tällainen ohjelmointikieli on esimerkiksi Assembly-kieli. Kuitenkin 1950 ja 1960 luvulla oli tarvetta kehittää ohjelmointikieli, joka enemmän muistutti kirjoitettua kieltä. Ensimmäinen tällainen kieli oli Fortran, jossa ohjelma ensimmäisen kerran käännettiin konekielelle. Tämän jälkeen syntyikin Cobol, Algol ja Lisp kielet. Algol-kieltä voidaan pitää myöhemmin syntyneen Pascal-kielen esiversiona. Lisp-kieli oli taas ensimmäinen ns. funktionaalinen kieli.

Ensimmäiset opetuskäyttöön suunnitellut kielet olivat Basic (1964) ja Pascal (1970). Kun 1980-luvulla kotiin tulivat ensimmäiset henkilökohtaiset tietokoneet, niin ainakin Basic-kieli on tuttu monelle sitä kautta. Aluksi Pascal oli käytössä yliopistoissa, mutta Pascal-kielestä kehitettiin kaupallinen versio TurboPascal 1980 ja siitä myöhemminen ObjectPascal-kielinen kehitysympäristö Delphi. Ei-kaupallinen versio Pascalista on FreePascal ja Delphistä on Lazarus.

Ensimmäinen olio-ohjelmointikieli C++ esiteltiin vuonna 1983, joka oli aluksi laajennus C-kielelle (1974). Tästä Microsoft on kehittänyt oman version C# kielen, jolla esimerkiksi Windows-käyttöjärjestelmä on koodattu. Kun vuonna 1995 Internet valtasi maailman, niin tällöin tarvittiin selaimessa ja palvelimissa toimivia ohjelmointiympäristöjä. Tällöin päivänvalon näki C++ pohjalta kehitetty Java, joka oli ensimmäinen täysin laitteistoriippumaton kieli. Netscape kehitti nopeasti vastavetona selaimessa ajettavan kielen JavaScript. Microsoft on tästä taas kehittänyt oman version JScript, josta johtuu selainten erilaisuus tulkita JavaScriptiä. Alkuperäistä nopeasti kyhättyä JavaScript-kieltä on onneksi siitä paljon paranneltu ja Google Crome selaimen myötä kielestä on tullut suosittu, jossa on sisäänrakennettu ohjelmointiympäristö. Javan ja JavaScrptin vahvuus on kirjastoissa. Javalla on esimerkiksi kirjoitettu Android-ohjelmat. Apple taas käyttää omissa laitteissa Swift-ohjelmointikielellä tehtyjä ohjelmia. Applen laitteissa on tietoturvaan liittyviä rajoituksia, joka on aiheuttanut yhteensopimattomuus ongelmia esimerkiksi Java:n kanssa. Tästä syystä Javan suosio on ollut laskussa ja JavaScriptin taas nousussa. Monet palveluntarjoajat ovat muuttaneet Java:lla koodattuja ympäristöjä JavaScript/HTML5 muotoon.

1990-luvulla kehitettiin myös PHP ja HTML-kieli. Tällöin myös alkunsa sai Python, Haskell, Ruby, Lua ja Racket. Varsinkin ilmainen Python-kieli on saanut suuren suosion harrastajien keskuudessa ja on tällä hetkellä suosituin ohjelmointikieli. Koska Pythonin koodi on selkeää ja pelkistettyä, niin sitä käytetään laajasti opetuskielenä. Lisäksi Python on myös kelpuutettu yliopistoihin tehokkaaksi laskentatyökaluksi, niin Pythonin tulevaisuus on sille taattu. Myös Pythonin vahvuus on kirjastoissa ja moduuleissa, joilla peruskieltä voi laajentaa (Esim: pygame ja turtle). Tulevaisuudessa Python haastaa myös JavaScriptin selaimessa käytettävänä kielenä (Brython). Nykyään uudet ohjelmointikielet on pitkälti johdettu kirjastojen avulla jo käytössä olevista kielistä. Näin on syntyneet esimerkiksi opetuskäyttöön suunnitellut kielet. Esimerkiksi Snap, Blockly, Alice, Scratch ja P5.js kieli, jotka ovat JavaScript-kielen johdannaiskieliä ja vastaavasti Processing on Javan johdannaiskieli. Processing kielestä on myös omat versiot JavaScriptille (processing.js) ja Pythonille (processing.py). Basic kielestä on johdettu esimerkiksi VisualBasic,QBasic, FreeBasic, CoolBasic, EppaBasic ja Small Basic, jotka ovat myös ns. opetuskieliä. Tulevaisuudessa ei ehkä ole tarvetta kehittää aivan uutta ohjelmointikieltä, vaan lähinnä parannella jotain nykyistä ohjelmointikieltä kirjastojen avulla. Uusista ohjelmointikielistä mainittakoon Microsoftin kehittämä TypeScript ja Googlen kehittämä Dart ja Go.