Graafiline kasutajaliides

**Graafiline kasutajaliides** (inglise keeles *graphical user interface*, lühend GUI) on arvuti graafikakuvamise võimalusi kasutav tarkvaraliides, mis võimaldab inimesel suhelda arvutiga sümbolite, muude visuaalsete elementide (näiteks ikoonide) ja osutusseadise ehk hiire ning ka klaviatuuri abil (nutitelefonides ja tahvelarvutites kasutatakse puutetundlikku ekraani). Tavaliselt edastatakse sellises keskkonnas käsud arvutile graafiliste elementide otsese mõjutamise teel (digitaallaual pliiatsi kasutamine, kursori juhtimine hiirega, nupule vajutamine, (ripp)menüüst valiku tegemine jms).

Graafiline kasutajaliides on asendanud keerulise tekstilise kasutajaliidese kergemini õpitava, lihtsa ja kasutaja jaoks meeldivama kasutajaliidesega. Hästi disainituna vabastavad nad inimese vajadusest õppida keerulisi käsukeeli, kuid vilunud käskude kasutajad jätkavad siiski käskjuhitavate kasutajaliideste kasutamist.

Nüüdseks on GUI-st saanud standardne kasutajaliides oma veatute komponentidega. Lisaks arvutile on graafiline kasutajaliides kasutusel ka paljudes kaasaskantavates seadmetes (MP3-mängijad, mobiiltelefonid, mängukonsoolid) ning väiksemates kontori- ja tööstusvahendites.

Ingliskeelne nimetus *Graphical User Interface* pärineb aastast 1970 ning on võetud kasutusele vajaduse tõttu eristada graafilist kasutajaliidest tekstipõhisest.

## Graafiliste kasutajaliideste põhikomponendid
Populaarseimate GUI tootjate poolt (Microsoft Windows ja Apple Macintosh) väljatöötatud liidesed koosnevad WIMP (ingl. *Windows Icons Menus Pointer*, kirjeldab graafilise kasutajaliidese põhilisi komponente – aknad, ikoonid, menüüd ja kursor – ning suhtlust, mis toimub nende abil) komponentidest ning kasutavad arvuti ja inimese vaheliseks suhtluseks lisaks järgmisi seadmeid:
* **[[Kursor]]** (ingl. *pointer*) – ekraanil kuvatav sümbol (tavaliselt meenutab välimuselt teravnurkset noolt). Seda liigutades saab kasutaja valida objekte ja käivitada programme.
* **Hiir** (ingl. *mouse*) – osutusseadis, hiir või juhtkuul, mis võimaldab kasutajal liigutada kursorit nõutud asukohta. 
* **Ikoonid** (ingl. *icons*) – ekraanil kuvatavad väikesed pildikesed, mis esindavad mingit objekti või programmi. Klõpsates kursoriga ikoonile, saab käivitada käsu või avada akna ja hoides all hiire vasakpoolset nuppu on võimalik ikoone ekraanil ringi liigutada.
* **Töölaud** (ingl. *desktop*) – arvutiekraani osa, millel asuvad kõik GUI komponendid. Kuna kaasaegse arvuti ekraan meenutab töölauda, millele on paigutatud mitmesugused dokumendid, kaustad, kell, kalender jm tarbed, on hakatud ka arvutiekraani töölauaks kutsuma. Virtuaalsel juhul täidavad kontoritarvete kohta ikoonid, aknad, mitmesugused kaustad, arhiivid jne. 
* **Aken** (ingl. *window*) – töölaua saab jagada akendeks, milles kõigis võib käivitada programme või avada faile. Aknaid saab ka vasakpoolset hiirenuppu all hoides mööda arvutiekraani ringi vedada.
* **Menüü** (ingl. *menu*) – käskude või valikute loend, mille hulgast kasutaja saab teha valikuid. Menüüst valiku tegemiseks, tuleb vajalik menüüelement hiirekursori või klaviatuuri nooleklahvide abil välja valida ning vajutada hiire vasakut klahvi või klaviatuuril Enter (*Return*) klahvi.

