歡迎您光臨本站 註冊首頁

鍛造經典 微軟需要向 Linux 學習什麼

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

  【IT168 軟話不軟】在上篇文章中,我列出了 Linux 可以從微軟身上學到的 5 件事。但是,事情總是具有兩面性:同樣的,微軟公司也可以從 Linux 身上學到很多的東西。


微軟的確可以從 Linux 身上汲取許多營養!

  我知道這聽起來有點奇怪,因為你們中的絕大部分人都正在一台 Windows 電腦上瀏覽這篇文章。但是,只要你稍微想想,就不難挑出微軟身上還是存在著這樣那樣的缺點:微軟的軟體產品總是姍姍來遲;微軟軟體憑藉著糟糕的系統安全性而聞名於世。再看看另外一方,想想 Linux 是怎樣在伺服器領域一路高歌猛進,又是怎樣開始在電腦桌面系統領域扮演著一個越來越重要的角色。最後,讓我們不要忘記還有偉大的蘋果電腦公司,它已經憑藉著自己的 Intel 硬體構架的新款 Mac 電腦從垂死的困境中走了出來,重新又開始在桌面系統領域中流行了起來。

  微軟公司可能依然還處於這個世界的頂峰,但是預示著它下落趨勢的徵兆卻無處不在。任何公司都可能在任何時候從自己輝煌的寶座上滑落下來,這種情況在歷史不斷地反覆發生。

  在這一點上,微軟公司無法超脫於萬物之外。


曾幾何時,IBM 公司統治著 PC 市場

  還記得當初每個人都只購買 IBM 生產的個人電腦的那個時候嗎?現在,IBM 再也不銷售 ThinkPad 筆記本了。曾幾何時,每個人都會買美國製造的汽車,但是今天,通用汽車和福特汽車的市場份額在不斷的萎縮,而來自日本的豐田公司和本田公司卻在急劇地侵吞美國本土的汽車市場。此外,我還依稀記得早年泛美航空公司(Pan-American Airways )壟斷美國國際航線市場時的盛況,但它卻早已在 1991 年的時候破產了!

  一時的輝煌並不代表著你能夠永垂不朽!假如微軟公司想要永遠佔據著世界的頂峰,就必須要從自己最危險的競爭者那裡學習一些東西--而這個競爭者就是 Linux。

  1. KISS 原則("keep it simple, stupid"--保持簡潔,使用戶不用思考!)


Linux 勝在簡潔!

  你知道為什麼微軟無法按時地推出自己的軟體產品,而是不斷地一拖再拖嗎?即便是這個計劃看起來是萬無一失的時候,也是這樣?我知道。

  這種情況的出現,部分上是因為這是微軟所採取的商業策略。這是微軟慣用的伎倆,它喜歡使用這種“煙霧彈”策略來扼殺自己的競爭對手。每當某位競爭對手推出某個新產品的時候,微軟總會大肆宣揚自己“即將推出”的最新軟體產品中也同樣包含有這個功能。結果怎樣呢?消費者們一般都不會購買剛剛上市的這個新產品,而是乖乖地等著在“不久之後”購買微軟的產品。

  但是,這還不是故事的全部。在經過多年的演化之後,微軟公司的軟體產品已經進化成了一頭由無數義大利麵條式的代碼糾纏而成的複雜的龐然大物,以至於我很懷疑在微軟公司中是否有人真正對軟體的開發和進展有一個清晰而全面的了解。在程序開發者的圈子中,微軟的軟體是對這種“現代浮腫式軟體”的最佳詮釋。

  而在另一方面,Linux 繼承了古老的 Unix 模式的精髓,使用著許多簡單的,微小的程序,庫文件和 APIs(應用程序設計界面)來構築了一個精巧得多的軟體。大部分 Linux 的發行版本和在它上面運行的軟體,其程序源代碼都能夠被使用者們輕鬆地閱讀、理解以及調試。

  這就是為什麼 Linux 會比 Windows 進化得快得多的主要原因。舉例來說,那不斷推遲延期的 Vista 的 3D 圖形界面“Aero Glass”依然還有很多地方需要被完善。而 Linux 這邊的對應產品 Xgl,雖然依然處於開發之中,但是你知道嗎?Xgl 現在已經能夠工作的非常良好了,很多用戶已經在使用它了。

  另外值得注意的一點是,Aero Glass 要求配置非常高端的圖形顯示硬體來支持。而 Xgl 我在自己只配備有整合 Intel 顯卡的機器上成功地運行了它。

  假如微軟真正是想要編寫出更好的軟體的話,管理層需要真槍實彈地對最基本的東西進行改革,而不是只坐在那裡高談闊論他們又怎樣重新構築了 Windows 系統,大肆吹噓他們所取得的進步。微軟需要真正放棄自己原有的工作方式,而採納 Linux 或 Unix 風格的編程哲學。


Unix 基礎的蘋果電腦一直是 KISS 原則的典範

  2. 開發源代碼(Open Source)


Open Source

  談到編程的哲學,事實上,微軟並不會因為接納了開發源代碼的哲學就徹底完蛋。我在這裡所說的“接納”,是真正意義上的“接納”,而不只是施捨般的放出一星半點的軟體代碼。

  如果比爾·蓋茲無法接受 GPL 協議--他也的確無法接受--這裡還有 BSD 協議。很多商業公司,諸如 Sun 公司和 Scalix 公司, 他們也同樣非常高興地發現自己可以修改 MPL 協議(Mozilla 公共協議)來滿足自己的需要。

  畢竟,現在看起來,微軟公司也不再是真正地想要通過“將自己的軟體賣給消費者”而維生了。微軟公司現在其實是想把自己的軟體租給你。他們想讓你通過 Windows Live 或 Office Live 等等集中式的網路服務站點來使用他們的軟體。簡而言之,他們真正想要“賣”給你的是技術支持和服務。

  那好,現在再想想,成功的 Linux 公司使用的是哪種商業模式?是的,你答對了:Red Hat 和 Novell/SUSE 就是靠提供技術支持和服務而賺了大錢。

  而在微軟公司那食古不化的大腦裡面的最深處,他們還堅持著自己的商業模式就是銷售私有軟體。關於這一點,引用比爾·蓋茲在 2002 年西雅圖“政府領袖大會”上的原話,是這樣的:“GPL 軟體指的就是像 Linux 這一類的東西,你永遠無法在它周圍創造出任何商業模式。原因很簡單,因為它必須是免費的。”

  “什麼,永遠都不能?”“是的,永遠不能。”“你肯定,永遠都不能?”“好吧,幾乎永遠都不能!”這艘無敵戰艦的艦長一直在向世界這樣宣布著。現在,雖然 Red Hat 還無法擁有像微軟公司所具有的那樣的媲美中等國家的收入,但是,這家市值超過了 45 億美元 Linux 公司每天都在通過免費軟體賺取豐厚的利潤。


