ExtMail服务器社区's Archiver

roysu 发表于 2006-9-14 18:23

[轉貼] 提問的智慧

  Copyright (C) 2001 by Eric S. Raymond
中文版 Copyleft 2001 by D.H.Grand(nOBODY/Ginux)
英文版:[url]http://www.tuxedo.org/~esr/faqs/smart-questions.html[/url]
感謝 Eric 的耐心指點和同意,本文才得以完成並發佈,
本指南 英文版版權為 Eric Steven Raymond 所有,
中文版版權由 D.H.Grand[nOBODY/Ginux] 所有。

在黑客世界,當提出一個技術問題時,你能得到怎樣的回答?
這取決於挖出答案的難度,同樣取決於你提問的方法。
本指南旨在幫助你提高發問技巧,以獲取你最想要的答案。

首先你必須明白,黑客們只偏愛艱巨的任務,或者能激發他們思維的好問題。
如若不然,我們還來幹嗎?如果你有值得我們反復咀嚼玩味的好問題,
我們自會對你感激不盡。好問題是激勵,是厚禮,可以提高我們的理解力,
而且通常會暴露我們以前從沒意識到或者思考過的問題。
對黑客而言,“問得好!”是發自內心的大力稱讚。

儘管黑客們有蔑視簡單問題和不友善的壞名聲,有時看起來似乎我們對新手,
對知識貧乏者懷有敵意,但其實不是那樣的。

我們不想掩飾對這樣一些人的蔑視--他們不願思考,
或者在發問前不去完成他們應該做的事。
這種人只會謀殺時間--他們只願索取,從不付出,無端消耗我們的時間,
而我們本可以把時間用在更有趣的問題或者更值得回答的人身上。
我們稱這樣的人為“失敗者”(由於歷史原因,我們有時把它拼作“lusers”)。

我們在很大程度上屬於志願者,從繁忙的生活中抽出時間來解惑答疑,
而且時常被提問淹沒。所以我們無情的濾掉一些話題,
特別是拋棄那些看起來象失敗者的傢伙,以便更高效的利用時間來回答勝利者的問題。

如果你覺得我們過於傲慢的態度讓你不爽,讓你委屈,不妨設身處地想想。
我們並沒有要求你向我們屈服--事實上,我們中的大多數人最喜歡公平交易不過了,
只要你付出小小努力來滿足最起碼的要求,我們就會歡迎你加入到我們的文化中來?但讓我們幫助那些不願意幫助自己的人是沒有意義的。

如果你不能接受這種“歧視”,我們建議你花點錢找家商業公司簽個術支援協議得了,
別向黑客乞求 如果你決定向我們求助,當然不希望被視為失敗者,
更不願成為失敗者中的一員。立刻得到有效答案的最好方法,就是象勝利者那樣提問
—— 聰明、自信、有解決問題的思路,只是偶爾在特定的問題上需要獲得一點幫助。

(歡迎對本指南提出改進意見。任何建議請E-mail至[email]esr@thyrsus.com[/email],
然而 請注意,本文並非網路禮節的通用指南,我通常會拒絕無助於在技術論壇
得到有用答案的建議。) (當然,如果你寫中文,最好還是寄[email]DHGrand@hotmail.com[/email];-)

= 提問之前 =

在通過電郵、新聞組或者聊天室提出技術問題前,檢查你有沒有做到:

  1. 通讀手冊,試著自己找答案。
  2. 在FAQ?找答案(一份維護得好的FAQ可以包羅萬象:)。
  3. 在網上搜索(個人推薦google~~~)。
  4. 向你身邊精於此道的朋友打聽。

當你提出問題的時候,首先要說明在此之前你幹了些什麼;
這將有助於樹立你的形象:你不是一個妄圖不勞而獲的乞討者,不願浪費別人的時間。
如果提問者能從答案中學到東西,我們更樂於回答他的問題。

周全的思考,準備好你的問題,草率的發問只能得到草率的回答,
或者根本得不到任何答案。越表現出在尋求幫助前為解決問題付出的努力,
你越能得到實質性的幫助。

小心別問錯了問題。如果你的問題基於錯誤的假設,普通黑客(J. Random Hacker)
通常會用無意義的字面解釋來答復你,心?想著“蠢問題...”,
希望著你會從問題的回答(而非你想得到的答案)中汲取教訓。

決不要自以為夠資格得到答案,你沒這種資格。畢竟你沒有為這種服務支付任何報酬。
你要自己去“掙”回一個答案,靠提出一個有內涵的,有趣的,
有思維激勵作用的問題--一個對社區的經驗有潛在貢獻的問題,
而不僅僅是被動的從他人處索要知識--去掙到這個答案。

另一方面,表明你願意在找答案的過程中做點什麼,是一個非常好的開端。
“誰能給點提示?”、“我這個例子?缺了什麼?”以及“我應該檢查什麼地方?”
比“請把確切的過程貼出來”更容易得到答復。因為你顯得只要有人指點正確的方向,
你就有完成它的能力和決心。