### Post-WIMP
Väiksemad mobiililaadsed seadmed kasutavad muudetud WIMP elemente oma mälukasutuse ja info sisestamise piirangute tõttu. Rakendused, mille jaoks WIMP-tüüp pole sobilik, võivad kasutada uuemaid vastastiktoime tehnoloogiaid. Sellised rakendusi kutsutakse inglise keeles *post-WIMP* kasutajaliidesteks.

Näiteks arvuti operatsioonisüsteem OS X koosneb menüüreast ja akendest väiksemate ikoonidega, mida saab kergelt liigutada hiire abil aga mobiiltelefoni operatsioonisüsteem, iOS, hõlmab suuremaid ikoone ning toetab puutetundlikke käske nagu libistamine (ingl. *swiping*) ja venitamine (ingl. *pinching*) sisse- ja väljasuumimiseks.

## Ajalugu
### Eelkäijad
Graafilise kasutajaliidese idee ulatub 1930. aastatesse, mil Vannevar Bush avaldas inimestele muljet enda väljamõeldud seadmega Memex, mida ta kujutas ette kahe ekraaniga varustatud lauana, mille külge oli ühendatud klaviatuur ja skanner. Selline seade pidi aitama inimesel juurde pääseda kõigile teadmistele ning töötas sarnaselt hüperlingiga. Tol ajal polnud digitaalset arvutit veel leiutatud, seega puudus võimalus idee teostamiseks ning Bushi ideed vajusid unustuste hõlma. Koos digitaalsete arvutite leiutamisega tuli Bush oma ideede juurde tagasi ja kirjutas artikli "Nagu me võime arvata" (ingl. "As We May Think") ajakirja Atlantic Monthly, mis juba omakorda inspireeris Douglas Engelbarti proovima ja päriselt looma sellist masinat.

Olles koos oma grupiga töötanud pikki aastaid idee ja tehnoloogiate kallal, tõi Douglas 1968. aastal San Franciscos peetud esitluses rohkem kui tuhande arvutispetsialisti ette uue oN-Line System (lühend NLS) arvutisüsteemi, millel oli olemas hiirekursor ja mitmed aknad ning mille töö põhines eelkõige hüpertekstil (objekte saab loovalt üksteisega kokku ühendada). Sama põhimõtet rakendati ka tulevikus Xerox PARCis esimest graafilist kasutajaliidest luues, kuid natuke rohkem laiendatuna.

### Esimene graafiline kasutajaliides, Xerox PARC
Esimene graafiline kasutajaliides, mida edaspidi kasutati 1981. aastal loodud Xerox 8010 infosüsteemis, töötati välja ettevõttes Xerox PARC (Palo Alto Research Center Inc.) Alan Kay, Larry Tesleri, Dan Ingallsi, David Smithi ja veel mitme teadlase poolt. 1973. aastal loodi samas ettevõttes ka Alto personaalarvuti, millel esmakordselt demonstreeriti vastloodud GUI tööd.

1983. aastal esitles ja hakkas valmistama SGI esimesi graafilisi terminale IRIS 1000 ja 1984. aastal tuli turule tööjaam IRIS 1400 . Mainitud seadmed kasutasid akendussüsteemi MEX varasemat versiooni, mis töötas GL2 Release 1 operatiivses keskkonnas. Müüki paisatud graafilisel liidesel põhinevad arvutisüsteemid ei leidnud aga laialdast kasutust ühiskonnas oma kõrge hinna tõttu. Kuid sellegipoolest olid nad kaubanduslikult piisavalt edukad, et SGI saaks alustada äri graafiliste tööjaamade tarnijana. Hiljem vahetati akendussüsteem X Windows System vastu, mis oli arendatud 1984. aastal Massachusettsi Tehnoloogiainstituudis (lühend MIT) poolt ning muutus ajapikku põhiliseks akendussüsteemiks UNIX tööjaamades.

### Apple

