Vielä tänä aamuna olin varma siitä, että ohjelman pääikkunan sulkemisnapin valitsemisen tulee sammuttaa ohjelma riippumatta siitä, onko ohjelmalla ilmoitusaluekuvaketta vai ei. Ajattelin, että sellaisen ohjelman, joka haluaa tarjota käyttäjälle mahdollisuuden sulkea sen pääikkuna sammuttamatta itse ohjelmaa, tulee tehdä niin vain erillisen valitsimen kautta. Tyypillinen esimerkki tällaisesta erillisvalitsimesta on Tiedosto
-valikossa oleva Pienennä
-kohta.
Sitten luin Launchpadissa tästä aiheesta käytyä keskustelua, joka pyörii Rytmilaatikon
pääikkunan sulkunapin ympärillä. Tämän kirjoitushetkellä Rytmilaatikko toimii niin kuin yllä mainostin vielä aiemmin vankkumattomasti uskovani ohjelmien pitävänkin toimia. Nähtävästi se on jossain vaiheessa toiminut toisinkin. Jotkut käyttäjät haluaisivat palata entiseen käytäntöön, ja yllätyin huomatessani pitäväni joitakin näiden käyttäjien argumentteja varsin pätevinä.
Olin ajatellut, että ohjelman pääikkunan sulkemisnapin tehtävä on sammuttaa ohjelma, ja niinpä tästä käytännöstä poikkeaminen rikkoo napin toiminnallisuuden. Mutta mikäli luen vastustajien argumentteja oikein, heidän tulkintansa on, että ikkunan kuin ikkunan sulkemisnapin tehtävä on sulkea ikkuna, eikä sen takia ole johdonmukaista, jos sulkemisnappi sulkee ohjelman silloin, kun sen graafisena ilmentymänä näytöllä on ikkunan lisäksi ilmoitusaluekuvake. Huomasin oman kantani alkavan horjua, kun en ainakaan ihan suoralta kädeltä kyennyt tyrmäämään tätä näkemystä perusteettomana.
Itse asiassa ajatus ikkunan sulkemisesta ikkunan sulkunapin ensisijaisena tehtävänä tuntuu niin viehättävän yksinkertaiselta, että haluaisin kääntää kelkkani tälle ajatukselle perustuvaan suuntaan. Sekään ei kuitenkaan ole täysin ongelmatonta, sillä sovelluksen pääikkunan sulkemisen assosiointi ohjelman suorituksen päättymiseen on sekin hyvin perusteltu ratkaisu: tarvitsee vain kuvitella sitä painajaista, jonka pääikkunansa sulkemisen myötä — siis kaikkien graafisten ilmentymiensä kadottuakin — käyntiin jäävät ohjelmat aiheuttaisivat.
Pääikkunan sulkemisesta kuvakkeeseen
-ratkaisun kannattajat eivät tietenkään aja takaa ikkunan sulkunapin toiminnan rajaamista ikkunan sulkemiseen näin puristisessa merkityksessä. Pääikkunan sulkemiseen assosioitavan toiminnon pysyvyys ei kuitenkaan heidän mielestään ole ratkaisevinta. Ratkaisevinta on ohjelman suorituksen jatkuvuuden assosiointi kaikkiin sovelluksen näytölle tuottamiin graafisiin ilmentymiin. Tästä perspektiivistä tarkasteltuna ohjelman suorituksen päättyminen silloin, kun sen kahdesta jäljelläolevasta ilmentymästä toinen suljetaan, ei ole johdonmukaista.
Ongelma on pohjimmiltaan kaksiosainen. Ensinnäkin tulisi luoda johdonmukainen käytäntö sille miten sovellukset, ikkunat ja ilmoitusaluekuvakkeet käyttäytyvät ja miten ne suhteutuvat toisiinsa. Toisekseen ohjelmien tulisi sen jälkeen sitoutua tähän käytäntöön. Tällä hetkellä käytäntö vaihtelee ohjelmasta toiseen siirryttäessä, sillä riittävästi perusteltua käytäntöä ei ole määrätty missään käyttöliittymien ohjenuorassa.
Olisiko tällaisen käytännön siis perustuttava ohjelmien pysyvyyteen ja kaikkiin graafisiin ilmentymiin tämän pysyvyyden kuvastimena, vai pääikkunan sulkemiseen assosioitavan toiminnon pysyvyyteen? Vielä tänä aamuna olisin vannonut ikkunansulkemistoiminnon assosiaatioiden pysyvyyden nimeen, mutta nyt en enää osaakaan sanoa varmasti. Ainakin näin tuoreeltaan ohjelmien pysyvyys kuulostaa ikkunansulkemistoiminnon pysyvyyttä elegantimmalta peruslähtökohdalta.
Comments
4 responses to “Kolumni: Äksästä kiinni”
Ilmeisesti et ole tutustunut Mac OS X:n, joka toimii juurikin niin, että “äx” sulkee vain ikkunan ei koko ohjelmaa. Tähän on tosin muutama poikkeus, mutta pääsääntöisesti ohjelma jää OS X:ssä auki vaikka ikkunan sulkeekin. Nyt muutaman vuoden Windowsin ja Linuxin jälkeen OS X:ää käyttäneenä voin vain todeta, että tämä toimii erinomaisesti.
Kannattaa tutustua Apple Human Interface Guidlineen (http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIntro/chapter_1_section_1.html)
En ole OS X:ää tosiaan koskaan käyttänyt.
En löytänyt tuolta oppaasta äkkiseltään tietoa siitä, että miten ohjelmaan on tarkoitus päästä käsiksi sen jälkeen kun sen viimeinenkin ikkuna on suljettu. Tai tarkemmin sanottuna etsin oikeastaan tietoa siitä, että mistä ohjelman käynnissäolo on tarkoitus nähdä sen jälkeen. Onko kaikilla sovelluksilla ilmoitusaluekuvake, vai onko OS X:n kehitysfilosofian pohjalla ajatus rajattomista resursseista, eli onko tarkoitus, että sovelluksia voi availla ja hukata taustalle välittämättä niiden sen jälkeen kuluttamista resursseista?
Sen sijaan poimin kyllä tuolta oppaasta tällaisen kohdan: In most cases, applications that are not document-based should quit when the main window is closed. Mutta enemmistö ohjelmista useimmilla työpöydillä lieneekin juuri noita document-based, mikäli ymmärrän termin oikein, joten sikäli tuossa ei ole ristiriitaa kertomasi kanssa.
Avoinna olevasta ohjelmasta kertoo kertoo indikaattori (nuoli tai pallo) ohjelman kuvakkeen alla dockissa (esim. punaiset pallot => http://images.macworld.com/images/weblogs/graphics/132136-reddock.jpg) Tarkoituksena ei siis ole kokonaan hukata ohjelmia.
Toki auki jäävät ohjelmat syövät resursseja eli käytännössä muistia, mutta inaktiivisten ohjelmien muistia tietysti vapautetaan tarpeen mukaan. Paras puoli ohjelmien auki jäämisessä on se, ettei tarvitse odotella ohjelman avautumista vaan ohjelma on käytettävissä heti mutta toisaalta ylimääräiset ikkunat saa helposti pois tieltä.
Suurin osa ohjelmista tosiaan toimii dokumentti pohjeisesti, mutta esimerkiksi laskimessa ikkunan sulkeminen sulkee koko ohjelman.
Ai niin, sielä Mäkissä on tuo telakka. Arvelinkin, että joku konsti siihen niiden taustalle menneiden sovellusten tiedostamiseen varmaan on, koska ajatus rajattomista resursseista suunnittelufilosofiana kuulostaisi aika huimalta.