= 怎樣提問 =

  1. - 謹慎選擇論壇
   小心選擇提問的場合。如果象下面描述的那樣,你很可能被忽略掉或者被看作失敗者:
    1. 在風馬牛不相及的論壇貼出你的問題
    2. 在探討高級技巧的論壇張貼非常初級的問題;反之亦然
    3. 在太多的不同新聞組交叉張貼

  2. - 用辭貼切,語法正確,拼寫無誤
   我們從經驗中發現,粗心的寫作者通常也是馬虎的思考者(我敢打包票)。
   回答粗心大意者的問題很不值得,我們寧願把時間耗在別處。

   正確的拼寫,標點符號和大小寫很重要。
   更一般的說,如果你的提問寫得象個半文盲,你很有可能被忽視。

   如果你在使用非母語的論壇提問,你可以犯點拼寫和語法上的小錯
   --但決不能在思考上馬虎(沒錯,我們能弄清兩者的分別)

  3. - 使用含義豐富,描述準確的標題
   在郵件列表或者新聞組中,大約50字以內的主題標題是抓住資深專家注意力的黃金時機。
   別用喋喋不休的“幫幫忙”(更別說“救命啊!!!!!”這 樣讓人反感的話)
   來浪費這個機會。不要妄想用你的痛苦程度來打動我們, 別用空格代替問題的描述,
   哪怕是極其簡短的描述。

   蠢問題: 救命啊!我的膝上機不能正常顯示了!
   聰明問題: XFree86 4.1下滑鼠游標變形,Fooware MV1005的顯示晶片。

   如果你在回復中提出問題,記得要修改內容標題,表明?面有一個問題。
   一個看起來象“Re:測試”或者“Re:新bug”的問題很難引起足夠重視。
   另外,引用並刪減前文的內容,給新來的讀者留下線索。

  4. - 精確描述,信息量大
    1. 謹慎明確的描述症狀。
    2. 提供問題發生的環境(機器配置、作業系統、應用程式以及別的什麼)。
    3. 說明你在提問前是怎樣去研究和理解這個問題的。
    4. 說明你在提問前採取了什麼步驟去解決它。
    5. 羅列最近做過什麼可能有影響的硬體、軟體變更。
   儘量想像一個黑客會怎樣反問你,在提問的時候預先給他答案。

   Simon Tatham寫過一篇名為《如何有效的報告Bug》的出色短文。強力推薦你也讀一讀。

  5. - 話不在多
   你需要提供精確有效的資訊。這並不是要求你簡單的把成噸的出錯代碼或者資料
   完全轉儲摘錄到你的提問中。如果你有龐大而複雜的測試條件,
   儘量把它剪裁得越小越好。 這樣做的用處至少有三點。
   第一,表現出你為簡化問題付出了努力,這可以使你得到回答的機會增加;
   第二,簡化問題使你得到有用答案的機會增加;
   第三,在提煉 你的bug報告的過

  6. - 只說症狀,不說猜想
   告訴黑客們你認為問題是怎樣引起的沒什麼幫助。
   (如果你的推斷如此有效,還用向別人求助嗎?),
   因此要確信你原原本本告訴了他們問題的症狀,不要加進你自己的理解和推論。
   讓黑客們來診斷吧。

   蠢問題: 我在內核編譯中一次又一次遇到SIG11錯誤,
   我懷疑某條飛線搭在主板的走線上了,這種情況應該怎樣檢查最好?
   聰明問題: 我自製的一套K6/233系統,主板是FIC-PA2007 (VIA Apollo VP2晶片組),
   256MB Corsair PC133 SDRAM,在內核編譯中頻頻產生SIG11錯誤,
   從開機20分鐘以後就有這種情況,開機 前20分鐘內從沒發生過。
   重啟也沒有用,但是關機一晚上就又能工作20分鐘。所有記憶體都換過了,沒有效果。
   相關部分的典型編譯記錄如下...。

  7. - 按時間順序列出症狀
   對找出問題最有幫助的線索,往往就是問題發生前的一系列操作,
   因此,你的說明 應該包含操作步驟,以及電腦的反應,直到問題產生。

   如果你的說明很長(超過四個段落),在開頭簡述問題會有所幫助,
   接下來按時間順序詳述。這樣黑客們就知道該在你的說明中找什麼。

  8. - 明白你想問什麼
   漫無邊際的提問近乎無休無止的時間黑洞。最能給你有用答案的人也正是最忙的人
   (他們忙是因為要親自完成大部分工作)。這樣的人對無節制的時間黑洞不太感冒,
   因此也可以說他們對漫無邊際的提問不大感冒。

   如果你明確表述需要回答者做什麼(提供建議,發送一段代碼,檢查你的補丁 或是別的)
   ,就最有可能得到有用的答案。
   這會定出一個時間和精力的上限,便於回答者集中精力來幫你
   A這很湊效。要理解專家們生活的世界,要把專業技能想像為充裕的資源,
   而回復的時間則是貧乏的資源。解決你的問題需要的時間越少,
   越能從忙碌的專家口中掏出答案。

   因此,優化問題的結構,儘量減少專家們解決它所需要的時間,
   會有很大的幫助--這通常和簡化問題有所區別。
   因此,問“我想更好的理解X,能給點提示嗎?”通常比問“你能解釋一下X嗎?更好。
   如果你的代碼不能工作,問問它有什麼地方不對,比要求別人替你修改要明智得多。

  9. - 別問應該自己解決的問題
   黑客們總是善於分辨哪些問題應該由你自己解決;因為我們中的大多數都曾自己解決
   這類問題。同樣,這些問題得由你來搞定,你會從中學到東西。
   你可以要求給點提示,但別要求得到完整的解決方案。

10. - 去除無意義的疑問
   別用無意義的話結束提問,例如“有人能幫我嗎?”或者“有答案嗎?”。
   首先:如果你對問題的描述不很合適,這樣問更是畫蛇添足。
   其次:由於這 樣問是畫蛇添足,黑客們會很厭煩你--而且通常會用邏輯上正確的回答
   來表 示他們的蔑視,例如:“沒錯,有人能幫你”或者“不,沒答案”。

11. - 謙遜絕沒有害處,而且常幫大忙
   彬彬有禮,多用“請”和“先道個謝了”。
   讓大家都知道你對他們花費時間義務提供幫助心存感激。
   然而,如果你有很多問題無法解決,禮貌將會增加你得到有用答案的機會。

   (我們注意到,自從本指南發佈後,從資深黑客處得到的唯一嚴重缺陷反饋,
   就是對預先道謝這一條。一些黑客覺得“先謝了”的言外之意是過後就不會再感謝
   任何人了。我們的建議是:都道謝。)

12. - 問題解決後,加個簡短說明
   問題解決後,向所有幫助過你的人發個說明,讓他們知道問題是怎樣解決的,
   並再一次向他們表示感謝。如果問題在新聞組或者郵件列表中引起了廣泛關注,
   應該在那?貼一個補充說明
   。補充說明不必很長或是很深入;簡單的一句“你好,原來是網線出了問題!
   謝謝大家--Bill”比什麼也不說要強。事實上,除非結論真的很有技術含量,
   否則簡短可愛的小結比長篇學
   術論文更好。說明問題是怎樣解決的,但大可不必將解決問題的過程復述一遍。
   除了表示禮貌和反饋資訊以外,這種補充有助於他人在郵件列表/新聞組/論壇中搜索
   對你有過幫助的完整
   解決方案,這可能對他們也很有用。最後(至少?),
   這種補充有助於所有提供過幫助的人從中得到滿足感。
   如果你自己不是老手或者黑客,那就相信我們,這種感覺對於那些你向他們
   求助的導師或者專家而言,是非常重要的。問題久拖未決會讓人灰心;
   黑客們渴望看到問題被解決。好人有好報,滿足他們的渴望,
   你會在下次貼出新問題時嘗到甜頭。

