PageRank



轉移公告

計劃把 http://blog.hoamon.info/ 文章全部轉移至 http://www.hoamon.info/blog/ 這裡,而本 Blogger 站台的文章近 500 篇,我預計在 2014-12-31 前移轉完畢,完成後 http://blog.hoamon.info/ 將只作代轉服務,一律把舊連結如 http://blog.hoamon.info/index.html 轉成 http://www.hoamon.info/blog/index.html ,敬請舊雨新知互相走告。

新文章只發佈在 http://www.hoamon.info/blog/

何岳峰 敬上

2007年11月1日 星期四

GNU/Linux +Bash + Gnome 的易用性!

喜歡用 Ubuntu 工作,我想跟我熟一點的朋友是知道的。

但還是常常有人對我說, Linux *註1 不好用,他在 Windows 中,只要點點滑鼠兩下就夠了。

我想說的是:「他們想永遠當個小朋友。」

小朋友一開始使用電腦時,鍵盤對他們的門檻很高,又要記鍵位,十指又要有效運作,這是不容易辦到的。反觀滑鼠,只要移動它,及按下它 *註2 。

但等到長大一點,電腦使用者通常會開始記憶鍵盤快捷鍵,如: <ctrl>+C, <ctrl>+V …等,或是在 Command 中,打 ipconfig /all, arp -a, netstat -at …等指令,那使用者為什麼在這時候開始使用不直覺的鍵盤指令來工作呢。因為他不再是初學者了,他長大了,懂了比較多東西了,所以他會/能善用鍵盤。

人不是一輩子都是個初學者的 *註3 ,長大了就應該多用點鍵盤,多打些指令,節省你在這世界上痛苦的時間 *註4 。

那好吧!為了證明自己長大了,我就一直用鍵盤,不用滑鼠了,是個硬漢了吧!那倒也太辛苦了,有時候我們也會想要回到童真時期,作些大人不能作的事 註5 。偶爾用點滑鼠,沒人會責怪你的。

以上淺談了滑鼠及鍵盤的易用性,現在我們來談談 Ubuntu 給我們什麼,一個 Bash 及一個 Gnome 。

一個良好設定過的 Bash ,在上面打指令是很舒服的(命令列比較好!),而 Linux 許多的設定又可以簡單透過 vim 來作到。

但如果你懶得打字, Gnome 就排上用場了,它提供很多 GUI 管理工具,像我現在還不會在 Ubuntu 中用 vim 改網路設定,我都是到右上角的網路圖示中點右鍵設定。

所以 Ubuntu 讓我們在滑鼠及鍵盤中,都有「有效的方法」來執行你的工作。

反觀 Windows , GUI 介面很好用 * 註6,但內鍵的 Command * 註7 就很難用了,兩個加乘的效率就不如 GNU/Linux + Bash + Gnome * 註8 了。

所以我一直認為用 GNU/Linux + Bash + Gnome 是比較有效率且容易使用的,而且也應該是這樣子。

你不會永遠當一個初學者,你會長大的 *註9 。

----
註1 用這個名詞,是表示朋友多半不知道什麼是 GNU, Gnome, KDE 這些東西,他們只知道 Linux 。
註2 事實上,有人也認為 Windows 的兩鍵滑鼠是錯誤的設計,對初學者而言,應該是用 Mac 的單鍵滑鼠才對,初學者在按按鍵時,才不會按錯。
註3 其實只要你停了學習的欲念,你就可以當一輩子的初學者。
註4 人生苦短,我用 Python 。
註5 穿高中制服去喝酒、到公園沙坑去堆城堡…。
註6 或許對很多人來說,它比 Linux 好用。
註7 或許是要設定吧!是我不懂 Windows 該如何對 Command 作設定。但系統裝完的預設值真的很難用。
註8 拷!要三個自由軟體才能勝過 Windows ,表示 Windows 也很厲害呀!(如果你是這麼想地,千萬不要跟別人說,把它放在自己心上吧!如果說出去,會對你有重大後果的,因為你發現了一件大家都沒發現的事實。)
註9 我會這麼說,是源自Perl 的爸爸 Larry Wall 對「易用」的看法:「當有機會讓程式員感到方便,但是讓學 Perl 的人覺得不便時,他幾乎一定站在程式員這邊。這是因為你只需要學一次 Perl ,但卻會一直使用它。」

