Versionumeroinnin vaatimattomuudesta

Tiedättekö, mikä perinteinen piirre avoimen koodin ohjelmissa saattaa hidastaa ohjelmien leviämistä? Siis perinteisten myyttien lisäksi.

Versionumerointi.

Yksi jos toinenkin isompi projekti voisi olla huomattavasti rohkeampi versionumeroissaan. Välillä tuntuu, että kaupallisella puolella hieman uudistunut käyttöliittymä ja pari uutta featurea riittävät siihen, että kauppojen hyllylle ilmestyy kokonaan uuden versiosukupolven leiman otsaansa saanut sovellus. Sen sijaan avoimen koodin puolella isokin koodimuutos johtaa usein siihen, että versionumeroon tulee vain yksi juokseva numero lisää. Yleisin syy tälle on se, että ohjelmoijien olisi helpompi hahmottaa asioiden kulkua: pieni versionumeropäivitys tarkoittaa, että rajapinnat säilyvät yhteensopivina edelliseen versioon nähden, isompi loikka (saattaa) tarkoittaa rajapintojen muuttumista. Ei tosin näin aina edes ole.

Hyvänä esimerkkinä vaatimattomasta numeroinnista toimii Linuxin ydin. Nykyinen kernel 2.6.23 on täysin eri otus kuin 2003 loppupuolella julkaistu 2.6.0. Silti 2.6.23 ei numerona kuulosta paljonkaan kehittyneemmältä kuin 2.6.0. Totuus on kuitenkin aivan toinen: vilkaiskaa vaikka versioiden 2.6.22 ja 2.6.23 välissä tapahtunutta muutosmäärää (varoitus: kyseessä on lähes neljän megatavun tekstitiedosto).

Toisena esimerkkinä toimii 3d-ohjelmisto Blender. Jos en ihan väärin ole ymmärtänyt, niin nykyisen Blender 2.4 -sarjan seuraaja 2.5 sisältää pikkumuutosten sijaan isompiakin uudistuksia. Miksei siis saman tien uuden version nimeksi tule Blender 3.0?

Toisaalta moni vakaakin ohjelma elää sitkeästi versiosukupolvessa v0.x. Moni varovaisempi ei tällöin uskalla ottaa ohjelmaa kokeiluun asti ja testauskohdeyleisökin jää suotta pienemmäksi kuin mitä se voisi olla.

Hyviä esimerkkejä paremmasta numeroinnistakin onneksi löytyy. Monet Linux-jakelut sentään jumppaavat numeroitaan ylös rohkeammin – toki Fedora 8 kuulostaa jo paremmalta seuraajalta Fedora 7:lle kuin mitä vaikka Fedora 7.1 olisi ollut. Myös Mozilla Firefox on hyvä esimerkki asiallisesta numeroinnista; tässä enemmän tai vähemmän lähiaikoina valmistuva Mozilla Firefox 3 kuulostaa sekin suuren massan korviin paljon uutuudenkiiltävämmältä kuin vaikkapa Mozilla Firefox 2.1.

Liiallisessa markkinointiasenteessa mennään jo metsään, mutta moni projekti voisi todellakin kaivata teflonkyynärpäillä varustettua markkinointimiestä päättämään versionumerot ja useiden softien kohdalla myös nimet.

