Windows 就是乙個帶 UI 的命令列

2021-09-05 18:24:02 字數 1200 閱讀 5007

這是用過mac之後對windows的感覺。

用乙個對程式設計師來說比較友善的比喻來說,以面向過程的方式來寫一大堆函式,然後再分別塞到幾個類裡面,這就是windows了。而mac是真正的物件導向思想下設計的。

在windows當中,我們貌似在操作乙個「文件」、一段「文字」、一張「」,但實際上我們都不是在操作物件本身,而是類似於在操作handle——你不知道物件在**,你不能直接傳遞或操作物件,你只能借助僅有的api對handle進行操作,所有能對handle進行的操作都由api限制了。例如即使你在操作的是一張「」,你也很清楚那是乙個存放為檔案的,或者暫存在剪貼簿的,總之你必須清楚handle在哪,否則你就算看到了那張也無法操作——在**上,你先另存或者複製到剪貼簿吧。

這種體驗不就完全是面向過程的對映?每乙個操作相當於呼叫乙個或幾個api。windows發展了那麼久,在人機互動方面還是脫離不了對dos的簡單封裝。在這方面,windows從前落後於mac,現在還是這樣。mac雖然不能達到最理想的物件導向操作方式,但至少系統本身提供的體驗要比windows好,同時主流軟體也比windows的主流軟體在體驗上要好乙個等次。

例如skitch這個輕量級的處理軟體,你可以抓起正在編輯的扔到桌面上,這就自動另存為乙個檔案了。檔案與記憶體中的資料對使用者來說已經無縫連線起來了。

再舉乙個例子,在windows我們都知道**站是個很好的比喻,不用的檔案當然扔那裡面。不過說真的,你多少次把檔案扔裡面了?你用得更多的是delete按鈕,對吧?這是顯然的,因為windows使用者習慣最大化視窗,這當然就把**站遮住了,傻瓜才會選擇在視窗裡拖動檔案的同時回到桌面接著再把檔案扔到**站裡。mac的**站叫做廢紙瘻,它出現在dock上,dock類似於windows的工作列,永遠不會消失,就算自動隱藏也可以在滑鼠靠近後自動跳出來,因此你永遠可以把你看到的不想要的東西拖到廢紙瘻上面去。

最後,無論你在開發windows應用還是web應用,我都建議你去弄個mac來用一段時間吧,不要給一直以來windows及windows主流應用程式的互動設計方式禁錮了你的思路,你應該看一點新鮮點的東西。在以前,我認為scriptaculous的拖放庫完全是多餘的,真該好像atlas轉變為asp.net ajax時那樣把拖放庫丟一邊,但在使用mac之後,我才真正覺得在web應用中推廣拖放操作是非常有意義的。

update:這篇文章只是討論互動,關於win vs mac的問 題,可以參考這篇文章:我 為什麼偏愛蘋果電腦和mac os x,裡面強調了mac設計的哲學──「簡單」。

自已實現乙個UI庫 實現Windows的乙個模擬器

實現windows的乙個模擬器 接上一節的實現的介面,在windows裡面寫乙個簡單的模擬器,在上面能操作上一節裡面的介面動作。開啟vs,建立乙個解決方案,把ui的 作了乙個單獨的lib庫,再建立乙個帶窗體的工程,ui的畫圖就畫在乙個窗體的客戶區dc中.首先定義乙個對dc的畫圖操作,對應上一節的ui...

世界就是乙個班

世界就是乙個班 1 美國 班長,學習好,家裡有錢,人高馬大,好打架。班裡沒幾個人敢惹他。和副班長關係不好。2 俄羅斯 副班長,成績優異,全班最高大,上學期光和班長頂著幹。後來家裡出事 分家!現在做事很消極,但在班級裡有一定的影響力。3 中國 團支書。幼兒園學習成績很好。小學時由於體質差常被欺負,沒事...

企業就是乙個團夥

一群人要聚在一起,需要兩個條件。一是有人挑頭,二是有事情要做。沒人挑頭,再多的能人也是一盤散沙。挑頭人應該什麼樣呢,說法很多。有的挑頭人就是個擺設,像戰場上的軍旗,不能衝鋒殺敵,但是能夠穩定軍心。軍旗不倒,戰士就知道隊伍還沒垮,繼續拼命就有勝利的希望。還有的挑頭人簡直就是上帝,遠矚無所不知,琴棋書畫...