OS之爭:永不停歇的戰爭(一)


 

不是專家

和王垠不一樣,和雲風不一樣,他們是大牛逼,而我只是個無名小卒。不是掃地僧,只是無名小卒。但是作為一個小卒,從看到王垠的《用Linux工作》開始,也有五六個年頭了。

實際上,我的計算機學習和編程幾乎是同時開始的,這樣算來,我也用了十三年的PC了。但是,對Mac,Linux和Windows仍然可以說是一無所知。但是王垠的態度,到了《漫談Linux,Windows,Mac》有了90度的轉折,而雲風,則從C++的擁躉變成了堅實的反對者。

不是我不明白,這世界變化快。然而即便是個別大牛的態度有所轉變,也會有別的大牛前赴后繼,赴湯蹈火。如今,我只是想作為一個局內的局外人,寫點東西為這場無功而有趣的戰爭火上澆油。

 

操作系統

Operating System是一個復合詞,Operating操作和System系統。一直以來我都這么理解這個單詞:操作,就是人操作系統,系統操作電腦。系統,就是一大堆功能的有機結合。

綜合起來就這么理解:系統提供了一大堆的功能與人交互,又提供了一大堆的功能去操作機器。

Windows也好,Linux也好,所有的論戰焦點,都聚集在兩個方面:

  1. 人如何操作系統
  2. 系統如何操作電腦

人機界面的對戰

人和系統打交道的辦法,有個專業術語,叫人機界面。其實想一想,人機界面無外乎:圖形化 v.s. 命令行;鍵鼠 v.s. 鍵盤。

我們來組合一下,命令行+鍵鼠;命令行+鍵盤;圖形化+鍵鼠;圖形化+鍵盤。

命令行+鍵鼠的風格,恐怕是所有模式中最少的。雖然現代CLI都多少能支持點鼠標,但那些終究是杯水車薪。我們暫且不表。

命令行+鍵盤,那就是:Command,PowerShell(Windows);Shell(Linux)。

圖形化+鍵鼠:鼠標的點擊輔以快捷鍵的操作。大部分的圖形化軟件都是這個模式。日常開發的IDE。也算是這個模式。

圖形化+鍵盤:除了VIM和Emacs,我還真想不到有別的什么。

凡是我所見到的論戰,大都逃不出這樣的框架。咱們也來模擬一遍:

命令行+鍵盤

最早打仗的,恐怕是DOS Mode(CLI)與Shell之間的PK了。想都不用想,顯然是Shell(包括cp這一類的exe)會完勝。CLI的每條命令,Shell都有功能更強大的版本。比方說cp,比方說ls,等等等。就連我這個Linux盲,都更喜歡使用Shell的那些內建命令,而不是CLI那些從DOS就沿襲下來的東西。Batch和Sh相比,那完全就是 糖稀小人 v.s. 樂高做的變形金剛。前者雖然使用起來無比簡單,但是功能稍微復雜一點,基本上玩不轉了。再加上windows也沒有grep,awk這類的文本處理程序,Batch簡直和殘廢沒什么區別。

雖然大部分情況下我們都不需要這些命令行的功能,但是你真要批處理的時候,還真是個問題。MS其實也意識到這一點,所以從XP開始就有了PowerShell這樣傍着.Net的邪物。

所以PowerShell也加入到對抗Shell的戰場中。PowerShell看起來挺好,只可惜一來.net是為編程設計的,日常應用粒度太小;二來語法復雜難用;三來出現的太晚。所以從功能上來說,PowerShell當然是很牛逼的;但是易用性和學習曲線上來說,對我這種智商低的小菜鳥恐怕就只有“呵呵后”了。我還不如用Python呢,何必受PowerShell那氣。

圖形化+鍵鼠

對於應用程序來說,圖形化輔以鍵鼠操作,是最考驗UI/UX設計的功力。這塊來說,自由度太大。除了日常的管理外,有些東西,還真非要這個模式不可。比方說Photoshop。要是沒鼠標,沒GUI,我就不信那些CLI擁躉們能用字符給我PS出美女的細胳膊細腿來。但是光用鼠標,顯然也是不夠的。

鼠標傳達連續、不精確的空間信息是非常高效的。比方說,通過鼠標的帶模式的移動(就是按住左鍵、中鍵或者右鍵拖拽),可以輕易的完成3D空間的縮放,平移,旋轉。但是如果讓它提供一個邏輯信息或精確的空間信息,那就會有很多問題。能依賴的就是點擊,選擇。此時的效率就有可能要打折扣。人們也想了很多辦法,試圖用不精確的空間信息來表達邏輯或者精確信息,例如Snap(吸附功能),Pie Menu,Gesture,但是這些方法多少都有點局限性,比方說難以識別(假陰性)、誤操作或者二義性(假陽性)。

如果只是要選擇性的觸發一個功能,鍵盤的效率就要高得多。帶有上下文的鍵盤輸入,輔以全局加速表,讓一些功能的選擇可以在瞬間完成。所以設計良好的快捷鍵,可以讓用戶的工作效率突飛猛進。

圖形化+鍵盤

最常見的圖形化+鍵盤,應該算是文本編輯了。文本編輯包含兩個交互部分,錄入和布局。

錄入幾乎是一個只可能用鍵盤完成的工作;而布局,可以用鼠標完成,也可以用鍵盤來完成。本來布局是個圖形操作,用鼠標的效率應該更高,但是很可惜,人只有兩只蹄髈,從鍵盤到鼠標的切換,需要耗費大量的時間。因此對於VIM,Emacs和普通的GUI Editor(例如Notepad++)的爭論焦點就在這里。

VIM和Emacs覺得鍵盤到鼠標的切換是不可饒恕的浪費,希望將用戶所有的操作都留在鍵盤上。前者的代價是復雜的Mode,后者的代價是幾乎無窮多的快捷鍵。

而GUI Editor則覺得這種切換正好是用戶休閑健身的好時機,在此上浪費時間,有助於身心健康祛病消災滋陰補腎延年益壽。

至於哪種效率更高,我也不好說。不過就我這個令人捉雞的智商,恐怕這輩子都是用不上VIM的了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM