陳皓:關于開源軟件和閉源軟件我個人Naive的看法

jopen 10年前發布 | 30K 次閱讀 開源軟件

        昨天,我發了個微博。http://weibo.com/1401880315/BfdhldiEa

對開源軟件來個可能會引發爭議的觀點:對于絕大多數的軟件產品來說,1)閉源的軟件產品的技術含量要比開源的要大得多。2)大多數的開源軟件都在抄閉源的商用軟件。

        我來回答我制造的話題。(知乎上的:http://www.zhihu.com/question/24616693/answer/28430044

        首先,我先表達一下開源軟件的偉大,并向開源的人們致于我最真誠的敬意。但,即使這樣,我們也要很客觀的承認大多數開源軟件是存在大量問題的。就 像我這個人主觀上并不喜歡微軟和 IBM,但是我必需要承認,沒有微軟和 IBM,計算機這個行業不會有今天這樣的爆炸。(插曲:我 94 年上大學選的專業是計算機科學,當時很多人都覺得計算機專業是一個 ZB 的專業,因為幾乎沒有哪個企業在用電腦,但我幸運的是 95 年的時候微軟出了 Win95,Sun 出了 Java,然后互聯網極度膨脹,才導致我選的專業最終變得很火)

        至于我說的這兩句話,我知道是有爭議的,尤其是我用了“抄”,在此請原諒我用詞不當,像從事開源的朋友道歉這個“抄”其實是“模仿”的意思

        另外,要是沒有開源,我們中國人的軟件公司能做出云平臺嗎?能做出手機嗎?能大數據嗎?真心感謝開源!

        簡單地說一下開源的歷史

        簡單的回顧一下歷史,而開源源自 Unix 最初的發展史,然后,就被商業化了,于是N多的 Unix 變種就出來了,那些 Unix 老牌黑客們一下就被成了像羅賓漢一樣的成了叢林草莽,以至于 Microsoft 用次等的技術占領了市場,而 RMS 也開始了他的 GNU 項目,但是 GNU 并沒有獲得那些 Unix 老牌黑客的青睞,因為他們覺得 RMS 就像當年馬克思滿世界鼓吹共產主義一樣鼓吹他人的 GNU,最終 Linus 出來把這些 Unix 老牌黑客召集了起來,讓 Unix 的開源精神重生。這段歷史起源于 Ken/Dennis,再次向他們致敬!詳細的歷史大家可以看看我 7 年前寫的:Unix 傳奇(CSDN 和 CoolShell 都可以搜到)

        我個人以為開源軟件自 Unix 以來,最殺手級的組合是 LAMP,今天,Apache 基金會,Linux 基金會……讓開源的力量越來越大,很多商業公司都參與開源,比如 IBM、Yahoo、SUN、Intel、Google……。

        但是,我們可以看出,商業公司支持開源有一個很主要的原因是為了阻擊競爭對手,理由很簡單——用眾包這種不花錢不花人的模式來牽制競爭對手實在是一個“低投入,大收益”的事。 比如 IBM 支持 Linux 和 Java,目的主要是阻擊微軟。Google 的 Android 和 Chrome 目的也是蘋果和微軟。而對于這些商公司的很多核心技術是不會開放的,包括 Google,連 Google Reader 都寧可自廢都不愿意捐給開源社區維護,更別說 Google 的那三篇論文的東西了,以及 Google 的搜索引擎的技術。

        關于我觀點中的邏輯

        我觀點中的邏輯其實很簡單:

  1. 如果有人掌握了一個很核心技術,這個技術足以改變世界,你覺得會有多少人會開源?基本不會有人的。
  2. 看看這個世界上的引領軟件潮流的技術基本上都是商業公司做出來的。因為技術研發要花時間,花精力,更重要的是要花錢。如果你花了2-3 年的時間,花費成百上千萬的財力,你會開源嗎?
  3. 大量開源軟件都是受不了這些商業公司對技術的壟斷以及非常高的價格。所以,基于這個動機,結果很自然就出現了“模仿”。

        關于各種軟件的對比

        很多人對我的這個觀點例了一些例子,但這些例子面太窄了,他們企圖以點代面。我在這里幫大家補充一些吧,這樣會更客觀一些(眼界不妨放大一些):

        注意:千萬不要用“用戶量”來定義“技術含量”,如果你覺得:“有技術含量”===“有絕對的用戶量”,那么,你就會得出“QQ 空間甚至 hao123 可能是這世上最有技術含量的軟件或網站”這樣荒謬的結論。

  1. VMWare 和 Xen/KVM
  2. Google 的三篇論文和 hadoop
  3. AWS 和 OpenStack
  4. Google Reader 和一干開源的 reader
  5. Websphere/Weblogic 和 Jboss, tomcat (注:互聯網的大多數應用都比較簡單)
  6. 輸入法,你是用 sogou 的還是 google 的,還是微軟的?
  7. iOS 和 Android,你覺得哪個技術和質量做得更高一些呢?
  8. Windows/MacOS 和 Linux (對此需要分開:桌面、服務器、嵌入式) (再注:蘋果公司開放了 Mac OS 的內核 Darwin 的源代碼,但沒有包括 GUI)
  9. 多媒體方面的軟件,比如:3D 動畫、音頻、圖像……Photoshop, Maya, 3DMax... 開源的:Blender,GIMP,Inkscape……
  10. 閉源的游戲和開源的游戲,你更喜歡玩哪個的呢?
  11. 各種辦公用的 OA 軟件,MS Office,還有 SAS 和 PeopleSoft 的軟件。開源的……
  12. 用于出版行業排版的軟件,Adobe 的 inDesign, PageMaker, MS 的 publisher,開源的 Tex
  13. 安全方面的軟件,大家見得最多的就是殺毒軟件了。(花絮:OpenSSL 的代碼大家看過嗎?的確寫得很 ugly)
  14. 軟件測試相關的:PurifyPlus, VTune, CodeAnalyst, JProfiler……開源的:valgrind, gprof..
  15. 企業內部的 IT 管理軟件,大家可以看一下三個公司:IBM,BMC,CA,大家可以看看他們做了些什么樣的 ITIL 的軟件(關于 ITIL 請大家自行 Google 吧)。
  16. 行業軟件:集成電路設計的軟件、石油勘探的軟件、航空軟件、汽車里的嵌入式的軟件、醫療設備用的軟件、金融行業的軟件、建筑設計方面的(AutoCAD)
  17. 聊天軟件:QQ,Skype,YY,FaceTime,YIM
  18. 編程 IDE:關于 IDE 的比較,請移步參看 Wikipedia:Comparison of integrated development environments (注:IntelliJ IDEA 是半開源的)
  19. 網頁制作:Dreamwaver, Fireworks, Flash...…………

        我還可以一直把例子舉下去,因為還有很多地方的軟件很少人見過的軟件,比如,NASA 的、CERN 的、DreamWorks,等等。

        希望你的視野比我更寬一點,別只看自己編程用的那些東西,多看看這個世界高精尖的地方。

        其它

        我有這樣的觀點主要是因為我的成長史主要是在商業公司,我能看得到這些商業公司中有很多比開源軟件很 NB 的東西。我為什么喜歡進這些頂尖的商業公司,因為只有進到這些公司我才能看有權限看到這些令人驚嘆的軟件是怎么做出來的。

        這也是我沒有花精力貢獻開源的原因。這和我不寫書的原因是一樣的。我不寫書的原因是因為我看過 Effective C++,TCP/IP 詳解,Unix 編程藝術,等等這類經典的書,我覺得我根本就沒有資格寫書,如果我有他們的兩三成的功力,我都會考慮出書,但是我真的不行。(另一方面再看看書店里那些 95% 以上的垃圾的書,真是令人惡心)

        同理,我沒有做開源的原因也是一樣,因為我看過很多商業公司里的那些令人驚嘆的東西,我覺得我還沒有資格去干個開源軟件。我更愿意把我的時間和精力花在向這些商業公司學習之上。(看看開源社區里的那些開源項目,90% 的開源項目其實跟書店里的爛書沒什么差別)

        人生苦短,而我覺得我自己沒有那個聰明的 DNA,而這世界上的垃圾已經有很多了,我就不必再為垃圾添磚加瓦了。我還是把精力放在多看和多學上吧。因為我連一個C++ STL 或 JDK 中的一個容器類都沒有信心能寫好。

        當然,我并不是說干開源的人不行。只不過,我沒有信心貢獻罷了。說得好聽點,我標準比較高,說得難聽點,我能力差。你對我的這兩種理解都對。我的技術的確水,我在我的博客上的各人簡介也說了我不是牛人。

        謝謝大家。

來自: weibo.com
                    <span id="shareA4" class="fl">                            
                        </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!