13. - 還是不懂
   如果你不是很理解答案,別立刻要求對方解釋。
   象你以前試著自己解決問題時那樣(利用手冊,FAQ,網路,身邊的高手),
   去理解它。如果你真的需要對方解釋,記得表現出你已經學
   鴗F點什麼。比方說,如果我回答你:“看來似乎是zEntry被阻塞了;
   你應該先清除它。”,然後:一個很糟的後續問題:“zEntry是什麼?”
   聰明的問法應該是這樣:“哦~~~我看過幫助了但是只有-z和-p兩個參數中
   提到了zEntry而且還都沒有清楚的解釋:<你是指這兩個中的哪一個嗎?
   還是我看漏了什麼?”



=三思而後問 =

以下是幾個經典蠢問題,以及黑客在拒絕回答時的心中所想:

問題:我能在哪找到X程式?
問題:我的程式/配置/SQL申明沒有用
問題:我的Windows有問題,你能幫我嗎?
問題:我在安裝Linux(或者X)時有問題,你能幫我嗎?
問題:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?

提問:我能在哪找到X程式?
回答:就在我找到它的地方啊蠢貨--搜索引擎的那一頭。天?!還有人不會用Google嗎?

提問:我的程式(配置、SQL申明)沒有用
回答:這不算是問題吧,我對找出你的真正問題沒興趣--如果要我問你二十個問題
才找得出來的話--我有更有意思的事要做呢。

在看到這類問題的時候,我的反應通常不外如下三種

  1. 你還有什麼要補充的嗎?
  2. 真糟糕,希望你能搞定。
  3. 這跟我有什麼鳥相關?


提問:我的Windows有問題,你能幫我嗎?
回答:能啊,扔掉萎軟的垃圾,換Linux吧。

提問:我在安裝Linux(或者X)時有問題,你能幫我嗎?
回答:不能,我只有親自在你的電腦上動手才能找到毛病。
還是去找你當地的Linux用戶組尋求手把手的指導吧(你能在這兒找到用戶組的清單)。

提問:我怎麼才能破解root帳號/竊取OP特權/讀別人的郵件呢?
回答:想要這樣做,說明你是個卑鄙小人;想找個黑客幫你,說明你是個白癡!

= 好問題,壞問題 =

最後,我舉一些例子來說明,怎樣聰明的提問;
同一個問題的兩種問法被放在一起,一種是愚蠢的,另一種才是明智的。

蠢問題:我可以在哪兒找到關於Foonly Flurbamatic的資料?
// 這種問法無非想得到“STFW”這樣的回答。

聰明問題:我用Google搜索過“Foonly Flurbamatic 2600”,
但是沒找到有用的結果。誰知道上哪兒去找對這種設備編程的資料?
// 這個問題已經STFW過了,看起來他真的遇到了麻煩。

蠢問題:我從FOO項目找來的源碼沒法編譯。它怎麼這麼爛?
// 他覺得都是別人的錯,這個傲慢自大的傢伙

聰明問題:FOO專案代碼在Nulix 6.2版下無法編譯通過。
我讀過了FAQ,但?面沒有提到跟Nulix有關的問題。
這是我編譯過程的記錄,我有什麼做得不對的地方嗎?
// 他講明瞭環境,也讀過了FAQ,還指明了錯誤,
並且他沒有把問題的責任推到別人頭上,這個傢伙值得留意。

蠢問題:我的主板有問題了,誰來幫我?
// 普通黑客對這類問題的回答通常是:“好的,還要幫你拍拍背和換尿布嗎?”
,然後按下刪除鍵。

聰明問題:我在S2464主板上試過了X、Y和Z,但沒什麼作用,
我又試了A、B和C。請注意當我嘗試C時的奇怪現象。顯然邊帶傳輸中出現了收縮,
但結果出人意料。在多處理器主板上引起邊帶洩漏的通常原因是什麼?
誰有好主意接下來我該做些什麼測試才能找出問題?
// 這個傢伙,從另一個角度來看,值得去回答他。他表現出了解決問題的能力,
而不是坐等天上掉答案。

在最後一個問題中,注意“告訴我答案”和“給我啟示,指出我還應該做什麼診斷工作”
之間微妙而又重要的區別。
事實上,後一個問題源自於2001年8月在Linux內核郵件列表上的一個真實的提問。
我(Eric)就是那個提出問題的人。我在Tyan S2464主板上觀察到了這種無法解釋的
鎖定現象,列表成員們提供了解決那一問題的重要資訊。

通過我的提問方法,我給了大家值得玩味的東西;我讓人們很容易參與並且被吸引進來。
我顯示了自己具備和他們同等的能力,邀請他們與我共同探討。
我告訴他們我所走過的彎路,以避免他們再浪費時間,這是一種對他人時間價值的尊重。
後來,當我向每個人表示感謝,並且讚賞這套程式(指郵件列表中的討論
--譯者注)運作得非常出色的時候,一個Linux內核?件列(lkml)成員表示,問題得到解決並非由於我是這個列表中的“名人”,
而是因為我用了正確的方式來提問。
我們黑客從某種角度來說是擁有豐富知識但缺乏人情味的傢伙;我相信
他是對的,如果我象個乞討者那樣提問,不論我是誰,一定會惹惱某些人
或者被他們忽視。他建議我記下這件事,給編寫這個指南的人一些指導。

=找不到答案怎麼辦 =

如果仍得不到答案,請不要以為我們覺得無法幫助你。
有時只是看到你問題的人不知道答案罷了。沒有回應不代表你被忽視,
雖然不可否認這種差別很難區分。

總的說來,簡單的重複張貼問題是個很糟的想法。這將被視為無意義的喧鬧。

你可以通過其他渠道獲得幫助,這些渠道通常更適合初學者的需要。
有許多網上的以及本地的用戶組,由狂熱的軟體愛好者
(即使他們可能從沒親自寫過任何軟體)組成。通常人們組建
這樣的團體來互相幫助並幫助新手。