18 則留言:

  1. 我倒是覺得只用命令列生存我會死很慘。

    還有,別忘了蘋果有 Mighty Mouse 喔~@_@~

    回覆刪除
  2. 沒關係,人總有第一次的,如果第一次沒作好,那還會有第二次的。

    回覆刪除
  3. 我覺的命令列的價值在於圖型介面“絕對無法做到”或者“非常難以做到”,例如我要a軟體操作b軟體得到結果再根據結果判斷來操作c軟體,可能最後得到的結果又還要還給a軟體來用,這個時候才能體會出命令列的價值,而如果只是很單純的要做一些簡單的事,一個強大的軟體配上圖型介面會是比較好的選擇,如果單純的事圖型介面無法做那只是還沒有出那個軟體或者功能還不夠強大,並不代表那件事只有命令列能做,就像我之前講過的,一個自訂好一串功能的腳本在運行是比自己下一連串指令還要來的有效率的(這也是script存在的目的),而圖型介面是為了讓電腦變的更加具有親和力的手段,為了讓人們更容易理解與使用它的結果那就是圖型介面,如果只是想對一個軟體下一些複雜的參數,圖型介面中也能提供下參數專用的text框,例如早期的撥接式數據機的參數設定,或者有名的7zip圖型介面的參數設定法,所以命令列的確有強的地方沒錯,但對大部份的人來說是不需要的(不被需要的),而大部份的人需要的是能快速上工的系統,能在最短的時間內完成工作才是重要的,就算真有命令列only的需求,在大部份的情況下是不會願意為了那點需求而去弄懂命令列,而是採用圖型介面迂迴的方案處理,或者放棄,命令列仍然是留給少數鑽研電腦領域的高手only的奬品,無法親民,這與大人小孩無關,大人小孩的例子只是為了突顯不會電腦人初次面對圖型介面及命令列的印象,而事實上命令列強的不像話的小孩(5~6歲)左右大有人在,至少…我家樓下就住著兩個

    回覆刪除
  4. 本文的目標並不是比較「命令列」與「 GUI 」的強弱,主要是說明 GNU/Linux 上的命令列優於 Windows 的,而 GUI 介面等於 Windows 的,所以在考慮兩者時, 我認為 GNU/Linux + Bash + Gnome 比 Windows 易用。

    回覆刪除
  5. 比較強我相信,但比較易用我就不能認同了,至少,在沒有任何參考資料協助的情況下我無法使用它,這就不夠易用了(這裡的“我”指的是所有人)

    回覆刪除
  6. 對「易用性」這個名詞,我常引用 Larry 老大的話來說明,他說:「當有機會讓程式員感到方便,但是讓學 Perl 的人覺得不便時,他幾乎一定站在程式員這邊。這是因為你只需要學一次 Perl ,但卻會一直使用它。」

    所以,「易用性」的定義對初學者及進階使用者是不一樣的。對初學者而言,「簡單」是「易用」,但對進階使用者而言,「功能強大」叫「易用」。

    事實上,一般使用者也會對 <Ctrl>+C 這類指令有興趣的,但這些指令通常不是從點點滑鼠中學到的,而是從書或是別人的指導中學來的。所以「易用」是藉由「學習」來提昇的,是一件非常正常的事。

    回覆刪除
  7. 這不就只是換個說法來說命令列+圖型介面比較強但比較難學嗎= =
    另外,“Ctrl+C”其實應該叫快捷鍵不算命令,而且不一定要從書上學來,因為Windows下的程式幾乎都會遵守一個標準就是把對應其功能的快速鍵直接寫在該功能的後面,注意到了嗎,不只“Ctrl+C”,像“複製(C)”,這個功能後面的“(C)”指的也是快速鍵

    回覆刪除
  8. 大部份的事務還滿遵守難學易用/易學難用這兩個原則。而我認為對於進階使用者而言,所謂的「易用」是偏向功能強大的。

    下面我再舉個例子說明:

    當我嘗試跑一個 some_method.py 程式時,因為它會跑一段時間(可能是兩個小時),我不可能在電腦前面等它結束,而我又想要出去逛逛(也許是5個小時),那麼我會希望這個程式跑完後,電腦能自動關機,但如果這個程式有 bug 的話,可能沒跑完,就中斷了,結果電腦關機而你也不清楚到底那個時候發生了什麼事。

    所以我們可以用下面的指令幫我們紀錄關機前的電腦畫面。

    # python some_algo.py ; xwd -root|xwdtopnm|pnmtojpeg > tt.jpg ; sudo shutdown -h +0

    回覆刪除
  9. Windows 中,在資料夾上點右鍵,的確有出現複製(C),但這只說明了,你按右鍵後,再按下 C ,可以複製,它沒有說是 Ctrl+C 呀!

    回覆刪除
  10. 或許這個議題,以我的角度來說,會有偏頗,我自認自己還算是個「進階使用者」,所以在很多可以用命令列處理的工作(就算是效益差不多),我也是不用圖形介面來作的。

    而大部份的使用者也的確不學命令列的,所以我常常看到一般使用者在用滑鼠作些苦燥乏味的事務性工作,我就會覺得「你們為什麼不學學進一步的工作方法」。每次多花個五分鐘,那這輩子你得花幾次呢?

    回覆刪除
  11. 忽然覺得,我這個題目好像定的不好。因為我在 Windows 下,用 GVIM 編輯設定檔這件事,該算是用 GUI 工作還是命令列工作呢?

    回覆刪除
  12. 不知道你找到Ctrl+C了沒,如果還沒請找找具列的選單…(編輯→複製)
    GVIM算是命令列,因為實際上操作方式還是用命令列的方式
    對一般使用者而言,如果這個工作不交由命令列來做會有巨大損失的話他們會直接找個會命令列的來作這件事,舉個例子我爸寧願等上一個小時我用完電腦再幫他上一個網站、改一個錯字、或者看看有沒有新信,卻不願意自己試著學習該怎麼做這些事(當然還有好幾台電腦、XP、Ubuntu、98)

    回覆刪除
  13. Windows 中,至少有一個選單是講到複製,卻沒有 Ctrl+C 的註解,也就代表使用者是需要運氣才有機會學到 Ctrl+C 是幹什麼的。

    那比不上實實在在地拿本書出來看一下。

    回覆刪除
  14. 如果「拒絕學習」在這個「終身學習」的年代還可以是個理由的話,那我想這個討論就結束了吧!

    因為不學習,所以只能接受「圖形介面」的易用,那麼我就同意吧!

    命令列的確是要多花一點時間來學,這就p像是高斯定理一般,不懂的人用 1+2+3+…+100 來算,懂的人用 (1+100)*100/2 來算,一個直覺沒效率,一個得學有效率。

    回覆刪除
  15. 如果有一個程式要跑5個小時,但我需要看到跑完的結果,那麼我想大部份的人會選擇不要關機,就這樣放著等我逛回來,因為…沒有關機對我並沒有造成很大的損失啊(電費嗎0.0)
    我想這是大部份使用者的心態,現階段所需的應用已經可以滿足大部份的需求,而少部份的不完美使用者會選擇忽略它,並沒有一個非使用Linux不可的理由(其實…使用Linux要忽略的不完美更加多)
    Ctrl+C本來就不是非用不可的快速鍵…,就算領悟力不夠好無綠學會還是能使用工具列複製貼上,頂多多個1~2秒的操作時間…就是這樣

    回覆刪除
  16. Windows的軟體都有一個特性,就是如果一件事你可以用拖曳、右鍵或者其它方法完成時,這個功能一定會有一個“正規的方法”可以完成,所謂“正規的方法”就是在工作列上可以找到對應的功能,而這個功能後面就會對應一個快速完成的方法
    Linux很好,但微軟的努力請不要看不見,再舉一個例子,以前在Windows下看影片時我從來沒想過為什麼螢幕都不會關起來,直到我用Linux看影片,螢幕關起來的瞬間我才領悟到Windows到底做了些什麼,Windows或許在資源應用上輸Linux或許安全性上輸Linux,但這份親和力、易用性是貨真價實的

    回覆刪除
  17. 這並不是拒絕學習的問題,而是出於現實面的考量,就像我不會為了吃飯去種田,為了喝一杯牛奶去養一頭牛,有些時候這並不是那麼簡單的事

    回覆刪除
  18. 我不會為了吃飯去種田,也不會為了喝一杯牛奶去養一頭牛,我只是學會開飛機!

    現實面的問題就是Linux可以更輕易的幫我解決許多事情.

    回覆刪除

Related Posts Plugin for WordPress, Blogger...