2011年4月21日 星期四

Open Souce 作為一種態度

作者: TonyQ (沉默是金。) 看板: Soft_Job
標題: [閒聊] Open Souce 作為一種態度
時間: Sun Apr 10 16:56:24 2011


因為在幾萬公尺高空上寫 example 實在是太無聊了,
所以我決定來寫一下上飛機前計畫要寫的這篇文章。

-----------------------------------


忘記從什麼時候開始,我想是Linux開始出現的時候吧,
正義且免費的 Linux 開源社群挑戰邪惡的微軟帝國;

Open source ,價格低廉甚至是免費,由眾人參與貢獻,
所有人都能夠參與code review的一個社群,簡直是工程師的理想國度。


Open source 這件事對不同的面向有不同的意義,
這篇主要是針對工程師加入 open source project 參與開發的看法。



會說是工程師的理想國度,也是因為競爭的關係,

本來除了自己 team 的人有可能以外,
誰在乎(也誰能在乎)你的code 品質如何?


對工程師而言,扣掉金錢以外還有一個部份是自我滿足,
被認同、被使用、被讚賞,是有部份工程師所在乎的。


特別是當你開始接觸到往架構師的旅程中,開始需要獨立設計大隻的東西之後,
會發現能跟你討論設計的人突然變得少之又少。

你或許開始渴望對等甚至是對方遠高於你的討論、溝通與挑戰。



人們於是把希望寄託於 Open Source 社群,
這也就難怪會有人會覺得新手練功到 Open Source 社群最快。

----------------------

但我必須說,其中有部份的想法是值得挑戰的。



幾件我覺得作open source時需要考慮的,


