keskiviikko 11. maaliskuuta 2009

Demo 8 - kommentit

Kahdeksannen demokerran tehtävät löytyvät täältä. Tehtävät olivat aikaisempaa helpompia, mutta silti sopivan työläitä. Erityisesti viimeiset bonustehtävät (2-6) veivät aikaa. Tällä kertaa panostin demoihin tavallista enemmän tehden perustehtävien lisäksi juurikin mainitut tehtävät.

Perustehtävistä antoisin oli kenties tehtävä 4, jossa pyydettiin katsomaan video ja vastaamaan annettuihin kysymyksiin. Videossa oli pohjimmiltaan kyse kielen kasvattamisesta. Oleellista onkin kuinka kielen tulisi voida kasvaa. Aina ei ole selvää, että kieltä voidaan laajentaa. Kuitenkin käyttäjän kannalta laajennusmahdollisuudet ovat suotavia.

Lisäksi kielen tulee olla kasvatettavuuden lisäksi tarpeeksi ilmaisuvoimainen. Mielestäni on myös oleellista, että oikeaa kieltä käytetään oikeassa paikassa. On jossain määrin mahdotonta suunnitella kieltä, joka olisi parhaimmillaan kaikissa eri tarkoituksissa sellaisenaan. Kielen kasvattaminen auttaa tässä jossain määrin. Kuitenkin on kenties kannattavampaa käyttää käyttötarkoitusta varten jo lähtökohtaisesti suunniteltua kieltä.

Yllä mainittujen seikkojen lisäksi mielestäni on oleellista pitää mielessä, että aina ei ole mielekästä rajoittua vain yhden kielen käyttämiseen. Esimerkiksi Pythonia voidaan pitää ns. liimakielenä. Tämä tarkoittaa sitä, että sen avulla voidaan paketoida suorituskyvyltään nopeita C-moduuleja kokonaisuudeksi. Tässä tapauksessa C:n avulla huolehditaan suorituskykyvaatimuksesta ja Pythonin avulla toteutetaan muu toiminnallisuus. Onhan sitä useimmiten nopeampaa ja mukavampaa kehittää.

Bonustehtävänä sain suunnitella aivan oman, pienen oliokielen. Pyrin pienuuteen yhdistämällä aliohjelmien, metodien, luokkien ym. käsitteen yhteen. Tästä seurauksena loin entiteetin-käsitteen. Lisäksi kieli sisältää staattiset tyypit, jotka tosin varmaan jossain määrin heitän menemään, mikäli jonain päivänä innostun kehittämään kieltä edelleen. Tarkempi kuvaus, esimerkkejä sekä alkeellinen toteutus löytyvät täältä. Testit on toteutettu py.test -työkalua käyttäen. Hyvä kuvaus työkalusta löytyy osoitteesta http://codespeak.net/svn/py/extradoc/talk/pycon-uk-2008/pytest.pdf.

Tiedän ettei kieli ole missään mielessä täydellinen. Erityisesti this-semantiikka kaipaisi virkistystä. Mikäli lähtisin kehittämään kieltä edelleen suuntaisin sen Pythonin laajennuskieleksi. Tässä tapauksessa kielestä voisi käyttää suoraan Pythonin moduuleita, mikä olisi varsin mukavaa.

Ei kommentteja:

Lähetä kommentti