2007-09-08

站在社群肩膀上,建立開放新世界


http://www.ithome.com.tw/itadm/article.php?c=39973
站在社群肩膀上,建立開放新世界

站在社群肩膀上,建立開放新世界
文/ 羅健豪 (記者) 2006-10-20

取自於社群、用之於社群,宋政隆認為程式開發不只是單純的買賣關係,也是服務的一種,他不僅見證了開放源碼的理想,個人的實力也隨著無私分享而提升。



在開放源碼的環境中,有許多大大們都是只聞ID,而不知其本名為何,就拿宋政隆這個名字來說吧,這對許多人來說應該是相當陌生的,但是一講到 clsung、alansung或爽大,在FreeBSD社群中可就是大名鼎鼎,如雷貫耳了。爽大從大學時代開始學習多種程式語言,並跟隨著臺灣網際網路 發展而一同成長。在宋政隆斯文有禮的外表下,有著一顆熾熱的心,不但努力學習充實所學,更將編寫程式時所得的經驗與成果,無私的奉獻出來,為開放源碼社群 貢獻一份心力。

對於在網路上認識宋政隆的人來說,第一次一定會讚嘆於他豐富的技術知識,不論是Perl、C語言或是PHP網頁程式,只要發問,他都會竭盡所能的回答並協助處理問題。

學程設不嫌晚,大學開始也可以
或許有人會以為,宋政隆擁有如此厲害的程式設計功力,一定是從小就開始接觸電腦,並學習如何編寫程式吧。事實上,他雖然國小時學習過Basic語 言,對於程式設計有初步的了解與能力,但是並沒有持續不斷的學習,反而是就讀交通大學資訊工程學系之後,才正式踏入程式設計的領域。在四年之中,他從C語 言開始學習,後來學會了Perl與PHP,並不斷嘗試開發編寫各種程式,才造就了他現今強大的程設功力。

在接觸多種程式語言之後,宋政隆覺得還是C語言最好用,因為用C語言寫程式,寫作速度快,效能也不差;有時候他也會用Perl語言編寫一些較為簡 單,且需要互動性的程式;如果是需要編寫網頁時,他就會選擇使用PHP搭配MySQL資料庫。宋政隆偏好在FreeBSD作業系統上撰寫測試,這是因為他 在大學時期用得最多的平臺就是FreeBSD。

為什麼採用FreeBSD?宋政隆在大一時本來是玩Linux(Slackware),不過交大資工的人都是使用FreeBSD,他也在環境的影 響之下,採用FreeBSD作為練習環境。那時候書籍資料相當少,除了他的學長李健達(Jdli)撰寫的「FreeBSD入門與應用」(俗稱黑皮書)之 外,幾乎沒有中文參考書籍,每個想進一步學習FreeBSD、PHP與Perl的人,都得在網路上尋找相關資料,甚至是發問請其他先進協助,就在這種集體 學習與討論的氛圍中,也讓他樂於分享自己所學所得給其他人,到後來更加入了FreeBSD社群,為了軟體移植盡一份心力。

投身開放源碼社群,付出一己心力
宋政隆在求學過程受到許多先進的指導,而這些先進後來也都成為臺灣開放源碼社群的重要人物,在他們的引領之下,宋政隆自然也投身到社群之中。

現在他雖然為了博士班努力不懈,但是依然活躍於社群之中,充分利用閒暇時間不斷的為社群付出心力。在先進的推薦下,他成為了FreeBSD ports的committer,可以直接存取最新的更新檔案,檢視程式碼的完整性,並給予評論。與其他使用者相比,他享有更多的權利,也需要負擔更多的 義務。每天他都會抽空看相關社群的mailing list,並且檢核相關軟體的程式碼,雖然辛苦,但是宋政隆表示為了學習更多關於FreeBSD的知識,因此在另一位committer李彥明 (leeym)推薦之下,成為了committer。

自由派編寫風格仍無傷嚴謹度
雖然宋政隆一路走來都是受正統資訊科班教育,不過他在程式寫作的時候也不盡然會完全依照標準程序,他認為「程式如果只是寫給自己用的就不需要太嚴 謹,當作遊戲來寫一樣很快樂」。雖然他如此表示,但是在檢視他所編寫的一些程式碼之後,雖然他是自由派的寫作風格,但是行與行之間自有其法度可尋,並不是 純然想到哪寫到哪的。由此可知,他雖然謙遜的說他沒特別做事前規畫,但是腦海裡面已經有一套嚴謹的分析流程,並且絕不會輕易改變。

