Kalkulator je jedan od uređaja koje gotovo svi umeju da koriste bez uputstva. Unese se broj, pritisne znak operacije, zatim drugi broj i znak jednakosti. Upravo zbog te jednostavnosti malo ko razmišlja koliko složena pravila moraju da rade u pozadini.
Problem počinje čim korisnik nakon dobijenog rezultata pritisne novo dugme. Da li novi broj treba dodati postojećem rezultatu ili njime započeti potpuno novi račun? Da li znak minus predstavlja oduzimanje ili početak negativnog broja? Šta treba da se dogodi kada se zaredom pritisnu decimalni zarez, procenat ili jednakost?
Hackaday je 18. jula predstavio analizu koja pokazuje da čak i najosnovniji kalkulator zahteva složenu mašinu stanja. Program mora u svakom trenutku da pamti šta je korisnik prethodno uneo, šta se trenutno nalazi na ekranu i kakvo značenje ima sledeći pritisak na dugme.
Na primer, posle operacije „jedan plus dva jednako” na ekranu se pojavljuje tri. Ukoliko se zatim pritisne broj dva, većina korisnika očekuje da počne novi unos. Kada bi program samo dodao cifru postojećem rezultatu, na ekranu bi se pojavilo 32.
Slično važi za decimalni zarez. Program mora da spreči unos dva zareza u istom broju, ali i da dozvoli novi decimalni broj nakon završene operacije. Dugme za procenat dodatno komplikuje stvar jer se na različitim kalkulatorima ponaša na različite načine.
Dobar korisnički interfejs često izgleda jednostavno upravo zato što su njegovi najkomplikovaniji delovi skriveni. Korisnik ne treba da razmišlja o unutrašnjim pravilima, već uređaj mora da predvidi ono što deluje prirodno.
To objašnjava zašto aplikacije koje na prvi pogled imaju samo nekoliko dugmadi mogu zahtevati mnogo testiranja. Programeri moraju da predvide ne samo pravilan redosled komandi nego i slučajne pritiske, ponavljanje operacija i pokušaje koji matematički nemaju smisla.
Kalkulator tako postaje dobar primer nevidljivog dizajna. Što se uređaj čini jednostavnijim i prirodnijim, veća je verovatnoća da se iza njegovog ekrana nalazi pažljivo osmišljen sistem koji rešava veliki broj sitnih izuzetaka.
S.B.
















