取自於社區、用之於社區,宋政隆認為程序開發不只是單純的買賣關系,也是服務的一種,他不僅見證了開放源碼的理想,個人的實力也隨著無私分享而提升。
在開放源碼的環境中,有許多大大們都是只聞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。
自由派編寫風格仍無傷嚴謹度
雖然宋政隆一路 走來都是受正統信息科班教育,不過他在程序寫作的時候也不盡然會完全依照標准程序,他認為「程序如果只是寫給自己用的就不需要太嚴 謹,當作游戲來寫一樣很快樂」。雖然他如此表示,但是在檢視他所編寫的一些程序代碼之後,雖然他是自由派的寫作風格,但是行與行之間自有其法度可尋,並不 是純然想到哪寫到哪的。由此可知,他雖然謙遜的說他沒特別做事前規畫,但是腦海裡面已經有一套嚴謹的分析流程,並且絕不會輕易改變。
在訪問過程中,宋政隆也提到他一位同事的編寫風格,該同事會在事前做出相當多樣的流程與模塊分析,不等到通盤分析完成,他是不會開始編寫的。宋政 隆認為這樣做當然嚴謹且正規化,但是對於一些小程序的開發也要這樣做就太痛苦了,有時候一個小系統同時包好幾個功能模塊也沒有關系,並不一定要把所有功能 都模塊化。但如果是執行大型項目的話,他也會做出相當仔細的分析,避免因為小疏忽讓除錯更麻煩。
尊重授權,取財有道
寫了這麼多年程序下來,宋政隆認為程序開發不只是單純的買賣關系,也是服務的一種。開放源碼之所以免費讓人使用程序,並不一定純粹為了免費,有的 設計者是因為希望能夠讓更多人共同檢查他的程序是否有問題,而且程序本身雖然可以不收費,但是使用這些程序提供其它服務就可以收費,而至於如何收費及收費 的項目,就依照當初所采用的開放源碼授權而決定。
以網站為例,當他開發完相關的網站程序之後,工作並不是到此就完全結束,在約定的維 護期間之內,原有的功能更新與修正都是必要的工作,定期檢視程 式碼並修補漏洞,更是維持網站正常運作的要件。由這點來看,不管是軟件包或是項目制作,軟件開發都只是一部份的工作,後續的維護更新才是更重要的,就像硬 件有售後服務的保固契約,軟件也應該要有一定時間的維護工作,這樣才能確保功能不失常。
這樣聽起來,宋政隆應該是擁護軟件有價的一 派。但事實上,他從大學開始就不斷地為開放源碼社區貢獻心力,軟件固然可以有價,但是應該訂定一個合理 價格;而在開放源碼的世界中,所有采用開放源碼的個人或公司,收取一定的服務費用也是應該的,但如果這些個人或公司就把開放源碼當作自己的產品包裝起來, 以產品的方式銷售,卻只字未提是由那些開放源碼項目衍生而來,這是宋政隆難以接受,也相當排斥的作法。不過開放源碼的授權相當多種,就連他也沒有全盤接 受,他也認為不論是程序開發者或是使用者,在使用開放源碼的授權時要特別注意,以免無意間違反了規范而不自知。
善用開放源碼,提升實力
宋政隆認為使用開放源碼對於程序開發者而言,有一定的好處與壞處,好處當然是可以節省大量的開發時間與金錢,但是用多了現成且免費的程序代碼,則有可能會讓開發者懶散,反而沒打算繼續開發。
為什麼這樣說?在開放源碼的世界中,無論是開發應用程序或是網頁服務,不必每一行程序代碼都親力親為,從零開始。有許多先進在項目中或是因應他人請 求,都不斷地開發並釋出各式各樣的功能模塊,供其它後生晚輩學習或直接套用。對宋政隆來說,當他需要開發程序時,會先去查詢目前是否有別人已經開發完成的 程序模塊,如果網絡上已經有現成模塊,他就會依據自己的需求加以修改,並納入自己的程序之中。
話雖如此,有的程序設計師喜歡一個人獨 立編寫所有程序代碼,或許是認為每個人的邏輯與思考模式不同,別人的程序代碼很難看的懂。不過,宋政隆倒是認為 多看別人的程序代碼,是種讓自己可以吸收學習別人經驗的好方式,套用別人已經寫好的程序套件,可以節省自己的時間與精力,將自己的能力與時間用在更值得的 地方。