另外,你可以向很多商業公司尋求幫助,不論公司大還是小
(Red Hat 和LinuxCare 就是兩個最常見的例子)。
別為要付費才能獲得幫助而感到沮喪!畢竟,假使你的汽車發動機汽缸密
封圈爆掉了--完全可能如此--你還得把它送到修車鋪,並且為維修付費。
就算軟體沒花費你一分錢,你也不能強求技術支援總是免費的。

對大眾化的軟體,就象Linux之類而言,每個開發者至少會有上萬名用戶。
根本不可能由一個人來處理來自上萬名用戶的求助電話。
要知道,即使你要為幫助付費,同你必須購買同類軟體相比,
你所付出的也是微不足道的(通常封閉源代碼軟體的技術支援費用比開放源代碼軟體
要高得多,且內容也不那麼豐富)。

RTFM和STFW:別煩我啦

有一個古老而神聖的傳統:如果你收到“RTFM (Read The Fucking Manual)”的
回復,回答者認為你應該去讀TMD手冊。當然,基本上他是對的,你應該讀一讀。

RTFM有一個年輕的親戚。如果答案是“STFW (Search The Fucking Web)”,回
答者認為你應該到TMD的網上去搜索。基本上,他也是對的,你就去找吧。

通常,用這兩句之一回答你的人會給你一份包含你需要內容的手冊或者一個網址,
而且他們打這些字的時候正在閱讀著。
這些答復意味著回答者認為
(1). 你需要的 資訊非常容易獲得;
(2). 你自己去搜索這些資訊比灌給你能讓你學到更多。

別為這個而不爽;依照黑客的標準,他沒有對你的要求視而不見,已經能大致能表
示對你的關注。你應該對他祖母般的慈祥表示感謝。
--
※ Origin: 小鹿鹿 <Deer.twbbs.org> ◆ From: berg.dorm4.ntnu.edu.tw
_________________
解決問題的順序:
1. 先查閱硬體(有沒有超頻/記憶體模組/周邊網路設備的好壞等等);
2. 檢查 /var/log 底下的登錄檔,尤其是 /var/log/messages 的內容;
3. 不要急,先翻書瞭解相關問題的原理,再設法解決~
4. 利用關鍵字,在 [url]www.google.com.tw[/url] 查閱是否有人已經遇過類似的問題?
5. 都沒有辦法了,再在討論區以明確的標題以及重要的資訊貼成內文來發問啦!

roysu 发表于 2006-9-15 18:47

来源:[url]http://linux.oneandoneis2.org/LNW.htm[/url], 中文:[url]http://www.ubuntu.org.cn/lnw[/url], 翻译:laborer
以下的文章中,当我提到GNU/Linux操作系统和种种的FOSS(译者:自由和开源软件)项目时我都会用一个统一的名称Linux来代替,这样看起来好些。
[url]http://www.linuxeden.com/forum/atta...ntid=1924&stc=1!=[/url] [url]http://www.linuxeden.com/forum/atta...ntid=1923&stc=1[/url]
(Linux不是Windows)

如果你像我一样花些时间在Linux论坛上,那你就会像我一样因为有太多这样的帖子而恼怒:

"嗨!我用了几天Linux,总体还行。但某某功能不能像Windows那样,真糟糕。为什么开发人员不能重写一下让它更像Windows一点?我相信这样做的话Linux的用户会更多!"

你也许尝试过回应这些问题,结果那个Linux新手却和你吵得面红耳赤,他根据自己几年来在另外一个操作系统上和区区几小时在Linux上的经验,得出结论:他的想法是无比睿智的,而你不同意他的观点是因为你是一个从“古董学校”出来的Linux用户,认为GUI是恶魔的产物,所有人都应该强迫去用CLI (译者:命令行界面)。

本文的目的就是向这样的新手解释为什么他们的观点会引发争论而不是受到欢迎。

首先就是这个最常被提起的论断: "如果Linux能这样,那就会有更多的人从Windows转过来!"

这样,让我先解释一下为理解Linux所需的基本常识:Linux社区不会试图去为一般的Windows用户提供一个替代的操作系统。Linux的目标不是“每台机器都装Linux”。

千真万确,真的不是。的确,它们都是操作系统,的确,它们都能做相同的事情,但是这让Linux成为一种选择,而不是替代品。这看上去也许算不上什么区别,但实际上却是最最重要的一点。

Linux<=>Windows就如同摩托车<=>小汽车:都是车,能通过公路吧你从甲地送到乙地,但它们有不同的形状、不同的尺寸、不同的操作装置,其基本工作方式也不同。它们是不可以随意互换的。它们有不同的用途、不同的长处和短处,你要挑选一种适合自己的,而不要指望一种可以完全替代另一种。

一个开车的人遇到塞车时,看到摩托车自如在车堆中来回穿梭,他也许会羡慕摩托车所具备的这种能力。如果这个司机接着又说:“我对汽车了如指掌,所以我也一定同样了解摩托车!”,那么他就错了。

  * 如果那个司机买了一辆摩托,然后发现很难适应用手旋转握把来控制加速,而不是脚踏板,他可能会报怨摩托也应该装油门踏板。
  * 如果那个司机有一个老婆两个孩子,他也许觉得摩托车只能载一个乘客是个缺点。他会建议重新设计摩托车,使其可以两两肩并肩的坐四个人。
  * 如果那个司机想骑摩托车,却发现无法控制平衡,总是摔倒,他也许会建议让摩托车也安上四个轮子。
  * 如果这个司机发现转弯时自己身体总会倾斜,那他会建议在摩托上装稳定器使其可以在转弯时总保持正直。
  * 如果这个司机怕摩托车被偷,他也许会报怨摩托没有门,让小偷容易得手。
  * 如果这个司机觉得头盔碍事,他也许会建议在手把上装一个安全气囊以替代烦人的头盔。

这些情况下他都错了,因为他想用摩托车替代汽车,他想让摩托做所有汽车能做的,他以为摩托的工作方式与汽车相同,比汽车缺少的功能只要嫁接上就行了。

同样,一些好心的Linux新手也建议把Linux变成他们所熟悉的样子,结果也因为相同的原因没有任何所获。也许Linux和Windows都可以被用于完成相同的任务,但汽车和摩托也是。这并不意味这你可以直接从一个换到另外一个,也不意味着它们的特性可以相互替换。

