開源是使用者寫給使用者的軟體

2021-09-05 06:28:59 字數 3617 閱讀 7526

開源是使用者寫給使用者的軟體

<?xml:namespace prefix = o />

jack zhai

開源最初被定義為「***寫給***的軟體」,因為早期的計算機環境資源很奇缺,軟體開發的基礎成本很高,能參加軟體開發的都是大公司的,並且是多人團隊共同完成的事情,管理也很複雜,軟體當然是收費的,源**更是「智財權」而受到嚴格保護,想擁有自己可以隨意改寫的軟體很不容易,想要定製自己需求的軟體,更是難以想象的高成本投入。最早希望自己能隨意刪改軟體、探求軟體奧秘的就是***了,所以那時的***被人定義為是有些酷愛喜歡程式設計的人,不願意服從領導意願,喜歡自己創新的人。為了能有「自己的」軟體,開源成了大家彼此共享的最佳選擇。

開源社群是以公約的形式來組織大家,彼此合作,有人把它定義為「自由軟體」: 1.

源**必須與軟體一起發布,或者能夠以不超過發布成本的方式獲得 2.

任何人都可以自由地重新發布軟體,無須向作者支付版權費或者授權費,但必須在軟體與**的前面宣告源**的作者與社群 3.

任何人都可以修改軟體或者從中衍生出其他軟體,然後按照相同的條款發布經過修改的軟體

可見開源方式是以一種「社會大同」的形態出現,與版權保護有天生的對抗意識。後來隨著各種軟體開源社群興起,有人新增了「允許他人從開源軟體中衍生出商業軟體」的條款,這樣就允許了有人用開源軟體

(自己增加的**功能

)去獲取商業利益。相反,也有人增加了「病毒條款」,限制商業軟體從開源中牟利,就是任何從開源軟體衍生的軟體,必須把新增加的**也全部開源給社群,否則視為違反開源「契約」,甚至有這樣的官司案例

(社群贏了)…

更多的人認為:開源社群只不過是程式設計愛好者的俱樂部,大家交流程式設計技巧,編些小工具軟體還可以,大型的軟體必須有嚴格的團隊組織、統一的架構設計…但

linux

、mysql

、apache

等大型軟體的成功開發,人們開始重新審視開源社群的能力:在網際網路流行的今天,開源可以成為新型、低成本的軟體開發模式,並且足可以與私人軟體公司的大佬們抗衡,這無疑是中小企業、個人程式設計等軟體程式設計的弱勢群體們的福音。

究竟是什麼原因,讓開源社群,這個鬆散的、彼此不認識的、甚至只知道網名的「虛擬」團隊,就可以合作開發出優秀的、大型的、複雜的軟體呢?真的是「我為人人,人人為我」網際網路思想的體現嗎?

1、kiss

設計:「

keep it ****** and stupid

」的縮寫,即「務求簡約」。

這是丹尼斯.里奇

(dennis ritchie)和肯.

湯普森(ken thompson)

在開源開發

unix

時使用的開發原則。這種思路是把複雜問題簡單化、層次化,使得複雜系統可以簡單管理。在乙個開源社群內,核心的組織人員建立乙個開放的軟體架構,提供並管理軟體運轉的核心部件,開發者們就可以象在新選的乙個城市位址上,在總體規劃的架構下,任意發揮自己的想象,建設各式各樣的建築、街區、廣場、公園…

2、沒有門崗的「戲院」:開源社群的公約是一種約定,而不是法律,雖然也有開源社群為智財權與私人公司打官司

(並且還贏了,當然那是在美國

),但開源的方式就是自由進出,進入社群的任何人都可以「免費」獲得軟體與全部原始碼,即使你不做出任何「貢獻」,也沒有人說你不對。好象我們可以去星巴克、麥當老坐著聊天,而不吃東西,他們也不會來「趕」你走,而去中國的飯店與茶館,好象都沒有這種待遇。

開源社群的這種方式讓人「好進好出」,沒有會擔心自己「成果」會被人搶劫,這裡的成果都是大家的,用自己的努力換來更多人的加入。正是有了這種「開放」體制,「社員們」熱情高漲,盡情發揮自己的想象,不僅軟體的質量很高,而且功能豐富而實用。開源社群就是乙個沒有門崗的戲院,任何人都可以展示自己的才能,並且你不擔心沒有觀眾。

對於那些剛進入軟體行業的人來說,開源無疑是乙個最好的學習、鍛鍊基地,你不用擔心你編碼的「不職業」,因為有很多專業的人會很快修復它、重寫它,這種「優化」的對比教學,對學習者來說是夢寐以求的。這種培訓不僅沒有收你的「學費」,而且還讓你可以獲得現成的軟體與**,作為年輕人「自我創業」的資本。

3、使用者為自己開發軟體:開源與私有軟體公司的最大區別是公司開發軟體是為了別人用,開發就意味這投入,回報就需要收費,「天下沒有免費的午餐」。而開源社群開發的軟體則不同,首先是開發者自己就需要,自己就是使用者,開發

