開源程式運動

By Chris Cheng 程鵬

 

我們大多數人都聽說過與軟體有關的「開源」,但只有少數的人真正知悉它的意義和運作方式。其實,它的概念並不複雜:簡單來說,所謂的「開源」,就是指一個程式(代碼)的開發者容許任何人隨意變更與使用它。這個概念有助保健、教育、科研等範疇的大型全球合作。

 

在探討開源軟體對現實生活的影響之前,讓我們認識一下它的運作模式。以火狐瀏覽器為例,雖然這個瀏覽器有部分屬於開源性質,這並不代表任何人都能更改它的源代碼。Linux、Android操作系統,和Google Chrome等的大型開源軟體工程亦複如是。一般來說,開源軟體會使用版本控制系統讓用戶各自修改一套統一的代碼,情況有如較複雜的Google Docs。程序設計員能夠複製源代碼,進行編輯,之後再提交修補代碼。代碼的持有人會核查修補代碼,再決定是否接納修補、建議修改代碼,或是完全拒絕修補。

 

開源軟體單單在軟件開發的範疇已能帶來龐大的效益。程序設計員能通過共享代碼來合作,削減多餘的編碼,以及加快創造新代碼的速度。程序設計初學者也能透過開源軟體來更快、更有效地學習如何協助一些有實際用途的計劃。

 

然而,開源軟體在社會經濟方面的影響可能更大。試想像一個開源軟件,能夠通過MRI掃描去找出腦部腫瘤和它的發展階段──這軟件能帶來極大的影響!這種科技能大大減低醫療成本,病人需支付的醫療費用會變得較便宜。在一些無法供應充足醫療服務的國家,這種開源軟件可幫助發展和資金不足的醫院作出適當的治療。另一方面,開源可有助程式錯誤較快被發現和修補,改善程式的表現。我們不難想像,只要有電腦和互聯網,高中生也可以學習編碼和解決問題。

 

開源的概念亦可應用在數據科學等其他範疇。一個「開放資料」的項目 DataLad運用在開源代碼當中經常被使用的兩種軟體Git和git-annex,整合多個共享科學數據平台的使用權。這項目讓研究人員分享實驗數據,有助擴大研究範圍。

 

視乎數據領域和來源而定,目前數據共享項目面對的問題不盡相同。以神經成像數據(這亦是DataLad專門處理的數據)為例,因為病人隱私的緣故,資料必須經過刪減處理。這方面的工作做到不好的話,會影響神經學家參與計劃的意願。另一方面,DataLad目前正在添加界面的功能,包括一個讓用戶能夠直接在數據共享平台上發表數據的新功能。DataLad 的創辦人Yaroslav Halchenko和Michael Hanke表示:「代碼和數據分享最終應該會變得普遍。」

 

無論是軟體開發、科學研究,甚至是其他尚未探索的領域,有一件事是明確的:開源運動有機會協助的,並不只是科學家,而是整個社會不同界別的人。

 

Background image created by Creativeart – Freepik.com