太多的人以为从Windows转移到Linux就如同宝马换奔驰一样,认为其控制方式应该相同,他们的经验直接可以派上用场,而两者之间所有的差别也仅仅是表层的。他们想:“在公路上行驶时,我需要汽车,在使用电脑时,我需要操作系统。汽车的工作方式都相同,因此操作系统的工作方式也应该都相同。”但这并不准确。“在公路上行驶时,我需要车,在使用电脑时,我需要操作系统。我知道如何开汽车,但我不懂摩托车。我知道如何使用Windows,但我不懂 Linux。”----这才是准确的。

Windows用户必须意识到他只是一个有经验的Windows用户,而不是有经验的电脑用户,就像汽车司机仅仅是汽车司机,而不是所有种类车辆的司机。Windows用户必须意识到当他在尝试Linux时,他又成为了一个新手,就像汽车司机去尝试开摩托。 Windows必须要愿意去学习完成相同任务所需的不相同的手段,就像汽车司机必须要去适应替代方向盘的手把和他从没戴过的头盔。并且他们要作好心理准备:这些“不同”并不意味着“劣等”。

这个简单的事实给有基础的Windows用户造成了更大的麻烦。他们来用Linux时带着根深蒂固的Windows操作习惯和一种态度:“谢谢,我知道怎么用电脑!”问题是,他们并不知道,他们只知道怎么用Windows。当面对另一种操作系统时,这些高级用户可能会遇到最糟的问题:他们有太多的经验需要遗忘掉。

当一个新手说“我不知道”,接着就开始在论坛上探索、提问时,一个Windows高级用户可能会说:“我知道怎么做,我就这么、这么、这么做,然后……居然不行!愚蠢的系统!”接着他们又说:“如果我这么有知识的都搞不定,那新手就更不要想了,Linux离桌面应用还有十万八千里呢!”他们恐怕没有意识到他们的知识帮了倒忙,使他们比经验少的用户遇到更多的问题。他们错误的以为Linux是一种可以和Windows做相同事情的软件,而事实上是它是一种不同于Windows的软件,做的事也不同。不是Linux做与Windows相同的任务做得不好,而是它很好的完成了一个替代的任务
Linux是一种可供选择的操作系统,而不是Windows的替代品。它也永远不会取代Windows,因为它们有完全不相容的目标。微软的目标是让他们的软件装到更多的电脑中,赚更多钞票。而Linux不是这样,它是免费的,它的着眼点不同。

要理解这一点就要先理解FOSS 并不奇怪很多Linux新手现在还不能很好的理解它,他们是新手嘛,他们还是习惯于从私有软件的角度思考。所以让我解释一下:

典型的FOSS软件的作者往往因为对现存软件的不满,于是想到自己来写一个。而他又是个大好人,他把软件源码公之于众之后对大家说:“你们自己折腾吧!”。他可以这样做,因为复制软件没有任何成本,所以把软件贡献给世界也不会比自己留着用多花一分钱。他不会因为把软件送人而感到痛苦。


然而,很重要的一点需要记住的是:他也不会因为送出软件而获利。不论是一人用还是一亿人用,对开发者来说毫无区别。哦,当然,他一定乐意看到自己的产品广受欢迎:用户数是个自我吹嘘的好题材,还能创造记录。但这不会为他带来任何金钱:因为这是FOSS。

如果这个软件有所成功,别人就会对此感兴趣,也愿意帮助改善它。这是FOSS最大的优势:每一个用户都可能是潜在的开发者,每一个人都能参与使软件工作得更好,功能更多,bug更少。如果一个软件能吸引到一大帮开发者那将是非常好的事情。但这仅是对软件本身而言的,它会使软件变得更好,而开发者不会因此致富,只会让他们为此投入更多的时间。

FOSS与如Windows一类的私有软件截然相反:FOSS完全关注于软件本身,而不在意最终用户的数量。软件运行很好,但用户寥寥,这从商业软件的标准来看是失败的,但从FOSS的标准来看却是成功的。

FOSS关注于编写高质量的软件,真正能做事的软件。如果你想使用它,那你就需要投入时间来学习如何使用。FOSS软件是免费供你使用的,为编写它许多人不去计较个人利益,投入了大量的时间 。因此,在你报怨它不能像Windows中相对应软件一样工作之前,至少也应该投入一点时间,算是对软件作者贡献的一种尊敬吧。

“哈哈,现在我抓到你的破绽了,”一个新手自鸣得意的说:“有一些Linux项目的目的就是替代Windows,而不仅是提供一种选择。”

不难看出这种想法从何而来。例如,KDE和Gnome提供了一种不同于Linux传统的窗口管理器和CLI的桌面环境,它们更加类似于Windows。Linspire更一种要把Linux做的完全和Windows一样的Linux发行版。

然而,这些论据更能支持我的观点,而不是那个新手的。

为什么?因为这些都是标准的FOSS项目,都是以把软件做得更好为目的的。唯一的区别就是,在这些项目中品质的定义是“如何让Windows用户使用起来更方便?”

你一旦考虑了这个因素,你就不得不同意这些项目的目标都是改进软件本身,它们都是100%的典型Linux软件。这些项目由那些更加无私的开发人员编写:他们这样做不是为满足自己的需要,因为他们已经太熟悉Linux了。相反,他们是为了使其它人从Windows过渡到Linux更加容易。

这些开发人员知道有一些Windows用户希望转投Linux阵营,于是他们花力气建造一个能让Windows用户感到舒服、熟悉的Linux环境。他们无意去替代Windows,尽管最终的结果给人留下了这样的印象,但他们的最终目的是不一样的:不是制造一个Windows替代品,而是帮助 Windows用户过渡到Linux上。

社区里反对这些项目的声音并不罕见。有些人理由也是合理的(“KDE太吃资源,还是用Fluxbox好”),有些人则抱着一种不够理性的“像Windows样的软件都不好”的态度。事实上这不是反微软或反Windows的态度,而是蛮不讲理的憎恨自己不了解的东西。

典型的Linux用户是一个电脑爱好者:他用电脑因为电脑好玩,编程好玩,hacking(译者:这个词非常难译,没有一个简单的词能够代替,这里主要是指修改软件使之满足自己需求)也好玩。而Linux是hacking爱好者的最爱,他可以把Linux分解到最基本的部分,然后再根据自己需要重新组装起来。