1979. aasta alguses jätkasid Steve Jobsi alustatud ja Jef Raskini juhitud Apple Lisa ja Macintoshi töörühmad selliste ideede väljatöötamist. Personaalarvuti Apple Lisa, mis avalikustati 1983. aastal, ekraan oli suure eraldusvõimega ja eelkõige dokumentidekeskse graafilise kasutajaliidesega, mis töötas kõvaketta operatsioonisüsteemil ja lasi teha selliseid toiminguid nagu tõrjuv multitegumtöötlus ning graafikal põhinev rakendustevaheline infoedastus ja suhtlus. 1984. aastal toodi turule selle lihtsustatud versioon, Macintosh. See oli esimene kaubanduslikult edukas süsteem, mis kasutas mitme aknaga akendussüsteemi. Macintoshis oli olemas töölaud, millel asuvad dokumendid nägid välja nagu paberilehed ja failikataloogid nagu kaustad. Lisaks, võis vajadusel saada kasutada ka lisaseadmeid nagu kalkulaator, märkmik ja äratuskell, mida kasutaja võis vabalt ekraanil ümberpaigutada. Faile ja kaustu sai kustutada, tirides neid prügikasti ikoonile. Võrreldes Lisaga oli Macintosh eelkõige programmidel põhineva disainiga.

1986. aastal tuli turule personaalarvuti Apple IIgs, uus ja palju arenenum mudel Apple II seeriast, mis põhines 16-bitisel tehnoloogial. See kasutas uut operatsioonisüsteemi, Apple GS/OS, kus oli Finderi-sarnane failihaldussüsteem.

### Muud graafilised kasutajaliidesed 1980. aastatel
Apple'i kõrval üritas graafilist kasutajaliidest turule tuua veel mitu ettevõtet.

#### VisiOn
Esimese tabeltöötlusprogrammi VisiCalc looja VisiCorp töötas IBM-i personaalarvutitele mõeldud graafilise kasutajaliidese kallal. GUI nimega VisiOn avaldati 1983. aastal, kuid tänu kõrgele hinnale ja järsult muutunud riistvara nõudlikkuse tingimustele ei saatnud seda müügiedu. Lisaks oli tegemist küllaltki kohmaka tarkvaraga, mis kasutas mustvalget CGA graafika versiooni ja oli teistest graafilistest liidestest rohkem tekstipõhine. Näiteks ei kasutatud seal ikoone, vaid sõnalisi silte.

#### Windows 1.0
VisiOn inspireeris Bill Gatesi tegema konkurentsivõimelist toodet. 1985. aastal avalikustati värviline ja tavapäraste GUI lisadega kasutajaliides, kus olid kerimisribad, akna reguleerimiseks mõeldud vidinad ja menüüd. Erinevalt teistest GUI-dest oli igal rakendusel oma menüüriba, mis asus pealkirjariba all.

#### Tandy DeskMate
Tandy Computers avalikustas oma esimese versiooni GUI-st 1984. aastal. See oli disainitud juhtimiseks klaviatuuri abil, kasutades funktsiooniklahve otseteedena menüüde jaoks. Kasutajaliidesel polnud üksteist katvate akende süsteemi ja seda oli küllaltki raske kasutada, seetõttu ei saavutatud sellega suurt edu. 

#### GEM
Digital Research esitles 1985. aasta teisel poolel akendega graafilist kasutajaliidest GEM operatsioonisüsteemi DOS jaoks ja samal aastal turule tulnud Atari ST arvuti jaoks. GEM kasutas vaid ühte menüüriba ekraani ülaosas ja sarnanes väga Lisa ja Macintoshiga.

#### Amiga Workbench
Samal aastal veidi hiljem tulid turule Amiga Commodore arvutid, mis kasutasid ka vastloodud graafilist kasutajaliidest Workbench. Sellel olid olemas mõned uued võimalused nagu akende liigutamine üles-alla mööda kindlat trajektoori ning valikute tegemine, ringi liikumine ja töötamine eri akendes ilma neid automaatselt esiplaanile toomata. Nagu ka paljudel eelnevatel, oli ka sellel kasutajaliidesel ainus menüüriba ekraani ülaosas, kuid mis oli nähtamatu hetkeni kui see aktiveeriti hiire paremapoolse nupuga.

#### GEOS
1986. aastal tõi Berkelt Softworks turule GEOS graafilise kasutajaliidese. See sarnanes väga GEM-iga ning kasutusel vaid vanemates arvutites nagu Commodore 64 ja Apple. Hiljem laiendati selle kasutusvõimalust ka personaalarvutites GeoWorksi nime all ja seetõttu sai sellest konkurent Microsoft Windowsile.

