取自于社区、用之于社区,宋政隆认为程序开发不只是单纯的买卖关系,也是服务的一种,他不仅见证了开放源码的理想,个人的实力也随着无私分享而提升。
在开放源码的环境中,有许多大大们都是只闻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。
自由派编写风格仍无伤严谨度
虽然宋政隆一路 走来都是受正统信息科班教育,不过他在程序写作的时候也不尽然会完全依照标准程序,他认为「程序如果只是写给自己用的就不需要太严 谨,当作游戏来写一样很快乐」。虽然他如此表示,但是在检视他所编写的一些程序代码之后,虽然他是自由派的写作风格,但是行与行之间自有其法度可寻,并不 是纯然想到哪写到哪的。由此可知,他虽然谦逊的说他没特别做事前规画,但是脑海里面已经有一套严谨的分析流程,并且绝不会轻易改变。
在访问过程中,宋政隆也提到他一位同事的编写风格,该同事会在事前做出相当多样的流程与模块分析,不等到通盘分析完成,他是不会开始编写的。宋政 隆认为这样做当然严谨且正规化,但是对于一些小程序的开发也要这样做就太痛苦了,有时候一个小系统同时包好几个功能模块也没有关系,并不一定要把所有功能 都模块化。但如果是执行大型项目的话,他也会做出相当仔细的分析,避免因为小疏忽让除错更麻烦。
尊重授权,取财有道
写了这么多年程序下来,宋政隆认为程序开发不只是单纯的买卖关系,也是服务的一种。开放源码之所以免费让人使用程序,并不一定纯粹为了免费,有的 设计者是因为希望能够让更多人共同检查他的程序是否有问题,而且程序本身虽然可以不收费,但是使用这些程序提供其它服务就可以收费,而至于如何收费及收费 的项目,就依照当初所采用的开放源码授权而决定。
以网站为例,当他开发完相关的网站程序之后,工作并不是到此就完全结束,在约定的维 护期间之内,原有的功能更新与修正都是必要的工作,定期检视程 式码并修补漏洞,更是维持网站正常运作的要件。由这点来看,不管是软件包或是项目制作,软件开发都只是一部份的工作,后续的维护更新才是更重要的,就像硬 件有售后服务的保固契约,软件也应该要有一定时间的维护工作,这样才能确保功能不失常。
这样听起来,宋政隆应该是拥护软件有价的一 派。但事实上,他从大学开始就不断地为开放源码社区贡献心力,软件固然可以有价,但是应该订定一个合理 价格;而在开放源码的世界中,所有采用开放源码的个人或公司,收取一定的服务费用也是应该的,但如果这些个人或公司就把开放源码当作自己的产品包装起来, 以产品的方式销售,却只字未提是由那些开放源码项目衍生而来,这是宋政隆难以接受,也相当排斥的作法。不过开放源码的授权相当多种,就连他也没有全盘接 受,他也认为不论是程序开发者或是使用者,在使用开放源码的授权时要特别注意,以免无意间违反了规范而不自知。
善用开放源码,提升实力
宋政隆认为使用开放源码对于程序开发者而言,有一定的好处与坏处,好处当然是可以节省大量的开发时间与金钱,但是用多了现成且免费的程序代码,则有可能会让开发者懒散,反而没打算继续开发。
为什么这样说?在开放源码的世界中,无论是开发应用程序或是网页服务,不必每一行程序代码都亲力亲为,从零开始。有许多先进在项目中或是因应他人请 求,都不断地开发并释出各式各样的功能模块,供其它后生晚辈学习或直接套用。对宋政隆来说,当他需要开发程序时,会先去查询目前是否有别人已经开发完成的 程序模块,如果网络上已经有现成模块,他就会依据自己的需求加以修改,并纳入自己的程序之中。
话虽如此,有的程序设计师喜欢一个人独 立编写所有程序代码,或许是认为每个人的逻辑与思考模式不同,别人的程序代码很难看的懂。不过,宋政隆倒是认为 多看别人的程序代码,是种让自己可以吸收学习别人经验的好方式,套用别人已经写好的程序套件,可以节省自己的时间与精力,将自己的能力与时间用在更值得的 地方。