然而,新来的Linux用户很大部分不是电脑爱好着,也不是hacker(译者:修改软件使之满足自己需求的人)。他们只要求电脑能工作,就像Windows那样工作。他们没兴趣去花时间设置Linux,他们希望拿来就能用。

这很好,但在典型的Linux用户看来,这就如同有人想要一辆已经组装好并用胶水粘牢的乐高玩具汽车。这对他们来说实在无法想象:“怎么会有人要这个?”

这的确难以理解。如果你想要一辆做好的汽车模型,那去买一辆玩具车。如果你想要一辆可以自己组装的车,那就买乐高。怎么会有人想要一辆只能当玩具车玩的乐高车呢?乐高的乐趣就在于自己组装啊!

典型的Linux用户也会如此回答那帮问“为什么它就是不能工作呢?”的人:“如果你仅想让电脑工作,用Windows好了,如果你想自己能动手修改,那就用Linux。如果你对开源软件的这些好处毫无兴趣,那你干什么还要转去用Linux呢?”

答案通常是他们根本就不是真心想去用Linux,他们仅仅是想远离Windows:他们希望远离病毒,远离恶意软件,他们希望免除收费软件的限制,不被E.U.L.A.所束缚。他们不是在尝试投入Linux的怀抱,他们只想摆脱Windows。而Linux只是最广为人知的一种选择罢了。

稍后再进一步论述. . .

你可能想:“好吧,这样可以解释为什么开发者不去尽力让他们的软件更像Windows,但是Linux软件也可以在不违反FOSS的原则的前提下拥有有像Windows那样友好的GUI呀。”

有一些理由可以说明为什么不是这样。

首先: 你真的认为写软件的人会故意去弄个很烂的用户界面?

当一个人投入大量个人时间去编写软件时,他总会努力使软件的用户界面(UI)尽可能的好。UI对软件来说太重要了:如果某个功能不能通过UI来访问,那它就根本毫无意义。你也许不知道,但UI成为现在这样不是没有道理的,其原因是那就是软件创造者能做出的最好的UI了。

如果你仍坚持类似Windows的UI使软件更好,请不要忘了这样一个事实:这些软件的作者并不同意你的意见。他们对这些软件的理解肯定比你要深刻得多,也许他们错了,但可能性很小。

第二:现在已经有很多漂亮的、易于被Windows用户接受的GUI前端。我想不出有什么功能不能通过GUI来控制,不管是多么高级的。你可以编译内核(make xconfig),设置放火墙(fwbuilder),硬盘分区(qtparted)……这些都可以由好看的、交互的、符合直觉的并且用户友好的程序完成。

但是Linux的发布周期与Windows不同,不可能从一开始就有一个精良的GUI界面。GUI只会增加软件的复杂度,而不会给功能带来什么改进。开发者的本意可不是弄个花哨却什么也做不了的GUI,他们创作的是自己需要的软件。

一个软件最先能做的便是在命令行(CLI)方式下使用,它可能包含各式各样的调用选项和长长的配置文件。因为这是实现软件功能所需要的最基本的东西,其它的都可以慢慢完善,即使日后有了漂亮的GUI,但我们仍应当看到:通常它还是完全可以用CLI和配置文件来控制的。

这是因为CLI有很多优势:CLI通用;每个Linux系统都有CLI;所有程序都能从CLI执行;远程访问CLI也特别方便。而GUI则不然:有些Linux机器没装X11窗口系统;有些软件不能通过GUI菜单访问;通常远程使用GUI工具也不容易。

最后,可能会有不同GUI前端能做相同事情,别人无法知道你到底装了哪一种。

所以请记住,当你问“我该怎么弄……?”的时候,大部分情况下别人都会告诉你怎么通过CLI解决。这并不意味着问题只能从CLI解决,而是恰恰反映了在软件发展过程中CLI相对于GUI的重要性。

  * Windows 是完全以GUI为中心的,它是一种基于GUI的操作系统,其CLI是烂得可以(但很快就要改善了)。几乎没有什么Windows软件是没有GUI的。这也使人们认为GUI是一个软件必不可少的重要元素。但对于Linux来说,软件一旦能工作就可以发布了,只有等它足够稳定、没什么bug、功能也很丰富时才有必要增加GUI。
   请试着把一个没有很好GUI界面的软件理解为内部测试版,而不是一个已经完成的产品。FOSS还远远没有“完成”,它还在不断的改进中。只要时机成熟,它完全可以变得用户友好。但在大部分情况下,使它工作的更好要比使它看上去感觉更好重要得多。你应该高兴今天就有机会能用上未来软件的功能,而那些只喜欢漂亮GUI的人就享受不到了。FOSS并没有到达它旅途的终点,它才刚刚上路呢。

最后你还需要记住的是:软件的GUI部分经常是分开提供的,甚至有可能是完全不同的开发人员独立开发出来的。所以如果想要GUI,那一点也不奇怪你必须分开安装,而不是一次性装好。

诚然,为了获得Windows式的GUI,分开安装确实增加了额外的步骤,但这不影响这样一个事实:你现在就可以通过“像Windows一样”的GUI做几乎所有事情。请不要忘记GUI通常只是最后一步,Linux绝不会只图外表而不重内涵的。

第三:Linux是特别设计给知识丰富的老手使用的,而不是无知的新手。有两个原因:

  * 无知乃与生俱来,但它很短暂,知识才是永恒的。也许要几天、几周、几个月才能让你从“Linux新手”成为“中等的Linux用户”。但你一旦达到这个水平,你就可以一直用下去了。
   为了使软件对新手来说比较易用而放进一大堆代码就如同给所有自行车焊上永久的平衡轮。也许这会让起步变得比较容易,但之后呢?我相信你现在肯定不会想买一辆带平衡轮的车。不是因为你是一个反对用户友好的怪人,而是平衡轮对你来说毫无用处了,除了新手谁都用不上,放在那里反而碍事。
  * 不管软件多好,用户要能用得好才行。就算有世界上最安全的门,如果你不关窗、不锁门或者忘拔钥匙,小偷一样畅通无阻;就算有世界上最好的引擎,如果你加错了燃料,一样跑不了。Linux把所有的能力都交到了用户手里,这也包括破坏它的能力,当然没人想这样。想要保持Linux正常的运作,多学点让自己知道自己在做什么是唯一的办法。如果用户可以很容易的操作那些他根本不了解的功能,那么他也很有可能会造成破坏。

