2008年7月21日 星期一

用戶介面

看了這篇關於<科技>. 便想寫一寫用戶介面(UI), 但一直隋懶, 所以隔了這麼久才出文.

其實用戶介面可以說是十分廣泛, 基本上任何讓人類與機器溝通的謀介都可以叫作介面. 簡單點說, 機器是不會知道我們想它做甚麼的, 為了要傳達人們的指令, 便需要一個可以向機器發出命令的方法. 現在我只集中討論電子系統, 其實小至微型收音機, 大至超級電腦都是由一推電子零件組合而成. 而這些電子零件不會平白無端的便懂得我們的語言, 或知道我們的心意而作出適當的行動. 電子系統內部是用機械語言來溝通, 即是那些0011001. 本來最直接命令它們的方法就是用這些機械語言, 但要我們記得這些00101甚麼的, 未免有點強人所難. 於是便有組合語言, 以至高階的程式語言出現, 它們的原理是讓人們用比較容易理解的語言來編寫程序, 再經由編譯器轉換成電子系統可執行的程式, 從而方便人們控制電子系統作出各種各樣的運算. 可是, 寫程式不是每一個人都做得來, 而且一些常用的指令, 也沒理由要每人也寫一個吧. 所以便有shell的出現.

Shell 是介於使用者和作業系統之間的一個介面, 它由輸入設備讀取指令, 然後轉換成機械語言並予以執行. 以往的DOS, 及現在的bash/csh 等都是類似這樣運作的, 只有文字顯示的電話介面也可歸類為 shell 的一種吧. 本來有了 shell, 我們已經可以很方便的和電子系統溝通, 但是要使用 shell 便須跟從一些特定的語法, 也須要了解各指令代表的意思, 這是有必要經過學習和練習才可以純熟運用. 為了更方便人類, 之後便有了圖形介面(GUI)的出現. 圖形介面希望做到的是看圖識字, 讓使用者能夠憑圖案便找到所須的指令, 無須花時間學習.

圖形介面除了用上能讓使用者看了便明白的圖案外, 也包括整個運作和使用上的設計, 如怎樣令使用者更快更容易找到正確的圖示, 如何分組, 如何安排次序, 甚至考慮使用者的工作流程等等. 當然, 圖形介面是根據人類實際工作來設計, 所以無論樣式, 外觀都取材自生活或經歷, 照理使用者自可憑其生活經驗從中找到適當的圖示, 執行適合的程式.

理論上, 越新的圖形介面應該是越容易使用的. 就像自動櫃員機, 老師告訴我早期的櫃員機是先出錢最後退回提款卡的, 結果是很多使用者都在取錢後便離去, 忘了取回提款卡. 因此, 程式便作出修改, 先出卡後出錢便解決了這個問題. 現在, 為了方便使用者提款, 便加上了銀碼捷徑, 令提款程序更快速. 在我看來, 現在不少的電子產別卻是反其道而行, 功能多多, 但使用困難. 加插的功能往往喧賓奪主, 真正重要的主體卻被忽略. 這樣的設計, 其實已是走火入魔了.

沒有留言: