相比較Windows,Linux系統的優點體現在哪裏?

拋開Android不談,Linux是一個以開發者爲中心的操作系統,Windows是以消費者爲中心的操作系統。這是最根本的區別,也是Linux相對於Windows的優勢/劣勢所在。必須承認,儘管有很多人、很多公司在努力讓Linux變得更加"User Friendly",但Unix/Linux的用戶羣體從來不是普通用戶而是計算機的工業界和學術界。它的優先級,也是搞定工作而非娛樂。Linux的很多生態上的特點,都可以用這件事來解釋。另外一個很重要的特點,是Linux是由業餘愛好者們拼湊而成的。它不像Windows/Mac一樣有一個明確的『開發目標』,甚至不像BSD一樣有一個『Base System』,Linux不過是一個內核,和一堆從不同地方搞來/開發,試圖滿足不同開發者自身需要的應用程序。只不過碰巧發現,這些工具組合組合,能夠滿足大多數人的大多數需要而已。瞭解這兩個特點之後,Linux的很多優點/缺點,也變得很容易理解。應用的傾向最顯著的特點是,所有與開發有關的任務,都有非常完善的工具支持。——從底層編譯器,到make/cmake,到shell script/script languages,到git,到vim/emacs再到方便的依賴管理和軟件裝卸工具。而其他的工具,相對來說要有限一些。而且這些工具幾乎默認可用。你能想象Windows/Mac出廠的時候就帶着VS和一大堆開發工具嗎?可是Linux幾乎所有distro下,從shell到git到sed到g++/make,都是『預裝好的』。這是因爲,這些工具對於絕大多數的Linux用戶來說,是一種必須。『效率』和『易學』的抉擇不是說Windows/Mac下就會沒有『效率』,而是Windows/Mac的設計相對來說沒有那麼傾向『效率』那一端。拿圖形接口舉例子,Linux的絕大多數工具都是『先有命令行/庫接口』,然後將X11接口作爲一種『Afterthought』和『額外的選項』,而Windows/Mac恰巧相反——默認的接口是『圖形化』的,自動化的工具作爲一種『額外的選項』。開放源碼和高度可定製開放源碼的初衷,不是爲了『自由』而是爲了『定製』。AT&T UNIX從來就是有版權的,但是源代碼仍然可用,這是爲了讓用戶能夠根據需要,去『修改』它。Linux社區所讚賞的軟件和系統,多半遵循同樣的規則——它應該能夠適應不同用戶的不同環境,能夠輕易的改變自己的行爲,能夠輕鬆的與不同環境整合。與其假設別人和你的需求一致,不如給予它們定製系統的自由。『用戶友好』與『減少包裝』Linux的大多數軟件,都是以個人興趣作爲開端的——我想寫一個程序自己用,順便分享給社區。事實上,絕大多數Linux的軟件,也仍然是這樣的狀態——你可以拿過來用,但如果它有什麼問題或者有什麼不滿足你要求的地方,需要你自己去研究一下。所以Linux下的軟件,往往願意將自己『更徹底』的暴露給用戶。方便用戶更好的瞭解它的內部機制,進行hack。去中心化分散的軟件開發,也註定了系統的接口和形式不統一——因爲大家都喜歡發明輪子(?),而每個人的輪子或多或少更適合『自己』和『社區』而非所有人,而在Linux的環境下又沒有人能強迫所有人用自己的輪子(除了Kernel開發者,但其實很多distro對kernel也有patch),所以與其制定一種實踐,Linux更多的讓用戶去選擇『生活的方式』。你會看到Linux生態環境中有大量的distro,不同的distro有不同的init方式,不同的軟件包管理器和安裝策略;每個人習慣使用不同的VCS,不同的shell,不同的編輯器,都就是『更多的選擇』的哲學的體現。所以,如果你發現你自己更多的是『開發者』而非『消費者』,或者你所做的任務碰巧是人們一般用Linux完成的,那麼你自然會發現Linux的優點。就我個人來說,即便有VS,我還是經常會覺得windows下項目的配置太繁瑣;即便有homebrew,我也常常會覺得OS X下的軟件管理比較奇怪。而在Linux下,我可以輕易的使用到最新版本的幾乎所有開發工具。而其他的時候,用Linux或者Windows/Mac就是個習慣而已嘛——又不是說Python和Ruby一定要分個高下,所有人只能用一種系統。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章