[1;32m首先第一件事情,什麼東西需要 Open Source?

目前的 open source project 大多還是偏工具導向,通常是一些函式庫或者應用程式。


基本上從你自己新手時期寫的 Helloworld ,
到後面認真的作些專案的code都可以 open source,

找個 google code / github 把這些 code 都放上去都是無傷大雅,
但是有些是有用的 source ,有些是沒用的 source。


如果你是抱著練功或交流的心態,你必須要作些對其他人來講有用的東西才算是個開始,
亂槍打鳥也不是不行,不過效果不是好就是,自己也要稍微作點 promote 。



[1;32m第二件事情,沒有人會認真的去把你 open 的 source code 讀完,
[1;32m            除非他需要的功能你 code 有bug 或者你沒作。


舉個例子,Open office ,有人會閒著沒事去讀他嗎?
或者下個例子,Sun 已經 release JDK 的原始碼,有多少人去看過他的架構跟程式碼?

通常我們會去看程式碼只有一個理由,我想自己作一個、
這東西有bug需要被修理或是有需要增加 feature 時。

很少是純粹觀摩的,因為天曉得他寫的好不好。XD


換句話說,有需求沒被滿足的時候,才會有人看你的 code 。重點仍在需求。

有些人說 open source 可以有較多人測試,

我自己就碰過一個例子,曾經有個根本沒作只是寫好看的 api ,
Release 經過了三四個月幾個版本後,才終於有人 report 這個 bug 。

主要仍是這個 API 太冷門了沒人去用它,所以才這麼晚被回報,這種情況不算罕見。



[1;32m第三件事情,Open source project 並不代表 All you can do 。

一般來講我們看到一個專案有 bug ,自己又有需求,提bug
或是 feature request 是很正常的;

但這種 case 並不代表你一定會被 open source project 接受,
不過通常只要不是太誇張,通常還是會很樂意接受。

事實上有些時候有些 feature request 是跨專案的問題,
這種時候就很難界定是誰該處理。


當然身為一個工程師你可以自己修bug或加功能,
寄回去但人家可能也會評估你的 bug fix 的有效度來決定是否 accept 。

有些人會在 License 允許的前提下開自己的分之,但開分支又有開分支的麻煩,
像是原本的trunk升級,你要跟著升,還是就此脫勾?你要一直跟著 maintain 嗎?:)

而且有時候你的 code 是 ditry patch 的話,也有可能被打回票。 XD


這其實也蠻考驗專案主持人在維護專案架構的功力。:P


[1;32m第四件事情:收入、熱情、維護。

沒有收入,沒有時間,沒有新的需求新的刺激的話,
一個專案在活動一段時間之後,難免會進入一段可能長可能短的休眠期。

不過這休眠期很難說,有可能因為某些契機就又活過來,
open source 的東西基本上生命力都蠻強悍的。

以我的例子,我去年九月開始用一隻 Eclipse plug-in 叫 Run-Jetty-Run ,
他還有蠻多小問題的,但是原開發者決定讓它簡單就好,
要處理那些所有問題,就叫他們用其他的替代方案。

初板是 2007年,第二大改板是2009 年有新血加入,
而我2011二月時作一些 enhancement 並fork 到自己的 svn 作內部使用,

之後等比較成熟之後就寫信給原作者,
提供原碼跟 demo 詢問是否能接受或願意讓我自己公開分支,

他們就寫信告訴我他們現在因為工作環境關係,
已經不常接觸 Eclipse 開發,所以希望我也一同加入發布一個新版。

當然我因為那本來就是我工作上會使用到的工具,
加上我那時在國外出差比較閒,所以我也是很樂意的就跳進去幫忙開發。


我跳進去之後數據上清了十幾支 Issue ,於是這就很有意思,
第一板2007,第二改版2009,第三次我大改版是2011。

而現在我需要的功能跟我能認同的需求也暫時告一段落,
可能之後有空我會繼續弄,也可能一樣忙起來就擱在一旁,很難說。

http://code.google.com/p/run-jetty-run/



另一個專案也是2009年就停了,不過我前陣子寫信給作者跟提供了 code patch ,
他們決定要讓專案復活再解一些問題,目前還在觀望中就是了。

(有趣的是他們還特地問我是哪裡人 他們兩個都是波蘭人 (笑))

http://code.google.com/p/eclipserunnerplugin/


-----------------------------------

說了這麼多,我想表達的是 Open Source Project 雖然是人人有門票,
但回過頭來還是同一件事,你必須找到你自己想做跟你該做的需求,

並試著說服別人接受你的提案,不管這個別人是使用者或者是 project team member.


Open Source 在開發上主要還是種態度,而不是種方法或者是過程。


沒有什麼人是可以為了 open source 而 open source,
我們大多都是為了解決需求且分享需求而 open source。

別掉入名詞陷阱,畢竟這世界上的名詞陷阱已經夠多了。


Open Source 在使用上則是個工具,

好的工程師可以從這些專案裡面獲得勳章得到技術上的肯定,有好的credit。
好的公司可以從維護/授權或者客製化的需求上獲利,
        也可以透過 open source 強化自己專案。
好的user可以從善用工具上得到利益。

壞的工程師困在專案外不得其門而入,即使自己開了專案也是沒人要用的東西。
壞的user 會發現 open source 並不是想像中的免費,難以找人維護跟難以完全
        滿足客製的需求,都可能要你付出更多的成本。



It's all up to you.

--
這是在飛機上順手寫寫的東西,歡迎論戰。XD

--
    I am a person, and I am always thinking .
    Thinking in love , Thinking in life ,
    Thinking in why ,  Thinking in worth.
    I can't believe any of what ,
    I am just thinking then thinking ,
    but worst of all , most of mine is thinking not actioning...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.229.158.96
※ 編輯: TonyQ           來自: 210.229.158.96       (04/10 17:01)
※ 編輯: TonyQ           來自: 210.229.158.96       (04/10 17:03)
推 ericinttu:看到第一行, 全身不自覺地顫抖起來 XD                   04/10 17:05
→ roron:現在最邪惡的不是微軟. 是Google, Facebook這些比較邪惡      04/10 17:17
→ roron:一堆人每天都在用Gmail, Youtube, Google Search, Facebook   04/10 17:18
→ roron:不過這些系統的關鍵部分都沒有open source                   04/10 17:18
→ TonyQ:我說邪惡微軟那只是說笑的啦 XD                             04/10 17:20
推 Ting1024:T大這篇文章真棒...讓門外的人可以稍微一窺究竟 :D        04/10 17:32
推 lineageorc:感謝T大分享阿 我想T大是說當初的微軟吧 哈             04/10 18:05
→ iincho:這個寫的還不錯啊,實際上要搞這些的門檻就是這樣...        04/10 18:24
→ iincho:不過我倒是覺得最後的公司/工程師好與壞的論述上太直接了    04/10 18:25
→ iincho:我的話會說適合/不適合,因為這玩意主要還是需求問題..      04/10 18:25
→ iincho:而談到Open Source不談RMS也是不大應該啦...                04/10 18:29

沒有留言:

張貼留言

您好.本資料庫並非第一手資料.如果你有對文章作者的詢問,意見與需求,請自行找尋文章作者並提供意見,謝謝.