第四:从上面的文字中,你觉得FOSS有可能通过吸引典型的Windows用户而获得任何好处吗?

不急,你可以重新看一遍,我等着。

Linux和FOSS的指导原则是“做好的软件”,并非“做Windows的替代品”。一群典型的Windows用户对Linux的唯一贡献就是报怨。他们报怨什么?“它工作得不像是在Windows上那样。”

不,它不像。如果Linux工作得就和Windows一样,那就太烂了,它将会是一个没人要的劣质品。人们如此热烈的喜爱Linux正是因为它不像Windows,它不会替你做每件事,它不会假设你永远是个无知的新手,它不会所有把内部的工作都隐藏起来。

Windows是载着你四处跑的司机;Linux则给了你钥匙并让你坐上驾驶座。如果你不会开车,那是你的问题、你自己的错。只要你肯问,很多人都会帮助你。如果你提建议类似于装备定速巡航系统,你定是有所领悟:汽车还是自己控制在自己手上,只不过可以省不少力气。但是如果你尝试去劝说别人Linux真的真的需要一个司机,那你真该忏悔一下。

“但这将使Linux更加主流啊!”,新手叫到。

也许是这样。但是Linux成为主流,开发者们又能从中得到什么好处呢?Linux是免费的,就算Linux获得了更大的用户群,Linux的创造者们不会因此多****,Linux论坛上的人们也不会由此获利。Linux的目标不是“获得更大用户群”──那是私有软件的目标。

Linux的目标是创造真正好用的操作系统。开发者们一直都在忙于增加功能、减少bug和改进现有的代码,他们可没有闲功夫去举着广告牌宣传他们的东西有多好。你不难发现在他们眼中什么才是最重要的。

有意思的是这样的模式使Linux的用户群不断增长,Linux开始很渺小,后来却非常巨大。什么原因使Linux得到如此广泛的认同?原因是它一直将质量视为焦点。用户被Linux自由和质量所吸引,而这只有FOSS能够提供。Linux能够发展壮大正是因为它并不在乎自己有多大。开发者们仅仅关注如何使它工作得更好,于是他们吸引了那些想要一个能工作得更好的操作系统的用户。

如果突然把这一切都抛弃,相反让Linux去关注如何替代Windows,那就等于抹杀了Linux赖以成功的要素。有些公司已经看到了Linux成长潜力,希望从中掘出宝藏。但GPL成为了他们的障碍,他们无法把Linux买出Microsoft的价。“Linux如果还坚持开源的话那肯定长不了,”他们说,“因为没人能这样****的。”

他们没有意识到把Linux变为私有软件是杀鸡取卵的短视行为。正因为Linux是FOSS,也没有人想用它去替代Windows,Linux才能发展到今天的规模。Linux繁荣的原因恰恰在于它在与Windows的竞争中选择了一条Microsoft永远无法对抗的阵线:开放和质量。

对于大多数Windows来说,Linux只是一个劣质的Windows摹仿品,它看上去功能不够丰富、集成度差还特别复杂。对于这些用户来说, Linux是个很差的操作系统。的确是这样:Linux没有满足他们的需求。他们需要的是一个简单易用的操作系统,不用任何学习就能上手。

Windows是设计给非技术人员使用的,他们普遍感到Linux很难用。尽管情况不是这样,但这种误解还是可以理解的。

事实上Linux很容易使用,真的非常非常易用。那为什么他们都不这么看呢?因为“易用”一词含义被严重的扭曲了,“易用”现在被理解为“在没有预先学习的情况下用起来也很容易”。但那真的不是“易用”的含义,而是“易懂”。其区别就如同:

  * 一个保险箱,上面有一张纸条写道:“如需开此保险箱,请先把播盘播到32,然后到64,然后到18,然后到9,最后拧动钥匙,同时向上提起把手即可。”



  * 一辆小汽车,只要按动摇控器上的“开锁”按钮就能打开车门。

开车锁相比要容易得多,对吧?只要靠近汽车,一个按钮就能搞定,不像保险箱还得精确的来回转动播盘。然而,对于两种锁都不会开的人来说开保险箱锁要比开车锁容易:保险箱上写有清楚的打开方法,而开车门的按钮甚至都没有装在车上。

会者不难。Linux也是这样,它很易用,但是学起来辛苦,只有当你愿意投入时间去学习Linux时你才能发现它为什么简单。不可避免,你越是把任务分解为简单的步骤,完成这个任务所需的步骤就越多。

让我随便来举一个简单的例子:把文本中的五行(段)从中间移到尾部。

如果用微软的Word、写字板、记事本等等“用户友好”的Windows文本编辑器,最快的办法是:
- Ctrl-Shift-Down
- Ctrl-Shift-Down
- Ctrl-Shift-Down
- Ctrl-Shift-Down
- Ctrl-Shift-Down
- Ctrl-X
- Ctrl-End
- Ctrl-V

(这里假设你使用键盘操作。不然,你需要好几步鼠标托拽操作和可靠的自动滚屏。)

在vi里只需如此:
- d5d
- Shift-g
- p

论“用户友好”性,vi可谓要多差有多差,但它完成同一操作所需的击键次数却比微软的软件少。为什么?因为Vi注重于功能,而微软更注重“用户友好”。微软把所有事情都分解为简单步骤,所以完成同样的任务要花多得多的步骤。

这使得不论是什么样的文本编辑任务,一旦你学会使用,相比之下vi都更加高效、易用。如果你不知道“d5d”的意思是“将五行文本放入缓冲,然后将其从文档中删除”,那么可能你用起vi来就会感到很痛苦。但如果你已经知道了,那用它起来就是随心所欲了。

所以当一个新手看到有经验的vi用户可以如此快速、方便的做事时,他自然会很容易得出结论:编辑文本,vi要比Word强。然后他自己去尝试,运行vi,看到的是满屏的~s,打字,什么反应也没有。

后来他弄明白了文字录入和命令模式,接着就想用vi做事。然而对vi过于有限的知识依旧使他步履维艰,在他能真正掌握vi之前还有太多的东西要去学习。然后他开始报怨:“vi如果能像Word那样易用就好了。”

但实际的问题是:“我不知道怎么用vi,学起来太麻烦了。”这是他自己的问题,他在指责自己的问题而不是软件的。 有成千上万的人乐意于使用vi,他们从没报怨过说:它太难用了,必须改!