在訪問過程中,宋政隆也提到他一位同事的編寫風格,該同事會在事前做出相當多樣的流程與模組分析,不等到通盤分析完成,他是不會開始編寫的。宋政 隆認為這樣做當然嚴謹且正規化,但是對於一些小程式的開發也要這樣做就太痛苦了,有時候一個小系統同時包好幾個功能模組也沒有關係,並不一定要把所有功能 都模組化。但如果是執行大型專案的話,他也會做出相當仔細的分析,避免因為小疏忽讓除錯更麻煩。

尊重授權,取財有道
寫了這麼多年程式下來,宋政隆認為程式開發不只是單純的買賣關係,也是服務的一種。開放源碼之所以免費讓人使用程式,並不一定純粹為了免費,有的 設計者是因為希望能夠讓更多人共同檢查他的程式是否有問題,而且程式本身雖然可以不收費,但是使用這些程式提供其他服務就可以收費,而至於如何收費及收費 的項目,就依照當初所採用的開放源碼授權而決定。

以網站為例,當他開發完相關的網站程式之後,工作並不是到此就完全結束,在約定的維護期間之內,原有的功能更新與修正都是必要的工作,定期檢視程 式碼並修補漏洞,更是維持網站正常運作的要件。由這點來看,不管是套裝軟體或是專案製作,軟體開發都只是一部份的工作,後續的維護更新才是更重要的,就像 硬體有售後服務的保固契約,軟體也應該要有一定時間的維護工作,這樣才能確保功能不失常。

這樣聽起來,宋政隆應該是擁護軟體有價的一派。但事實上,他從大學開始就不斷地為開放源碼社群貢獻心力,軟體固然可以有價,但是應該訂定一個合理 價格;而在開放源碼的世界中,所有採用開放源碼的個人或公司,收取一定的服務費用也是應該的,但如果這些個人或公司就把開放源碼當作自己的產品包裝起來, 以產品的方式銷售,卻隻字未提是由那些開放源碼專案衍生而來,這是宋政隆難以接受,也相當排斥的作法。不過開放源碼的授權相當多種,就連他也沒有全盤接 受,他也認為不論是程式開發者或是使用者,在使用開放源碼的授權時要特別注意,以免無意間違反了規範而不自知。

善用開放源碼,提升實力
宋政隆認為使用開放源碼對於程式開發者而言,有一定的好處與壞處,好處當然是可以節省大量的開發時間與金錢,但是用多了現成且免費的程式碼,則有可能會讓開發者懶散,反而沒打算繼續開發。

為什麼這樣說?在開放源碼的世界中,無論是開發應用程式或是網頁服務,不必每一行程式碼都親力親為,從零開始。有許多先進在專案中或是因應他人請 求,都不斷地開發並釋出各式各樣的功能模組,供其他後生晚輩學習或直接套用。對宋政隆來說,當他需要開發程式時,會先去查詢目前是否有別人已經開發完成的 程式模組,如果網路上已經有現成模組,他就會依據自己的需求加以修改,並納入自己的程式之中。

話雖如此,有的程式設計師喜歡一個人獨立編寫所有程式碼,或許是認為每個人的邏輯與思考模式不同,別人的程式碼很難看的懂。不過,宋政隆倒是認為 多看別人的程式碼,是種讓自己可以吸收學習別人經驗的好方式,套用別人已經寫好的程式套件,可以節省自己的時間與精力,將自己的能力與時間用在更值得的地 方。文☉羅健豪

簡介FreeBSD committer

FreeBSD是一套免費的作業系統,與Linux有著良性競爭的關係,不同的地方是FreeBSD的kernel(核心程式)由單一組團體負責維護,而 Linux有很多種不同的kernel團體負責,在FreeBSD裡面負責檢核各種程式碼的人就被稱為committer。

FreeBSD committer可分為三類:原始程式碼(source code)、文件(documentation)及第三方軟體(ports),臺灣的committer大多都是屬於ports committer,而宋政隆就是屬於ports的committer。committer有權利依據固定的步驟檢核別人提出的程式碼,但是也要對自己檢 核過的程式碼負責。截至目前為止,宋政隆在全球ports committer的排名是第18名,可見他在開放源碼中的活躍程度。



IT人物-宋政隆
臺灣大學電機系博士班
●學經歷:
國立交通大學資工系畢業
國立清華大學資工系碩士班#畢業


--
萬歲!您的郵件已被捨棄。一封垃圾郵件也沒有!


--
萬歲!您的郵件已被捨棄。一封垃圾郵件也沒有!

沒有留言: