2009年12月30日

開放源碼軟體不准為惡?

今天有條新聞的標題很有意思:


Google 的源碼代管服務 "Google Code" 的服務對象是開放源碼的軟體,在 Philosophy 頁裡的任務說明寫得很清楚:
Mission Statement
To support the open source community by providing a scalable, reliable, and fast collaborative development environment for open source software, docs, and standards that promotes best practices in open source software engineering.

問題是:在開放源碼軟體授權條款中加上一條「不得用此軟體作惡」,這個軟體還是不是開放源碼軟體?

這個問題可能要由律師回答,但我個人的看法是:加上這一條軟體就不再是開放源碼的了,見 Open Source Definition 的第六條,摘錄出來:
6. No Discrimination Against Fields of Endeavor
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
「授權條款不得限制任何人在特定領域使用該程式。」

作惡的領域也是個領域,依第六條的精神,開放源碼軟體不能要求使用者不可用它作邪惡的事。

如果採取 Open Source Definition 的定義,規定軟體不得用來作惡抵觸了這一條,因此軟體就不再算是開放源碼軟體。

代管非開放源碼軟體既然不是任務之一,Google 請加上不作惡條款的 JSMin-PHP 離開 Google Code,看來是合理的。

軟體創作者有權利為自己的軟體加上任何授權條款,別人沒什麼好干涉的。所以 JSMin-PHP 作者有天賦的權利,要求使用該軟體的人不得用它來作邪惡的事。不過話又說回來,如何界定什麼事是邪惡的?
  1. 用 ssh 和偷聽到的密碼進入他人的系統算不算作惡?
  2. ssh 進去後,偷系統裡的資料算不算作惡?
  3. 如果以上兩個行為是資訊兵在兩國交戰時入侵對方的系統,對自己的同胞算是作惡還是英勇戰績?對敵人來說呢?
或許這是為什麼法律條文中不會有邪惡這個字的原因。

自己的條款違反了開放源碼的定義,還要炒新聞謿諷代管服務,實在有點失格了。