所谓的「开源」,原本指的是开放其设计让所有使用者自由修改的一项机制。
虽然大多被用于软件开发过程中,但这项机制已逐渐演变为泛指在产品、计划与专案方面,透过开放大众的参与、讨论与修改,进而加速其发展、增加透明度及大众福祉的方式。
开源软件,指的则是开放其原始码让所有使用者自由修改的软件。对于一般电脑使用者而言,原始码或许只是个陌生的概念。但是在专业的程式设计师眼中,拥有可以修改原始码的权限,不但能够修改程式美中不足的部分,甚至能以该原始码为基础,增加更多不同的功能。
相对于开源软件,其他不对大众开放修改原始码权限的软件,则被称为「版权软件」或是「closed source 软件」。由于其原始码的版权属于开发公司所有,往往只有原始的开发团队俱有合法修改的权利。 Microsoft Word 与 Adobe Photoshop 就是最着名的例子。在使用这些版权软件之前,使用者必须同意许多条款,包括在未获得原始开发者同意的情况下,不得对软件做出任何修改等。
开源软件,如 LibreOffice 、GNU Image Manipulation Program等, 与版权软件不同之处就在于,这些开发者皆愿意与大众分享其原始码,让其他开发者能够借此观摩学习,甚至加以修改。虽然使用者在开始使用开源软件之前,也必须要同意遵守部分使用条款,但条款内容却与版权软件的大异其趣。开源软件的使用条款不但鼓励使用者对软件进行修改,部分的使用条款甚至要求修改过后的版本也必须提供大众无偿使用。也就是说,任何程式设计师只要同意以上条款,就能自由地对这些开源软件的原始码进行修改或升级。
就像开源Initiative中所提到的:「开源并不只代表着原始码的开放。」开源的主要精神在于让所有人都能拥有依照自己的需求,修改原始码的权利。而除此之外,开源Initiative也提到了开源的其他层面。
开源的风潮不只造福了程式设计师们,对于一般使用者也好处多多。事实上,由于整个全球网路的架构,有很大的一部份建立在开源科技如the Linux operating system 、 Apache Web server application等的基础上,因此,不论是使用浏览网页、收发 e-mail、即时通讯或是音乐串流等功能,所有的网路使用者都在某种程度上,直接或间接地受惠于开源软件。
目前,许多个人电脑的运算功能,已逐渐被远端处理所取代,也就是时下最流行的云端运算功能。大多数电脑使用者,对云端运算的依赖程度正与日俱增。从文字编辑、e-mail 管理到影像处理,在利用自己电脑上所安装的软件之外,更多出了使用网页或手机上应用程式的便捷选择。
这种远端处理的模式之所以被称为云端运算的原因,正是因为其以个人电脑为窗口,与远端电脑结合所形成的云状网路运作结构而得名。在现今高度资讯化的时代中,云端运算的重要性已随着行动上网装置的普及,而渐渐融入大众日常生活之中。有些云端运算应用,如 Google Docs,属于 closed-end 的版权程式。而其他的应用,如 Etherpad等,则属于开源软件。
除了一般使用者所使用的云端应用以外,支援这些应用运作的平台也可以依属性,分为闭源(closed source) 与开源,如OpenStack等。
相较于 closed source 的版权软件,开源软件在使用者族群中的爱用程度更胜一筹。对于程式设计师族群来说,开源软件的开放性原始码,不但让他们能够以其为基础,根据自己的需要进行开发,也可以透过分享、回会与观摩他人的原始码,进一步相互切磋与学习。
另外,对于非程式设计专业的使用者来说,开源软件的开放性,使其安全性或功能性的缺点与漏洞皆能透过程式设计者社群的共同开发,快速的被修正与改善。同时,着眼于开源软件的高度可靠性与长时间由公众提供维护、升级支援特性,长期专案的规划及执行者,多半也偏好使用开源软件,以避免版权软件过时和消失的问题。
大部分人对于开源的最大误解,就是将开源与免费使用画上等号。
事实上,虽然是基于开源原始码修改或升级的版本,程式设计者仍是拥有向任何使用其软件的使用者收费的权利。然而,因为开源软件的使用条款强制要求程式开发者在出售软件的同时,也必须一併将原始码公开。因此,大部份的开发者已经逐渐由出售软件的模式转为释出免费软件,并提供需付费的支援服务。如此一来,使用者大众仍可以免费使用开源软件,而开发者则可以透过协助使用者安装、使用与除错来获利。
开源=生活态度
开源的观念并不只限于软件的开发与使用,而是希望能够把开源昇华成生活中的态度。抱持着开源态度,意味着透明化的与大众分享与合作、将失败视为进步的一部份、并尽量鼓励、推广开源的观念与模式。
除此之外,开源也代表了对于现今大众对于公共事务冷漠的反思。透过积极地参与公共事务,才能破除现实世界中,如同 closed source 软件的封闭原始码般,仅由少数人把持着形塑大多数人生活的计划、规则制定过程的垄断现象。不论是在软件开发、教育、商业、政治等方面,任何规则的制定 (不管是以原始码、制度或法律的形式),透过开放公众参与,都能达到一个更加美好完善的结果。