市值 45 億的 Red Hat 公司是靠“免費”賺錢的大師!

  為什麼需要轉換為開放源代碼模式?因為微軟的程序開發需要接受一切它能夠得到的幫助。是的,微軟公司擁有無數頂級的程序員,但是,想想這些開放源代碼程序員是怎樣以更快的速度創作著更好的軟體,這顯得不是非常諷刺嗎?

  這裡所闡釋的道理是。這個根本與編程哲學毫無關係,不要去想什麼“開發源代碼軟體”、“自由軟體”和“私有軟體”之間的意識形態的衝突。這裡是純粹的實用主義:開放源代碼的開發模式能夠創造出更好的大眾化程序,並且速度更快。

  你可以抗議說開放源代碼不是對什麼都適用的。這一點我同意。

  的確,很難想像許多應用面很窄的軟體程序,諸如在不動產或工廠生產線的控制程序能夠吸引到足夠的社區參與者,以便於通過開放源代碼的方式來進行發展。另一方面來講,我也的確很難想像開放源代碼程序員們有足夠的法律素養來編寫個人稅務方面的程序。但是,對於能夠吸引到程序員參與的主流軟體來講,開放源代碼模式的確是現有的最好的開發方法。

  3. 精簡中層管理機構

  基於 Windows Vista 那無休無止的延期,誰曾經說過“Vista 的管理層應該被炒魷魚,並立刻被踢出今天的微軟。因為他們要為自己的異想天開負上全部責任”?

  請選擇答案:A)Steven J. Vaughan-Nichols,本文的作者兼《Liunx 觀察》的編輯;B)Mary Jo Foley,《微軟觀察》的編輯;還是 C)一位微軟公司的程序員?

  正確答案是 C。

  假如你閱讀過諸如“迷你微軟(Mini Microsoft)”或“口袋風暴(Packet Storm)”之類的微軟公司內部的博客的話,你就會發現很多微軟程序員根本一點都不喜歡公司的中層管理機構。他們完全有充分的理由這樣感覺。

  微軟公司現在變得越發臃腫了。有無數的決議和思想在公司上下不斷地流竄循環,卻沒有一個能夠真正地解決問題。在大多數情況下,公司內部的首要工作目標是讓自己的上司看起來順眼,而不是儘力開發出高質量的產品;互相“踢皮球”成了公司中最流行的運動,沒有任何人會主動地站出來,勇敢地負起自己的責任。

  你也許是這個世界上最棒的程序員,但是如果你陷入了公司管理層的紛爭的話,如果你的工作從目標上來講就沒有什麼價值,如果你無法得到清晰而正確的指示,你編寫出來的東西將依然只是一堆垃圾。無數的微軟程序員都這樣被廢掉了。但是,我想這不是他們的錯。

  而在開放源代碼世界中,情況卻恰恰相反,直到世界末日的來臨,它都只會關心代碼的質量。你的工作會處於整個世界的注視之下,如果它不夠好,將沒有人會用他。但如果它很棒的話,全世界都會用它,而其它的開發者也會更加尊敬你。

  自始至終,開放源代碼世界將會只保留人類知識的精華。只有出類拔萃的,才會永久留存。


開源世界的生存法則:多樣化,適者生存!

  你感覺自己受到了開源社團領導者的排擠,或是和他意見不和?在開放源代碼世界中,你可以自由地離去,開拓你自己的疆土。假如你的選擇是正確的,其它的精英程序員將會追隨你而來。

  每當我聽見有人將開放源代碼的發展方式比做某種軟體世界的萬物平等的共產主義運動時,我就感到非常的好笑。事實與他們所想的恰好相反。開放源代碼世界是超級純粹的自由市場的資本主義,它是軟體世界的達爾文進化主義。在這個世界的法則中,絕對不會有平等和和諧,只有弱肉強食,適者生存!

  任何人都可以參與,任何人都可以編程,但是,假如你希望 Linus Torvalds 能夠採納你的代碼,並將其整合到Linux的系統內核中的話,它就必須要是世界一流的代碼,並且能夠和 Linux 的其它部分良好兼容。

  舉個著名的例子,Reiser4 文件系統。它是世界上最快的文件系統,同時它也具有良好的安全性能。但是,現在它依然沒有被整合進 Linux 的系統內核。為什麼?因為,雖然它現在已經逐漸地要被接納了,但是一些 Linux 的核心開發者們依然感覺 Reiser4 還需要進行進一步的完善,以便能夠更好地適應整個系統內核。

  那麼,開放源代碼模式就是完美無缺的嗎?不。它離“完美無缺”還有很長的距離。在任何努力中都摻雜著自私的成分。無論如何,這就是為什麼現在世界上會同時存在六七個主流的 BSD 操作系統的原因。

  但是,至少這些競爭都是公開的,都是擺在桌面之上的。在開放源代碼世界中,不存在“搶功勞”或踩著他人的頭向上爬的事情。自始至終,開放源代碼世界都將軟體質量是擺在第一位的,它對於軟體質量的重視程度要遠遠超乎於某個由“辦公室政治所統治的地獄”對軟體質量的重視程度。而微軟公司似乎正在逐漸地演變為這樣的一個地獄。

  4. 行事坦誠!

  .NET 究竟是什麼玩意兒?

  我的好朋友 Mary Jo Foley 最近這樣說到,.NET“已經變成了一個毫無意義的術語,以至於微軟自己也不能簡單地將其闡釋清楚。”

  讓我們再來看看微軟是怎樣支持開放標準的:事實是它根本就不支持。噢,微軟公司也許會辯解說它是支持的,但是看看事實上真正是什麼情況。比如說,在 7 月份的時候微軟宣布將會對開放文檔格式(ODF)進行某種程度的支持。我那時候就不相信它所說的話。你看後來發生了什麼事?我猜對了。微軟對於 ODF 支持的缺斤短兩讓我感到噁心。

  這種事情發生在微軟身上已經不是什麼新聞了。但是,你知道嗎?微軟其實是能夠改變這一切的。

  如果微軟想要獲得好的聲望,它所需要作的僅僅就是真正地使用正確的名稱和支持標準。

  想要製作一個新的編程框架?棒極了!但是要記住就將它簡單地命名為 .NET,而不要在.NET 前面再加上什麼稀奇古怪的前綴。想嘗試將軟體轉換為一個網路服務,也行,將它命名為 Windows Live 和 Office Live,但是不要將“Live”這個稱號弄得到處都是,不要以後每弄出一個新玩意兒,就冠上“Live”的稱號。

  用戶永遠都不希望感到困惑。


“蓋茨大帝”應該對開放標準真誠一點

  另一方面,對於標準來說,要老老實實地支持它們。我了解對於商業而言,一個標準在建立自己的市場領導地位上所付出的努力,要遠遠超乎於制定標準本身所需要的工作。因為,如果你自己的“標準”成為了“市場的標準”的話,你自然而然就會在商業競爭中領先於自己的競爭對手。這也就是為什麼我們現在還無法對 802.11n 無線網路標準達成一致的原因。

  但是,對於微軟公司而言,事實上卻不用為此類爭鬥而操心。微軟的文檔標準,比如 Open XML,它的研發,生產,儲存和推廣完全都是由微軟自己一手操辦的。

  對於那些非微軟標準來說,它們其實是早已存在了的。因此,這裡不存在著什麼要在市場上佔領先機的問題;現在的問題是在部分市場中,已經有一部分用戶在使用這些非微軟標準了,而你需要幫助自己的用戶能夠更好地和這些“非微軟用戶”一起工作。

  但是,在過去,微軟經常將這些標準玩弄於股掌之間。它常常裝作自己也是“標準化運動”的一分子,但是接著便在標準的基礎上增添一下新的功能和特性,以便讓微軟版本的標準看起來更棒一點……當然,這是在你全部使用微軟的軟體產品的情況之下。

  微軟想要通過這種方式將用戶牢牢地拴在自己的軟體平台上。但我認為事實上卻很難達到微軟所期望的效果。我想這種策略只會激怒其它軟體廠商,並且趕跑聰明的用戶。

  如果微軟的市場研究團隊能夠好好審視一下自己關於品牌名稱和標準支持的策略思維的話,我會感到非常的欣慰。我打賭,他們將會發現 Linux 所具有的率直坦誠的理念,清晰易用的命名規則,以及對開放標準的真正支持,將會是更好的一種發展策略。

  5. 拜託,現在已經是網路世界了!


現在已經是網路世界了

  你想知道所有的微軟安全問題的根源在哪兒嗎?因為在它的內心深處,或是在它的代碼深處,微軟依然還是將 Windows 電腦看作是獨立的設備。

  哦,不,它們不是獨立的!自從 Windows 工作組(Windows for Workgroups)誕生以來它們就不再是獨立的了。

  今天,整個世界都與你的電腦連接在了一起。這就意味著,Windows 的一些陋習,它那讓所有的數據和程序都在底層上共同工作的陋習,從 DDE(動態數據交換)到 ActiveX,不但能夠讓 Windows 程序得以在相互間通過網路進行交換操作,同時也使那些黑客們得以輕鬆自如地潛入你的電腦,並大肆破壞。

  是的,我知道 Vista 中新增 UAP(User Account Protection,用戶賬戶保護)、LUA(Least-Privilege User Accounts,最小許可權用戶賬號)、強制統一控制(mandatory integrity control),以及其它等等類似的閃亮的安全噱頭。但是,我也知道這些東西也都只是為了修補那些同樣的,古老的,基本的問題。

  並不只是我一個人這樣認為。賽門鐵克(Symantec)同樣也指出了這一問題。

  當你繼續深入下去,觸及到問題的本質的時候,你會發現任何人都無法修復一個從根本上就存在著漏洞的模型。這是絕對不可能的。


Linux 時刻準備著抗擊一切挑戰

  Vista 的開發者們真正應該做的是好好地向 Linux 學習。在 Linux 和 Unix 中,系統從編寫第一個代碼開始,就處於這樣一個指導理念之下,那就是“系統可能會被多個用戶使用,並且它很有可能為被接入到一個危機四伏的網路之中”。

  Linux 會被攻擊嗎?當然。任何系統都有可能會被攻擊。但是,這一點從根本上來講對於 Linux 要難一點。即便是某個黑客成功地侵入了Linux系統,如果他沒有得到系統的根用戶(root)的管理許可權的話,他也很難對系統造成重大的破壞。

  而對於 Windows 系統而言,一旦你侵入進去,就像是進入了一個自選超市一樣。你可以輕而易舉地將這台電腦變成一台垃圾郵件發送器,查看所有的密碼,以及做其它任何你想做的事情,當然也包括完全將這台電腦弄癱瘓。有人想遭受這樣磨難嗎?

  最後,某一天,不知何故,就會突然爆發一場巨大的 Windows 病毒或蠕蟲的攻擊,這場攻擊將會使以前所有的大規模病毒爆發相形之下顯得就像毛毛雨一樣溫柔。這就像是在過馬路時闖紅燈一樣。不錯,100 次中有 99 次你都會安然無恙。但是,當你第 100 次闖紅燈時,警察可能就會需要用街道清掃車來收集你的遺骸了。

  總結


微軟能夠在未來一直取勝嗎?

  那麼,最終微軟公司內會有人挺身而出來解決這些問題嗎?對此我深表懷疑。

  直到現在,微軟公司按照自己的方式一直生存地非常、非常、非常的好。人們總是傾向於遵從傳統的做事方式,直到某一天他們被迫認識到這些古老的方式的確再也不適用了才肯罷手。

  如果 Vista 會栽上一個大跟頭,或是每個用戶都決定不購買 Office2007,只是繼續使用 Office 的早期版本或遷移到 OpenOffice 平台上,微軟可能會開始做出一些改變。假如某天某個病毒給 windows 電腦世界帶來了地獄般的劫難,我可以打賭微軟一定會做出某些改變。但是,正如其它公司一樣,如果上述這些劫難沒有真正發生,微軟也就不會真正地敞開自己的心胸,做出改變。

  但是,從大歷史觀的角度看來,對於絕大多數公司而言,當這一天真正到來時往往已經為時已晚。我懷疑在這一點上微軟是否能夠有所不同。

  但是,在最低限度上,我依然希望微軟能夠改革自己的中層管理機構。那些不可思議的糟糕的延期,即便是由微軟對於成功的低標準看來也是這樣,在很大程度上都是由臃腫糟糕的中層管理機構所導致的。

  這就是我,一位身處微軟公司外部的憤世嫉俗的記者,所期望微軟應該去做的一件事。但這種期望,其實根源於微軟公司的內部。微軟的高層們可能不會在意我說了些什麼,但是他們的確應該好好地傾聽一下自己員工所發出的聲音。

(原文作者:Steven J. Vaughan-Nichols,文章來源:Linux-watch,點擊查看原文)

原文出處:IT 168



[火星人 ] 鍛造經典 微軟需要向 Linux 學習什麼已經有375次圍觀

http://coctec.com/docs/discuss/show-post-74703.html