linux

的人們是需要適應自己的硬體環境,而得不到私有軟體公司的支援,或支援得不好,所以才自己做作業系統、驅動程式;開發

apache

的人們是因為網際網路發展迅速,很多人希望建立自己的**,而昂貴的

webserver

商用軟體是個人負擔不起的,大家合夥開發自己的免費

webserver

,各種漂亮的、富有創意的**雨後春筍般地出現了;

mysql

更不用說了,資料庫是大家常用的,但

oracle

的**,你問問**就不敢接著談了,人家壓根就沒有想過給你這樣的窮人用。

既然自己是使用者,投入本身就已經體現價值,再開源給其他人用,不過是增加乙份價值,多乙個人幫你驗證軟體的可用性,需要收費嗎?不是還有很多人花錢請人測試自己的軟體嗎?這就是開源軟體免費的真正原因。

也正是因為是自己使用,很多功能不求表面花哨,而是注重實用,因為參加程式設計的人來自世界各地、各行各業,需求的功能五花八門,設計思路奇特而精巧,每個「使用者」都仔細測試,「鞋穿在腳上,只有自己知道是否舒服」,不好用的功能或軟體,在開源社群中自然就被淘汰,因為沒有人去選擇就是意味著大家不喜歡…

私人軟體公司在軟體發布前,都必需進行大規模的

測試,巨大人力投入為了渡過軟體的「穩定期」;而在開源軟體中,這個過程輕鬆地走過。

當開源軟體到了一定的規模,有人看到商機,利用維護安裝服務、培訓使用者等方式建立商業公司,讓開源軟體成為賺錢的產品,這是開源社群集體創造的價值,因此,如果說開源軟體有智財權的話,應該歸開源社群集體所有,其價值應該回報給開源社群,讓更多的人從開源中獲得益處。

開源社群的成功,讓很多商業公司看到了利益,所以,目前出現了很多公司形式開源,為了區別他們的不同,我們把開源進行了分類:

ø 公司開源:是商業公司以開源方式推出軟體產品。主要的目的有兩個,一是賺取人氣,先開源免費給大家用,等大家覺得好時,再轉成收費的

(有些軟體利用盜版推廣方法的嫌疑

);二是利用開源讓大家試用,降低自己的測試成本,同時利用社會上的免費開發力量與創意,打「搽邊球」,降低自己的開發成本;公司開源一般是部分開源,保留核心模組,為了將來的收費準備。

ø 個人開源:自己是使用者,工作或生活中就需要這個軟體,希望能為自己定製而又低廉成本,利用開源社群的力量,自己得到了軟體,同時與同樣需求的人進行分享。個人開源不以贏利為目的,免費到底。

個人開源是最初開源者倡導者想法的延續,開源社群的生命力在於人們從開源社群中獲得自己想要的軟體,成本低廉,功能定製,而不是把開源社群變成賺錢的商業模式。軟體的版權歸開源社群,或者是無償給社會,就象我們中國古人的四大發明,首先是我們自己用,更願意介紹給其他人用,因此推動了人類文明的進步。

網際網路的普及,軟體的需求呈指數型增長,更讓開源社群成為全球程式設計愛好者的樂園,我個人認為:開源社群已經走過「***寫給***軟體」的年代,進入到「使用者寫給使用者軟體」的時代。開源的軟體不再只是***工具,更多的應用軟體、業務處理軟體、大眾工具軟體從開源中走出,開源社群已經成為新型軟體開發模式,乙個與傳統的軟體版權與專利「說不」的新軟體時代的標誌。

開源是使用者寫給使用者的軟體

開源是使用者寫給使用者的軟體 jack zhai 開源最初被定義為 寫給 的軟體 因為早期的計算機環境資源很奇缺,軟體開發的基礎成本很高,能參加軟體開發的都是大公司的,並且是多人團隊共同完成的事情,管理也很複雜,軟體當然是收費的,源 更是 智財權 而受到嚴格保護,想擁有自己可以隨意改寫的軟體很不容易...

使用者管理開源 開源內容管理的使用者體驗

使用者管理開源 幾周前,我從github收到了一封電子郵件通知,提醒我有關基於使用者node.js的開源內容管理系統pencilblue中使用者提交的新問題。該通知的標題為 所見即所得 在ubuntu上執行的伺服器在貼上大量文字時會生成 sic 我對提交者幾乎一無所知,提交者的帳戶已經存在該 四年了...

我不是使用者,我是使用者。

忘記了在哪篇文章看到了這樣一句話 不要把自己當使用者。使得我記憶深刻。在我看來,每次我要去分析乙個產品的時候,我需要自我提醒的有兩個點 1.使用者是誰。2.未來發展。時刻提醒自己是為了讓自己清楚 我不是使用者。但是清楚這一點的同時,我又需要讓自己是使用者!看是矛盾的話,其實又在情理之中!這句話貌似是...