#### Windows 2.0
1987. aasta teisel poolel uuendati Windows 2.0 versiooniks. Senine rakendussüsteem asendati tänapäeva variandiga sarnase üksteist katvate akende süsteemiga. Sellise muudatuse tõttu kaebas Apple Microsofti kohtusse, sest graafiline kasutajaliides nägi välja ja oli kasutuselt liiga sarnane Apple'i toodetud kasutajaliidesega.

#### Arthur
Samuti 1987. aastal tutvustas inglise ettevõte Acorn Computers oma esimest graafilist kasutajaliidest Arthur (hiljem nimega RISC OS) koos maailma esimese 32-bitise RISC-arhitektuuril põhineva mikroarvutiga Acorn A305/A310-ga. See GUI kasutas proportsionaalseid kerimisribasid ja tuli turule uue mõistega dokk (ingl. *Dock*), mis kujutas endast suurt "riiulit" ekraani alumises ääres, kus hoiti programmide otseteid ja muid tööriistu. Samuti oli Arthur esimene GUI, mis kuvas silutud fonte, seda ka 16 värviga režiimis.

#### NeXTSTEP
Koos Steve Jobsi NeXT arvuti ja selle operatsioonisüsteemiga tuli 1988. aastal turule graafiline kasutajaliides NeXTSTEP. See tõi terava 3D-vaate kõigile selle komponentidele. NeXTSTEP kasutas esimese kasutajaliidesena märki "X" akna sulgemise indikaatorina ja uutmoodi vidinat vertikaalse menüü avamiseks akna vasakus nurgas. Sarnaselt Arthurile oli olemas dokk, mis võis asuda ükskõik millises ekraani servas (vaikimisi paremal).

### OS/2
Samal aastal avalikustati esimene graafiline versioon OS/2, mis pidi projektipõhiselt asendama DOSi. OS/2 1.0 oli algselt vaid tekstipõhine kasutajaliides, kuid versioon 1.1 tuli välja koos graafilise kasutajaliidesega, mille nimeks oli Presentation Manager. Visuaalselt sarnanes see liides väga Windows 2.0 omaga.

#### X Window System
Veidi enne 1980. aastate lõppu tulid turule AT&T, SUN (Open Look), DEC ja HP koostööl valminud GUI-d, mis töötasid UNIX-i platvormil. Mainitud graafilised kasutajaliidesed kasutasid kõik tuntud akendussüsteemi X Window.

X Window akendussüsteem loodi 1984. aastal Massachusettsi Tehnoloogiainstituudis (lühend MIT) Jim Gettys ja Bob Scheifleri eestvedamisel. See töötab UNIX’i ja kõigil teistel tähtsamatel operatsioonisüsteemidel ning lubab kasutajatel käivitada rakendusi teistel võrgus olevatel arvutitel, nähes ise väljundit oma arvuti ekraanil.

Mainitud akendussüsteem genereerib primitiivse akna, mida saab graafiliste kasutajaliideste abil paremaks teha. Selle sees olev aknahaldur võimaldab aga mitme akna samaaegset vaatamist ning kasutamist ekraanil. Avatud aknad on ümberpaigutatavad ja nende suurust saab muuta.

X Window klientprogramm ise paikneb töötlevas arvutis, kuid selle serverprogramm on kuvavas arvutis. Mõlemad akendussüsteemi osad võivad olla ka samas arvutis.
### Graafilised kasutajaliidesed 1990. aastatel ja hiljem
1990. aastate algusega olid turule jäänud vaid kõige populaarsemad graafilised kasutajaliidesed – Windows ja Macintosh. Digital Research lõpetas GEM tootmise 1989. aastal, Atari ST turustamise 1993. aastal, Commodore läks pankrotti 1994. aastal ning ülejäänud mainitud graafilised kasutajaliidesed jätkasid oma toodete müüki kuni 1998. aastani.