1 450 vastausta artikkeliin “Versionumeroinnin vaatimattomuudesta”

  1. tuomas kirjoittaa:

    En voi sanoa olevani aivan samaa mieltä. Suurilla versionumeropäivityksillä ehkä saadaan paremmin markkinoitua uusia versioita, mutta oikeastihan käyttäjälle on merkityksellisempää miten paljon on muuttunut edelliseen versioon verrattuna ja missä kohtaa ohjelman kehityskaarta mennään. Vihoviimeinen ratkaisu mielestäni on antaa ohjelmille versionumeroiden sijaan “myyviä nimiä” kuten XP, Vista, CS, tai ubuntun nimeämispolitiikka. Nuo vielä menevät sellaisien ohjelmien kohdalta joiden kehitystä tulee joka tapauksessa seurattua, mutta liian monen kohdalla alkaa olla vaikea erottaa että mikä versio onkaan se uusin.

    Toinen ongelma on se, että versionumeron tulisi kertoa ohjelman käytettävyydestä. Hyvin moni ohjelma menee pitkiäkin aikoja 0.x versioina, mahdollisesti jopa betana, vaikka toimiikin aivan loistavasti. Toisaalta esim. KDE:llä on ollut ikävänä tapana että versiot x.x.0 ovat olleet toimivuudeltaan ensimmäisten betojen tasoa, joten ota tuosta sitten selvää mitä versiota uskaltaa käyttää.

  2. Jarkko kirjoittaa:

    Pitäisköhän kelata kaikki versiointi strategiat?

    Yksi tapa mistä pidän on näin.
    [yhteensopivuus].[uusi-ominaisuus].[bugikorjaus]

    Näin tiedetään että 1.24.6 versiota ei voi aivan suoraan korvata versiolla 2.0.17 esimerkiksi pluginit eivät ilmanmuuta varmaankaan toimi.

    Ja vastaavasti 1.36.7:n päälle voidaan ajaa vaikka automaattisesti 1.36.10 – ja mikään ei mene rikki.

    Ubuntulla on kohtuu selkeä. Sehän on oikeastaan päivämäärä.
    [vuosiluvun viimeinen numero].[julkaisukuukausi-kahdella-numerolla]

  3. Jari kirjoittaa:

    En väittäisi, että 0.x karkoittaa enää ketään, se on kuitenkin jo niin yleistä. 0.0.x:ään suhtautuu jo asian vaatimalla varovaisuudella.

    Ei niin vakavasta versionumeroinnista esimerkkinä tex, jonka versionumero lähestyy piin likiarvoa. “TeX developer Donald Knuth has stated that the “absolutely final change (to be made after my death)” will be to change the version number to π, at which point all remaining bugs will become permanent features.”

  4. tuomas kirjoittaa:

    Jarkko:
    Ubuntussa vähän kritisoin sitä, että monessa paikkaa pitäisi muistaa oliko nyt käytössä feisty, dapper, tms. versio. Jotenkin itsellä ei pysy muistissa mitä versionumeroa vastasi mikäkin nimi.

    Oikeastaan muuten versionumerointimarkkinoinnin sijasta keskittyisin itse ohjelmien nimiin ja miten nopeasti niistä selviää ohjelman käyttötarkoitus. Esim.
    Firefox vs. Internet Explorer
    Thunderbird vs. Outlook
    GIMP vs. Photoshop
    GAIM vs. Messenger
    Kate vs. Notepad
    yms.

    Löytyy näitä esimerkkejä toki toisinkinpäinkin.

  5. Jarkko kirjoittaa:

    Eli pitäisi olla tyyliin?
    Mozilla Internet Client World Wide Web Page Browser 2007-11-01
    Ja Microsoftin versio olisi sitten
    Microsoft Internet Client World Wide Web Page Browser And Newsgroup Browser And System Update Client 2007-06-15

  6. Jarkko kirjoittaa:

    Ettei nyt aivan menisi irvailuksi, niin voitaisiin kelata että onko missään muussa teollisuuden alassa tuotteita jossa olisi kohtuu nopeasti vaihtuvia versioita, ja miten siellä on ratkaistu ongelma niin että Tauno Tavallinen tietäisi heti että kumpi näistä kahdesta tuotteesta on uudempi.

    Autot eivät toimi hyvänä esimerkkinä. Ainakaan minä en tiedä että onko auto edes tältä vuosituhannelta jos sanotaan tietyn mallin markkinointinimi.

  7. tuomas kirjoittaa:

    Jarkko:
    Yrititkö edes ymmärtää mitä kirjoitin?

    Autoissa samoilla markkinointinimillä myydään useamman vuosimallin verran, esim. volkkarin golf on ollut olemassa jo 70-luvulta saakka.

  8. oappi kirjoittaa:

    Samaa mieltä Pikkaraisen kanssa. Versionumerointi varsinkin 0.x antavat ainakin mulle sellasen kuvan ettei softa välttämättä ole kovin vakaa. Oliski parempi jos yrittäs tuosta nollan yli hypätä mahdollisimman nopeesti. koska 1.x on jo ainakin minun silmääni heti paljon luotettavamman tuntunen. Esim mythtv taitaa vieläki olla 0.2x. Vaikka ihan vakaa se minun käytössäni oli.

    Nimet nyt on tietenki aina vaa nimiä ja ite pidän enemmän thunderbird nimestä kuin outlook->lookout. Softaki on parempi. On tossa tuomaksen jutussa varmaa jotain perää, mut väitän et suurempi syy on se et noitten kaupallisten softien mainostukseen laitetaan rahaa aika paljo enemmän ku avoimen koodin. Toinen suuri tekijä on se et kumpi oli ensiksi koska ihmiset ei kovin helposti lähe muuttelemaan. Rahalla se meseki tosin taidettiin icq:n ohi nostaa. Vaikka icq:han oli sinäänsä parempi protokola et siin pystyy esim lähettää offlinessä jota mesen protokola ei tue ja esim linuxista offlinessä olevalle ei taida vieläkään pystyä lähettämään.

  9. Henrik Heino kirjoittaa:

    On tässä aiheessa kyllä pointtia. Itsekin olen joskus hämmästyksekseni huomannut että vakaa, laadukas ja monipuolinen ohjelma, jota olen jo vuosia käyttänyt onkin versiota 0.x. Tai että samaanaikaan kun pieni muutos tekee toisesta ohjelmasta The Ultimate Professional Edition 3000:n, muuttuu minun käyttämästäni softasta vain kolmas desimaali hieman vaikka muutokset olisivat about samoja.

    Ja noista nimemisistä voisin sanoa sen verran, että ihan mukava kun on persoonallisia nimiä kunhan ei mennä liiallisuuksiin. Liian kuvaavat nimet ovat jopa ärsyttäviä, kuten Office. Tuosta jotenkin huokuu sellainen kuva että kyseessä olisi ainoa toimisto-ohjelmisto kun se on nimetty noin ylimielisen “yleiseksi”. Samoin kuin joskus vuosia sitten IE oli nimetty oletuksena työpöydälle nimellä “Internet”.

  10. Kubuntuisti kirjoittaa:

    Tulipahan tässä se mieleen se, että k3b taisi olla aika pitkään versiota 0.xx.x. Ja kyseessähän on yksi aikamme monipuolisimmista ja parhaista poltto-ohjelmista (/edustaohjelmista). Kopete on mulla versiossa 0.12.7, KGet 0.8.5 ja Klipper 0.9.7. Ja on sanomattakin selvää, että näitä käytän päivittäin sujuvasti. MPlayerkin jaksaa olla 1.0rc versioissaan aika pitkään (ja on kyllä paras toistin mitä olen koskaan käyttänyt, enkä tarkoita tällä kiiltävää ulkokuorta vaan toimivuutta)

  11. juksu kirjoittaa:

    aMSN 0.97RC1:llä pystyy lähettämään Offlineviestejä linuxissa ja muissa käyttiksissä mihin sen saa asennettua.

  12. vpv kirjoittaa:

    Kannattaa muistaa sellainenkin näkökohta, että tietyissä projekteissa 1.0 on se versionumero, joka merkitsisi, että ohjelmassa on jollain tavalla mitattuna kaikki suunnitellut ominaisuudet. Esimerkiksi irssi on edelleen 0.jotain-versionumerolla, vaikka se onkin erittäin toimiva IRC-asiakasohjelma.

    Sitten on vielä sekin, että joissakin projekteissa on tämä “entinen kernel-malli” käytössä, eli parittomat versionumerot ovat epävakaita ja parilliset vakaita. Sikäli esim. 1.7 voi olla huomattavasti epävakaampi kuin 1.6, vaikka versionumero onkin suurempi.

    Mutta onhan Jaballa tiettyä pointtia tuossa, ehkä syynä on osittain sekin, että avoimessa softassa ne muutokset on helposti nähtävissä, vaikka diffillä, ja siten kehittäjät ovat vaatimattomia versioinnin suhteen. Suljetussa softassa versionumeroa on helppoa nostaa pienistäkin muutoksista, koska kukaan ei voi nähdä mitä siellä koodissa oikeasti on tapahtunut. Onpahan sitten ainakin plasebo-vaikutusta jos ei muuta.

  13. Toni Helenius kirjoittaa:

    K3b oli pitkää 0.1x alkuinen. Vaikka featureja riitti ja toimi kun unelma. Riemuitsen aina mitä suuremmaksi versionumerot tulevat esim. Kubuntu jakelussa. Olen itsekin softa-alalla ja ymmärrän osaltaan myös tämän varovaisemman versioinnin, mutta voin myös kertoa, että se ei kosiskele käyttäjää… Tekniset käyttäjät on asia erikseen eikä heitä tulisi edes miettiä versioinnissa, he kuitenkin lukevat CHANGELOGit ja purnaavat foorumeilla…

    Tavan käyttäjät harvoin katsovat versionumeroita, mutta jos katsovat antaa suurempi luku enemmän luotettavuutta. Alussa Kubuntussa moni ohjelma hiihteli alle 1 versioissa, tämä antaa hieman keskeneräisen kuvan käyttäjälle. Vaikka näin ei aina ole. Ollaan vaan totuttu kiiltäviin vuosilukuihin ja isompiin lukuihin. Ja siksi niitä tulisi käyttää. K3b saisi kiitää vähintään 2 jo.

  14. Martti kirjoittaa:

    Kurkatkaapa GTA Finland -modin versionumerointia (www.gtafinland.fi) Jätkät käyttävät ensimmäisestä betasta versionumeroa 1.0. Seuraavana kaiketi on tulossa Beta 1.1. Huoh näitä, muutenkin koko projekti on vähä sellanen..

  15. p.p. kirjoittaa:

    Ja itse distrojen nimissä pitäisi “apinoida” mäshän “apinamaista” nimeämistä, eli kaikkien nimi pitäisi olla esim.
    =========================
    “UBUNTU Ultimate Business Linux 7.10″
    =========================
    että se kuvaisi sitä että kaikki Linuxin verisot ovat rajoittamattomia täysversioita eikä niistä ole mitään rajoitettuja Homeisia versioita (tai vielä naurettavampia starter-editioneja kehitysmaihin joissa rajoitukset vedetty idiottimaisuuksiin asti)

    Vaikka kyllähän sen heti huomaa kun on kyseessä kaupallinen businesstuote kuten
    ======================
    Novell SuSe Enterprise Desktop 10
    ======================
    ja päivityksetkin tulee redmondimaiseen tyyliin SP1 jne.

  16. T.P kirjoittaa:

    Versionumeroa käytetään tavallaan väärin jos sillä markkinoidaan tuotetta.
    Eihän 0.0.2 tarkoita että ohjelma on huono! Sehän on kaksi versiota saanut ja sen jälkeen se on pysähtynyt siihen, koodi voi olla aivan täydellistä eli ei yhtään virheitä ja ominaisuudet riittävät. Turha sitä on 0.0.2 versiosta hypäyttää 1.0 versioon kun tällöin pitäisi tuoda paljon muutoksia mukana. Ei riitä että se vain nostetaan että se toimii.
    Minua ei kiinnosta onko ohjelma x.y.z vai x.y tai jopa pelkkä x
    IE 6 ja IE 7 ovat hyvinkin erilaisia ohjelmia.

    K3B sovellusta olen itse käyttänyt myös ja kehun sen kanssa maasta taivaaseen. Ei ole mitään merkitystä sen 0.x versionumeroinnilla kun se on vakaa ja ominaisuudet toimivat.
    Jos kehittäjät laukovat liian herkästi uuden versionumeron jotta saadaan se tuote hyllylle “uutena”. Mitä pitäisi tehdä kun päästään siihen versionumeroon 10? Merkitään taas markkinointikikkana X kuin kymmenen? Otetaanko taas roomalaiset numerot kuten XI, XII, XIII, XIV, XV, XVI?
    Vuosiluku on ihan hyvä tapa merkitä jos julkaisu on sen verran tarkkaan valittu aina. Jos nyt Ubuntu tulee ulos taas, versionumero on 8.04 ja taas siitä sitten 8.10. Tämähän on Ubuntun mukaan virallinen tapa ilmoittaa versio eikä nimellä kuten Gutsy Gibbon, mitä uutissivustot käyttävät.
    Puolestani saadaan säilyttää nykyinen tapa merkitä sovelluksia, tyhmää on tuijottaa sitä numeroa ja sanoa “en voi käyttää tuota XYZ ohjelmaa ja sen 0.9.6 versiota kun se ei ole vakaa” tai “Kaikki ohjelmat on jotain alpha tai beta tason 0.0.x versiota”.

    Kuinka moni ostaa sen uuden auton silloin kun siitä julkaistaan taas uusi -08 vuosimalli koska se on paljon parempi?
    Eikö versionumeroinnin tarkoitus oli yksi asia, kertoa mikä versio on kyseessä ja antaa arviota siitä kuinka suuria muutoksia siinä tapahtuu?
    Itse en pidä yhtään päivämäärän tavasta kuten Wine projektilla kun ei tiedä heti että kuinka paljon siinä on muuttunut. En myöskään pidä että projektia pidetään väkisin alle 1.0 version jos ollaan jo 0.95 versiossa ja muutokset on suuria.

  17. Raips kirjoittaa:

    “Eihän 0.0.2 tarkoita että ohjelma on huono! Sehän on kaksi versiota saanut ja sen jälkeen se on pysähtynyt siihen, koodi voi olla aivan täydellistä eli ei yhtään virheitä ja ominaisuudet riittävät. Turha sitä on 0.0.2 versiosta hypäyttää 1.0 versioon kun tällöin pitäisi tuoda paljon muutoksia mukana.”

    Samaa mieltä. Versionumerointi erottelee vain versiot toisistaan ja sen pitäisi kyetä kertomaan nopeasti kuinka suuria eroja ohjelman versioilla on.
    Ei Photoshop CS3 (10.0) ole välttämättä yhtään vakaampi kuin Photoshop CS2 (9.0) mutta tuo jotain ominaisuuksia lisää.

  18. Mikko kirjoittaa:

    Isojen softien “versionumerot” ovat kauppanimiä, joilla ei ole mitään tekemistä oikean versionumeroinnin kanssa. Kyllä sillä Photoshop CS:lläkin on ihan oikea versionumero, eri asia kuinka hyvin se kuluttajalle näytetään. Koodarina pidän avoimen koodin varsin yhteneväisestä tavasta versioida ohjelmia. Järkevä ja konstailematon versiointi helpottaa toimivan järjestelmän rakentamista sekä ylläpitoa.

    Yrittäkää kertoa sille paketinhallinnalle, että asentaisi version “Pro Max X” version “Turbo Pro D” sijaan. Kernel-tyylinen versiointi on muuten juuri se mikä mahdollistaa järjestelmän automaattisen päivittämisen kohtuuuluotettavasti.

  19. Dragow kirjoittaa:

    Mielestäni versionumeroiden pitäisi mennä näin:
    0.x = beta versiot/keskeneräiset, saattavat kuitenkin toimia ja olla vakaita.
    1.x = valmis versio, vakaa, toimiva yms.
    2.x = kokonaan uudelleen kirjoitettu ohjelma/ hyvin hyvin suuria muutoksia.

  20. Amuli kirjoittaa:

    Itse naureskelin samaa Gimp-ohjelman numeroinnin kanssa…
    Ohjelman kehitystä on tullut svn-päivitysten kautta seurattua ja ohjelman uuden 2.4.3-version olisi voinut nimetä suoraan 3.0.0.

  21. Petri Salo kirjoittaa:

    En sanoisi, että ohjelmien nimissä Photoshop on selkeämpi kuin GIMP. Nimittäin:

    GIMP = Gnu Image Manipulation Program
    Photoshop = Kuvakauppa?