请相信我,如果他能写出一个软件既像Word那样“用户友好”又像vi那样功能强大,那他一定能赢得无数掌声。事实上,他应该还能赢得诺贝尔极度智慧奖,因为目前还根本没有其它人能做到这一点。但他如果仅仅是诉苦vi太难用,那只会遭到嘲笑,因为vi没问题,问题在他自己。
[url]http://www.linuxeden.com/forum/atta...ntid=1919&stc=1[/url]转至 UserFriendly.org 版权所有 © 2004 J.D. "Illiad" Frazer.
(译者:
图1,左:你有没有给Niffle先生打电话,关于他的连接问题?右:有。
图2,左:那分析结果是?右:经典PEBKAC问题。
图3,左:PEBKAC?右:键盘和椅子之间存在的问题。)


这就像买了达芬奇的画笔然后报怨自己还是不会画画。画家的技巧才是成就名作的关键,画笔本身创作不了蒙娜丽莎,它只是一个依赖使用者技巧的工具。而这种技巧必须通过练习才能获得。

vi正是如此,很多Linux软件也一样。一些新手总是报怨这些文本编辑器、包管理器或者命令行本身太复杂、太不够直观。

在你坚持Linux某些东西必须修改之前,请问自己这样一个问题:“那些老手们是不是也有同样的意见呢?”

如果答案是“不”,那问题在你自己这一边。如果其它人都能很好的使用,你为什么就不行呢?你有没有花时间去学呢?或者你是否打心底里就没有想去尝试呢?

“用户友好”和“底层的功能性”常常是矛盾的。那些小按钮和下拉菜单确实能使软件变得易于使用,但对有经验的用户来说它们却可能是麻烦。这就如同拿着地图和指南针从A走到B,与看着路标走的区别一样:谁都会跟者路标走,但这会比知道如何直接过去的人多走一倍的距离。
[url]http://www.linuxeden.com/forum/atta...ntid=1920&stc=1[/url](译者:蓝色线条:“简单”路径;红色线条:直接路径)

如果我想在Excel中粘贴公式的值,我只能通过菜单选择:编辑->选择性粘贴->粘贴数值。我不想在这些“友好”的菜单、子菜单和对话框中选来选去,我就想直接完成。老实说,如果重设快捷键,再记录一些宏,我完全可以通过键盘来指挥Excel和Word做绝大部分的事。

但这就不是用户友好了,对不对?它还是需要用户投入大量时间来研究这个软件。Linux要求你花时间学习如何使用现成的功能,而“用户友好”的软件却要你花时间自己创造功能。

如果你喜欢这样,没问题,你就这样做好了。只是你应当看到:问题出在你自己的知识水平上,而不是软件本身。一旦知道如何使用,所有的Linux软件都超级好用。但如果你不知道,那它就显得很难使,这并不是软件的错。

现在也许你开始觉得Linux有点态度问题。它不想要用户,它不想让自己的用户感到方便……它只是给那些自命不凡的l33t h4xx0r5用的!(译者:l33t h4xx0r5又可写作leet haxxors,指不受电脑系统权限所约束、对自己的电脑技巧极有自信的人,通常指黑客)

这完全脱离事实。Linux当然想要用户,它当然不想让事情变得困难。正相反:按照Linux的定义,难用的软件就是垃圾软件。

但是你要知道,它的定义可能和你的不同,也和“传统”的私有软件的定义不同。

Linux想要那些真正需要Linux的用户。这不仅是说需要一个名头,而是所有的东西:自由、开源的软件;自己修补软件的能力;坐上驾驶座的感觉,一切尽在掌握。

这才是Linux,这才是Linux关注的。人们因为讨厌病毒、讨厌蓝屏、讨厌间谍软件而转去用Linux也是可以理解的。但这些人并不需要Linux,他们只想要一个没有那么多毛病的Windows。他们不要Linux,那Linux凭什么一定要他们呢?

但如果他们因为病毒和间谍软件而去尝试Linux,然后慢慢接受了Linux的理念并开始被Linux自身的特点所吸引,继而想要使用它,此时Linux也想要他们。

在你决定转而使用Linux之前,问问自己“我为什么要转?”

如果答案是“我想要一个能赋予用户所有的权力操作系统,我明白它要求用户必须学习使用。”:那就选Linux。也许你要付出很多时间和努力才能达到你想要的高度,但最终你能得到一台完全按照你的想法工作的电脑。

但是. . .

如果答案是“我想要个没那些毛病的Windows”:那么安装一套干净的Windows XP SP2;设好防火墙;安好杀毒软件;永远不要用IE浏览网页;经常更新;每次装完软件都重启;还要多了解安全方面的知识。我自己从Windows 3.1用到95、98、NT和XP,从来没有中过病毒和间谍软件,也没被黑过。Windows可以很安全、很稳定,但是只有你花力气维护它才行。

如果答案是“我想要个没毛病的Windows替代品”:那买一台苹果Mac。我听说OS X的Tiger版很棒,苹果机器的外观也很漂亮。也许你为此要花钱买一台新的机器,但你能获得你想要的东西。

这两种情况下,都不要去尝试使用Linux。你会对Linux的软件和社区感到失望的。Linux不是Windows。

davidlin 发表于 2008-12-2 22:05

谢谢,学习了,,,人要实在一点,想问题也要实在一点.就好..不好老说LINUX不好...其实WINDOWS系统就像傻瓜相机一样,如果还不会用...那就没话说了....

hello5isyuxin 发表于 2009-4-18 10:36

我也不太在行提问题,但我觉得自己更大的缺点是不会积累问题!

马达加师加 发表于 2010-4-16 12:17

好文章

[url=http://www.x447.cn][b][color=white]QQ华夏[/color][/b][/url]
[url=http://www.hol8.cn][b][color=white]QQ华夏[/color][/b][/url]
[url=http://www.ytiki.cn][b][color=white]dnf[/color][/b][/url]
[url=http://www.ssfgv.cn][b][color=white]dnf[/color][/b][/url]
[url=http://www.ank5.cn][b][color=white]dnf[/color][/b][/url]

asdf123382 发表于 2010-7-23 16:35

目前我的问题是 发不出去帖子···

lovemay 发表于 2011-12-20 15:32

学习了  谢谢楼主

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.