About me

我的相片
I'm a web and software developer from Kaohsiung, Taiwan.
I design and implement user interfaces, also contribute to open source projects.
http://penkia.net/portfolio

2008年3月25日 星期二

摩爾的逆襲 -- 淺談介面革命與輕量化迷思

雖然標題好像很帥, 但其實只是最近"看" paper 的過程中, (不求甚解, 故謂之看) 發現其中一些研究的脈絡與我的想法不謀而合, 因為再度驗證了長年藏在心裡的懷疑而感到開心不已, 所以才有這篇心得文. XD

這裡提到的迷思大概可以拆成三個部份來談, 不過因為只是心得所以不用期待有完整論述, 延伸閱讀倒是不會少的.

一、膨脹迷思 -- 哭哭, 程式很佔硬碟空間

抱怨新版本的某程式爆肥似乎已經成為一種流行 (當然女星爆肥還是比較有話題啦), 例如蔡學鏞這篇 [1] 就是很典型的例子.

不可諱言的確有些問題肇因於疊床架屋的架構, 但追根究底其實是 "底層工具/開發者對於程式碼 size 最佳化的速度" 比不上 "我們對於軟體新功能的需求" 所致.

而對於新功能的 "需求", 又是由行銷人員和市場來推動, 很多根本是創造出來的; 不用考慮程式大小的話, 程式可以更早完成, 這部份 Joel 寫得 [2] 比我完整很多.

[1]http://jerrylovesrebol.blogspot.com/2008/03/blog-post_13.html
[2]http://www.joelonsoftware.com/articles/fog0000000020.html

二、輕量迷思 -- 科科, 程式不佔記憶體空間

另一種很典型的迷思就是追求那種最不佔記憶體空間/耗用資源最少的程式.

大家一定都用過 Windows 底下的一種小程式, (大抵是從 toget 或史萊姆抓到的) 號稱可以釋放記憶體, 還有一個很酷炫的百分比條顯示你的記憶體被萬惡窗戶霸佔了 "87%", 於是你按下 "釋放" 按鈕, 咻, 記憶體回來了 -- 但其實, 你的程式現在起會跑的更慢, 因為這些釋放記憶體的程式不懂甚麼叫做 Cache [3].

作業系統的存在就是為了分配資源 -- 無論是硬碟空間, 記憶體或是電量. 越能善用所擁有的資源, 程式就會表現得越好.

有很多硬碟空間, 為什麼不用? [4] 有很多記憶體, 為什麼不用? [5] 反正放著也是浪費嘛! 把資源留給其他程式? 又不是真的有多工到這種程度.

於是我們知道, 說一個程式很輕巧, 通常應該修正為 1) 功能很少 或 2) 在低資源分配的情況下也能有不錯的表現. 而後者才應該是我們要追求的.

[3]http://en.wikipedia.org/wiki/Cache
[4]http://portal.acm.org/citation.cfm?id=1095809.1095836
[5]http://sourceforge.net/projects/preload

三、3D 桌面迷思 -- 呵呵, 我的旋轉方塊好炫喔

這點迷思其實和以上兩點都沒有關系, 純粹只是碰巧提到湊在一起而已.

攤開電腦發展史 (也沒幾年就是了), 其實就是一連串的妥協與折衷, 為什麼呢? 一句話: Old habits die hard. 積習難改是也!

這可不是在看完 Alfie 大嘆 Jude Law 怎麼可以這麼帥以後騎車要哼的主題曲, 這點破了一個現象 -- 是人都不喜歡改變. 就算轉移目標比起現在要好一百倍也不行!

想想 QWERTY 對上 Dvorak 鍵盤, Windiws XP 對上 Ubuntu, 雙腳對上 Segway.

這也是為什麼我們仍然停留在 WIMP 介面 [6] 的原因, 即便我們已經能處理彷彿聞到硝煙味的爆破碎片, 栩栩如真的毛髮光影, 以及想都沒想過的各種輸入介面.

空間記憶 (spatial memory) [7] 問題使兩大桌面系統停留在耍弄特效眼糖騙取觀眾, 拿掉那些花俏的視覺效果來看, 我們所擁有的東西和二十年前 PARC 產品沒什麼兩樣.

3D/特效真的會讓生活更簡單容易嗎? (某些情況下會, 例如小尺寸螢幕的縮放), 使用者習慣能夠被教育嗎? (一定可以, 但是要漸進, 例如 iPod -> iPod Touch).

我想這才是我輩黑客該面對的問題. XD

[6]http://en.wikipedia.org/wiki/WIMP_(computing)
[7]http://osnews.com/story/18829/Common_Usability_Terms_pt._I:_Spatial_Memory

敬請指教, 謝謝!

沒有留言: