.NET系列 之 开源和不开源的背后
前幾篇都著重在寫Java和.NET社區的一些不同之處,也對二者做了一些比較。眼下呢,先休息一下,談談開源和不開源(為了對仗工整,叫閉源吧)的一些事情。也許不算什么,也許算點什么。這篇文章主要不是寫技術的事情,而是談一些和項目有關的問題。
古人云,存在即合理。也就是說,一個事物能夠存在并堅持一段時間,乃至取得成功,必然是有其合理性存在的。不用找那么多理由來解釋它的合理性或者不合理性,畢竟一件事情總有兩個方面,總有人看的順眼有人看不順眼。很多年輕人都喜歡爭個面紅耳赤,非要辯個輸贏出來,但是卻不知道,實際上很多事情是沒有對錯之分的,只有你接受或者不接受。在項目開發過程中也是一樣的,用開源組件有其長處,也有其弊端。使用商業組件自然也有優勢和劣勢,都很正常。在一些開源項目中,自然會使用到很多同樣屬于開源社區的組件。畢竟法律是用來遵守的,而根據法律規定,很多開源軟件不得用于商業化領域,也所以tomcat之類的開源杰作才會如此盛行。我想,每個做J2EE項目的人機器里,或多或少都會有這個軟件吧?
但是在商業領域,往往不是如此。一方面受限于授權協議的制約,有些東西不能用。另一方面,也是出于對開源組件的穩定性考慮,不會使用一些開源組件。那么這時候最優化和最合理的選擇自然是商業組件,也就是收費版的東西。一般來講,收費版的組件無論從質量還是穩定性上來說,都要遠遠高于開源組件,同時由于其收費的原因,售后服務和響應速度更是開源社區無法比擬的。下面就來談一談在軟件公司中開發的一些情況。首先聲明一個問題,本文所討論的問題,是基于法律基礎之上的,對于不遵守版權協議和授權協議的行為,不在討論之列。
在一些大公司,尤其是外企當中,版權和法律這兩個詞已經根深蒂固的植入了其內心之中。比如我曾經經歷過的一件事情就很能說明問題。當時是需要對項目進行性能測試,那么就需要使用測試工具。一般情況下是使用LoadRunner。而LR本身的價格很貴,并且由于針對的范圍太廣,所以用起來難免有些不適。甲方最后選擇了IBM的RPT作為測試工具。RPT是基于Eclipse環境的一個Performance Test Tool,使用方法和Eclipse基本相同,比較方便。在測試過程中,遇到了一系列問題,諸如并發訪問強度不夠,對新版瀏覽器支持不足等等,都在IBM大中華區的技術支持人員的指導下一一解決。就算是最復雜的一個問題,也通過IBM美國總部的快速確認,被列入了hotfix清單中進行Emergency Fix,并第一時間將Update Package反饋給我們。順便說一句,因為這件事情,IBM大中華區的幾個技術人員還和我本人成了很好的朋友,不過都是美國人- -#.
如果使用一些免費工具,在前期的測試成本上會低很多,這一點是毋庸置疑的。但是如果遇到問題,那就只好百度加谷歌了。要是沒有人遇到過,那您就可以燒香禱告或者自己想盡一切辦法來解決,比如重裝系統,重啟電腦什么的,如果您有這耐心和想法的話。此外,文檔齊全也是商業化項目的顯著特征之一。最典型的例子就是MSDN,浩如煙海的文檔,權威而且貼近人心。雖然更新速度沒有英文版的快,但是也慢不了多少。
那么究竟是什么造成了閉源軟件的這些特征?說到底,還是一個錢字。開源社區多數是因為興趣而做事,純粹為的是高興。最初的時候XFire還是很好用的,個人感覺比起Axis來說要好很多。但是不知道因為什么原因,XFire停止更新了,這一點讓人非常難受。直到CXF不久前的現身,才彌補了這個空缺。而那段空白期間,我只有硬著頭皮從Axis2的不算很全的文檔里慢慢配慢慢扣,當然同時還要解決和其他jar之間的兼容性問題。之所以會這么輕易的停止更新,我個人意見來說,很大程度上是因為沒有經濟回報,通俗一點來說就是三分鐘熱度。過了最初感興趣的時間了,再因為一些什么原因中斷了開發或者維護的話,會不會拾起來繼續,就只能看作者的興趣了。畢竟人是一個生活在社會里的動物,不是一個活在真空里可以不吃不喝的神,人人都會遇到不開心的時候,也會遇到勞累甚至想放棄的事情,不能因為沒有更新就責怪作者,對吧。
而閉源軟件在這個問題上,要比開源軟件皮實很多。畢竟是有經濟因素在背后支撐著,所有的程序員都是有付出有回報的人,質量也是有控制體系的,這種產品的質量會好很多。也許你會說,開源社區的東西也有Bug List,也有人在維護。但是作為一個項目開發人員,我們要的是穩定的DBS輸出,而不是間斷性的,對吧?您老人家要是一直不改,我還真不能咬您。可是我遇到這個問題,如果影響了我開發,那就鬧心了。如果購買的是商業組件,我可以打電話回去,可以提交Bug給廠家,我也可以指望著有人來改。最少,我有個盼頭,甚至于有些時候,這種修復是屬于合同范圍內的事情,那我還有法律來約束雙方的行為,豈不是比用開源的要安心很多。
再一個,因為閉源軟件的用戶都是花錢的,也就難免有點大爺化,大多數情況下他們都不是專業的軟件開發人員,甚至點鼠標都不咋會。這個時候,軟件的易用性和穩定性就更加重要了。配置文件少一些,環境依賴小一些,都是一種優勢。而一個東西穩定一點好用一點,不管是對開發人員還是終端用戶,都是一件好事。而開源社區賴以生存的,就是難用和復雜的配置。因為不好用,所以需要人來指導。而指導了,就好用了,因為什么?還是因為你花錢了唄。沒有利益的驅使,誰會那么任勞任怨?
轉載于:https://www.cnblogs.com/xhr8334/archive/2010/12/14/1905810.html
總結
以上是生活随笔為你收集整理的.NET系列 之 开源和不开源的背后的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析高校网络管理员如何制作网络电视墙
- 下一篇: 五、Chain链的作用