#### Windows
Windows muutus tuntumaks selle versiooni 3.0 1990. aastal ja versiooni 3.1 1992. aastal avaldamisega. Olles võrreldes Macintoshiga ilma osade lisadeta, oli see siiski graafiliselt terav ja ilusate ikoonidega kasutajaliides. Windows 95 turule toomisega tugevdas Microsoft oma liidripositsiooni GUI-de tootjate seas. Windows 95’ga kaasnes uue lisa stardimenüü (ingl. *Start Menu*) ja tegumiriba (ingl. *Task Bar*) kasutuselevõtt.

#### OS/2 1990. aastatel
Windows 3 menu ja küllaltki nadi OS/2 müügiedu sundis IBM ja Microsofti pikaaegset koostööd lõpetama. IBM võttis üle OS/2 arenduse ja jättis Windowsi täielikult Microsoftile. 1992. aastal avaldas IBM uue OS/2 versiooni 2.0 täiesti uue kasutajaliidesega Workplace Shell. Selle kasutajaliidese arendamisel võeti osad ideed NeXTstepi pealt (IBM-il oli litsents nende kasutamiseks). OS/2 2.0 võimaldas kujundada liidese välimust sikutades ja paigutades ikoone ümber, samuti sai vahetada fonti ja tausta värvust pea kõigis töölaua osades. Lisaks, tänu kokkuleppele Microsoftiga, oli OS/2 2.0 olemas võimalus virtuaalmasinal käitada Windows 3.1 sisseehitatud koopiat, mis andis kasutajale voli käivitada Windows 3.1 rakendusi täisekraanil või eraldi aknas OS/2 töölaual.

#### BeOS
1995. aastal tutvustati maailmale BeOS-i kui BeBoxi arvuti osa ning 1998. aastal kui operatsioonisüsteemi. Koos BeOS-iga tuldi lagedale ka uue ideega – teha justkui tegumiribade grupp, kus kõik tegumid on sorteeritud vastavalt nende rakenduste tüübile. Lisaks, tekkis plaan lisada Smalltalkiga sarnane pealkirjariba, mida kasutaja saaks liigutada paremale või vasakule mööda ülemist serva.

#### Mac OS X ja Aqua
2000. aastal tõi Apple oma uue operatsioonisüsteemi Mac OS X jaoks turule graafilise kasutajaliidese Aqua. Aqua tutvustas ideed uut tüüpi GUI-st, mille aknad on kaks korda mällu puhverdatud, et kõik muutused, mis toimuvad väljaspool ekraani jääks kasutaja silmale nähtamatuks. Lisaks sellele olid veel mitmed lisad, nagu minimeeritud akende venitamine suuremaks, nende mahutamine dokki ja dialoogikasti ilmumine otse sellega seotud rakenduse peale. Apple'i OS X-i viimane versioon lisas aga veel ühe olulise erilisuse "Expose", mis võimaldas kasutajal muuta rakenduste akende suurusi nõnda, et nad kõik mahuksid ühele ekraanile ära.

## GUI arenduskeskkonnad
Graafilise kasutajaliidese arenduskeskkond on programmeerimiskeskkond, mis sisaldab lähtekoodi muutmise programmi, kompilaatorit, silurit ja konstruktorit. Kasutajaliideste arenduskeskkondade näiteid:
* ActiveState Komodo, 
* Adobe Flash Builder,
* Android Studio,
* Anjuta,
* AutoIt3,
* BBj,
* C++Builder,
* Clarion,
* Code::Blocks,
* CodeLite,
* dBase,
* DGLux5,
* Delphi,
* Ebase Xi,
* Eclipse,
* Gambas,
* JDeveloper,
* Just BASIC/Liberty BASIC,
* KDevelop,
* Lazarus,
* LabWindows/CVI,
* Liberty BASIC Workshop,
* Microsoft Visual Studio,
* MonoDevelop,
* MSEide+MSEgui,
* MyEclipse,
* NetBeans,
* OutSystems,
* Philasmicos Entwickler Studio,
* Purebasic,
* Qt Creator,
* SharpDevelop,
* Softwell Maker,
* WinDev,
* WeeScript Automation,
* wxDev-C++,
* Xcode,
* Xojo.

## Vaata ka
* Käsurida
* X Window System

## Viited