Alustariippumattomuus

Wikipedia
Loikkaa: valikkoon, hakuun

Alustariippumattomuudella tarkoitetaan ohjelmointikieltä tai sovellusta, joka ei ole sidoksissa tiettyyn laitteistoalustaan tai käyttöjärjestelmään.

Toisaalta alustariippumaton ohjelmointikieli tai sovellus ei tarkoita, että siitä olisi olemassa toteutus kaikille mahdollisille käyttöjärjestelmille, vaan sitä, että kielen kääntäjän, tulkin tai sovellusohjelman toteutuksessa ei ole laitteistoalustaan tai käyttöjärjestelmään sidottuja ominaisuuksia, tai ne on toteutettu erikseen kullekin alustalle siten, että niiden toiminta on mahdollisimman samanlaista kaikissa ympäristöissä.

Alustariippuvaisia piirteitä ovat esimerkiksi lukujen esitysmuoto (big endian vs. little endian), säikeiden (jos niitä on) ja prosessien toteutus, hakemistoerottimet ja mahdolliset levyasematunnukset, grafiikkakirjastot ja useimmat järjestelmäkutsut, joita ohjelma voi suorittaa. Näin esimerkiksi yksinkertainen tekstinkäsittelyohjelmisto voidaan toteuttaa helpohkosti alustariippumattomasti, kunhan huomioidaan eri käyttöjärjestelmissä olevat rajoitukset hakemisto- ja tiedostonimille sekä levyasematunnuksille (jos sellaisia käytetään).

Esimerkkejä[muokkaa | muokkaa wikitekstiä]

Ohessa kuvitteellinen esimerkki pseudokoodina alustaan sidostusta ja alustariippumattomasta ohjelmakoodista:

# sidottu alustaan, koska hakemistoa /proc/sys/loadavg ei löydy koskaan Windows- tai Mac-järjestelmistä
def get_system_load()
    info_path = '/proc/sys/loadavg'
    load_avg0 = get_current_loads(info_path)
    now = time.time()
    sys.sleep(1)
    load_avg1 = get_current_loads(info_path)
    elapsed = time.time()-now
    return load_avg1-load_avg0/elapsed


# laitteistoalustariippumaton, käyttää kielen omaa funktiota, joka on
# toteutettu erikseen eri käyttöjärjestelmille
def get_system_load()
    load_avg0 = system.loadavg()
    now = time.time()
    sys.sleep(1)
    load_avg1 = system.loadavg()
    elapsed = time.time()-now
    return load_avg1-load_avg0/elapsed

Useimmat ohjelmointikielet ovat nykyään alustariippumattomia, kun taas sovellukset toteutetaan tyypillisesti vain yhdelle tai muutamalle suosituimmalle käyttöjärjestelmälle. Toisaalta useimmat Microsoftin suosituimmatkin sovellukset ovat saatavissa vain Windows-järjestelmiin, joka rajoittaa samalla laitteistoalustan PC-koneisiin.

Historiaa[muokkaa | muokkaa wikitekstiä]

Alustariippumattomuus on verrattain uusi asia. Tietotekniikan historian alkuvaiheissa kaikki ohjelmat olivat usein paitsi käyttöjärjestelmäriippuvaisia, myös hyvin sidottuja tiettyyn tietokonearkkitehtuuriin tai jopa tietokonemalliin. Myöhemmin käyttöjärjestelmä toimi yhä enenevässä määrin abstraktiokerroksena laitteelle ja salli siten ohjelmoinnin useille erilaisille tietokoneille, kunhan niissä toimi sama käyttöjärjestelmä.

Eräs ehkä merkittävimmistä syistä WWW:n nopeaan laajenemiseen ja suosioon oli juuri sen alustariippumattomuus - yksi Tim Berners Leen motiiveista WWW:n kehittämiseen olikin juuri dokumenttien helppo vaihto eri käyttöjärjestelmien välillä. Sen avulla voidaan tuottaa ja lukea dokumentteja www-selaimen avulla, joita on saatavilla kaikille yleisille käyttöjärjestelmille aina tietokoneista matkapuhelimiin asti.