為甚麼Oracle可以拿九列程式碼的著作權,到處濫收「保護費 」?

為甚麼Oracle可以拿九列程式碼的著作權,到處濫收「保護費 」?
Photo Credit: Jana Asenbrennerova / REUTERS / 達志影像

我們想讓你知道的是

我在通識課裡每個學期都會考這個概念,因為這就像是每一位公民需要知道詐騙集團的手法或毒品的危害一樣重要。

Oracle對Google的Java API官司,Oracle勝訴,於是Oracle準備大舉開徵保護費,各行各業挫著等。身為程式設計師,我看了快吐血。

讓我做幾個比喻,你不需要會寫程式,也能理解何謂應用程式介面(API)。牆壁上的電源插座,就是電力供應的API。供電方與用電方同意: 接觸的兩隻腳距離要多遠、電壓是多少、頻率是多少。提款機的提款卡插入口,就是提款/查詢服務的API。提款卡的寬度、厚度、晶片的位置、傳遞的資訊、......這都有固定的數值,是業界大家共同遵守的共識。電腦跟電視之間、跟投影機之間的VGA接口或HDMI接口,就是影像傳輸的API。

API是一個共通的介面,是一種微型的語言,讓參與溝通的多家廠商可以交換資訊。相較於發電廠、相較於各種需要吃電的複雜電器設備、相較於提款機內部電路,API不過是一個小小個的接口,它的複雜度幾近於零。API不應該受到著作權保護。它既不屬於臺電、也不屬於任何一家家電業者、更不屬於任何一家銀行所獨有;它是大家溝通時共用的語言。

隨便找一個C語言或C++語言所寫的程式,比較一下*.h程式碼(API)的份量與*.c或*.cpp或*.c++程式碼(實作,implementation)的份量,你就可以具體地粗估我所說的「趨近於零」的那個數字。

自由軟體之父Richard M. Stallman在設計GPL的時候,還多設計了一個(約束力較小的)LGPL,就是要讓專屬軟體可以採用自由軟體的API而不需要跟著把自寫的專屬軟體的程式碼釋放出來。因為他知道支持GPL需要理念;但對於那些想佔自由軟體便宜但又不想付出的廠商來說,LGPL比較可以接受。

另一方面,即使是專屬軟體的著作權人之間,經常也需要靠API來溝通。例如W3C引發公憤的EME「標準」,就是一種DRM領域的API,沒有哪一家白癡公司主張對EME擁有著作權。從自由軟體到瀏覽器DRM,光譜上的這兩個極端,任何稱職的程式設計師都知道:API是一個溝通用的介面;它不該是智慧財產權保護的對象。

一旦API被列為智慧財產權保護的對象,開發應用程式就成為處處可能踏到法律地雷的高風險違法行業。這也是為什麼蘋果共同創辦人Steve Wozniak、C++之父 Bjarne Stroustrup、Unix 之父Ken Thompson、作業系統大師Andrew Tanenbaum、Linux之父 Linus Torvalds、(感嘆世人看不見的)Smalltalk之父Alan Kay……還有電腦界其他許多大咖,他們透過法庭之友機制在本案當中力挺Google,對法院解說為何API不該被著作權保護

如果有程式設計師竟然還主張著作權可以保護(用來讓兩隻程式接口的)API,那我看他不如就乾脆加碼主張他嘴巴碰過的碗以及屁股坐過的馬桶等等任何跟他身上的洞口對接過的東西也通通都侵犯他的著作權吧!這位拒聽專家建言的白癡法官一定也會力排眾議跟他站在同一陣線的。

API不該被著作權保護、基於API的侵權判決是智障判決;但是Google在其他面向有沒有侵權?有,就只有九列程式碼

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex {
if (fromIndex > toIndex)
throw new IllegalArgumentException("fromIndex(" + fromIndex +
") > toIndex(" + toIndex+")");
if (fromIndex < 0)
throw new ArrayIndexOutOfBoundsException(fromIndex);
if (toIndex > arrayLen)
throw new ArrayIndexOutOfBoundsException(toIndex);
}

從我們的角度來看,這就是Oracle勉強有立足點可以拿來坑殺顧客的「智慧」財產依據。第一審的法官William H. Alsup為了理解大家的說法,還認真地自學寫程式,最後判Google勝訴。但是上訴法庭的白癡法官就沒這麼認真做功課了。對於這種低能判決,我沒有力氣再幹譙或解釋更多了。有興趣了解此案來龍去脈的讀者,可以從EFF的Oracle vs Google專頁找到很多資料。除了上述電腦專家之外,還有微軟、紅帽、HP、App開發者聯盟、Mozilla、智慧財產權教授群、電腦與通訊工業協會等等團體也都透過法庭之友機制,在本案中力挺Google。

雖然這次的事件的受害者主要是Java用戶;但資料庫被Oracle綁架的公司更多。而仗著九行侵權程式碼向Google敲詐90億美元的Oracle是怎麼樣的一家公司呢?可參考以下文章︰

簡單講,Oracle的專長不是技術或服務品質而是簽合約;它採取的手段不是提供誘因,而是威脅。就是透過軟體稽核逼用戶越陷越深。但是客戶們通常因為自己授權不足、法律上自己理虧,所以人人心虛、沒人敢站出來大聲反抗,也因而無法彼此交流經驗,共同找出對抗Oracle的策略。和那些被黑道用毒品控制住的受害者有沒有像?跟Oracle的作風對照之下,現在回頭再看那些「只收你一次錢就滿足的勒贖軟體」,後者根本就是慈悲為懷的大善人。

所以,如果你們公司用到Oracle的任何一種產品,都應該覺醒了。最重要的第一步就是理解Scott McNealy所說的barrier of exit。他是 Sun Microsystems 創辦人,在Oracle買下Sun的時候,就給了這個超級重要、卻被主流資訊教育體系及資訊產業所忽略的六分鐘演講。對,他雖然是拿IBM的DB2作例子,但其實一樣適用於Oracle的資料庫,現在竟也出人意表地適用於被Oracle搞爛掉了的Java。




面對人生五大課題,如何超越自我?用體能訓練的心態為自己展開超越之路

面對人生五大課題,如何超越自我?用體能訓練的心態為自己展開超越之路
Photo Credit:中國人壽

我們想讓你知道的是

45秒精彩翻滾,來自19年的苦練,翻滾男孩李智凱,因著奧運銀牌,成為台灣人心中的鞍馬王子。這19年間,除了教練、防護員,他還有一位重要神隊友—妻子,他在求婚貼文裡這麼感謝她:「不論是遇到挫折、失敗與失落,或者訓練受傷伴我走出谷底,她是我努力不懈奮鬥的動力來源。」我們的人生不在奧運場上,而是在人生GYM裡,不妨師法鞍馬王子,把「對的人」留在身邊,一起練生命裡的五大課題。

關關難過關關過,我們需要學習如何鍛鍊自我、更自信面對困難。就像李智凱的幽默態度:「遇到瓶頸算什麼?你還有瓶身跟瓶蓋要過,才能度過這個難關。」鍛鍊自我的過程中不可能永遠順利,但我們可以持續努力!以下列舉生命五大課題中常見的問題情境與自我訓練方法,陪伴大家在人生GYM中的訓練更順利:

工作課題:接受挑戰是最好的自我訓練,彼此陪練成果大於單打獨鬥

工作難題千奇百怪,也許你已經在一間不錯的公司,卻對自己日復一日的工作內容感到茫然?又或者面臨重重的考驗,付出全力卻達不到夠好的表現?工作,如同運動訓練,心態是關鍵決勝點,「即使可能失敗,也要用盡全力」世界球后戴資穎教我們選擇接受挑戰,以對得起自己的工作態度,對自己負責。

當你遇到人生好難、吃苦當吃補時,不妨試著對著鏡子擺出超人姿勢,提醒自己是有能力、有價值的人,以「做就對了」的良好工作態度持續努力。因為即使當下不受肯定,做好自己的工作,就是為自己的未來找到更好的舞台,為超越自己做前置準備;擁有神隊友,也是不可或缺的,一起努力的夥伴,互相陪練、交流成長,絕對會比單打獨鬥更能達成理想目標。

人際關係課題:基本訓練是「尊重」,進階訓練是「找到對的夥伴」

在與人相處上,我們常因過於在乎,而把對方看得太重,甚至期待對方以同等態度回應,一旦期待落空,心中的不平衡感就會出現,甚至產生自我否定與懷疑,這樣的心態很容易讓關係變質,走向怨懟,甚至破局收場。

與人相處首先訓練「尊重」。要尊重自己、知道自己值得被愛,而不是只有無止境的付出才能得到對方的愛;再來尊重每個人都是獨立個體,不強加自己的喜好與期待在別人身上,保持讓彼此舒服的空間,才是平衡關係的第一步。

此外,就像職業運動選手需要優秀的陪練員,請花些時間為自己尋找一起陪練人生的好夥伴。美國知名企業家Jim Rohn曾提出「五人平均值」理論,意思是你的人生樣貌,會是你最親近的五個人的平均,他們的性格、生活習慣多多少少潛移默化著你的人生。請訓練自己將對的人留在身邊、不對的人早日放下,互相帶領彼此進步。

家庭課題:培養同理心,創造空間,陪伴彼此一生

家人關係像一支球隊,當每位成員在最適合自己的位置、彼此付出時,才能讓家庭的能量發揮到最大。但若強加期待於家人,忘卻同理心,則會適得其反,就像父母常向子女要求:「你應該要努力成為頂尖」,卻對子女的優點視而不見;子女則常覺得「爸媽都不了解我」,卻忽略他們也在學習如何當父母。

和諧的家庭關係,來自培養「同理心」,請試著放下期待、好好聆聽、避免情緒勒索。當你放下期待時,不滿的情緒會消失,聆聽才有機會發生,這也是為彼此創造空間,找到對彼此都好的相處模式。家人是一輩子的連結,不是一輩子的壓力,就用空間來保護最親密的家人吧,讓彼此擁有生活的餘裕。

心理健康課題:練習接住負面情緒、珍惜陪伴能量

運動不可能只有勝利,更多的是面臨失敗的時刻,人生也是。當不如意發生時,隨之而來的負面情緒會讓人失去希望和前進的動力,如何面對它?除了不閃躲的勇氣,我們首先要做的是「接納」。

產生負面情緒是再自然也不過的事,就連球后小戴都承認:「我也不是無時無刻都滿滿的正能量,但正面的想法確實可以幫助自己更好。」在正能量被負面情緒打擊之時,請先允許自己接住情緒,不自責、不批判、沒有好壞對錯。

再來,為自己做點深呼吸,爭取機會讓正能量反彈向上。同時,擁有健康的支持系統也是必要的,請好好珍惜身邊的陪伴關係,它能幫助你走得更遠。

身體健康課題:找到好的人生夥伴一起前行,堅持訓練計畫

嘗試各種訓練的你,自然不會忽略生理健康訓練,「好好過生活」這簡單的五個字,需要有計劃地落實。每日進行體能訓練、攝取均衡營養、充足睡眠,我們自然能擁有健康多一點。同時別忘了More Fun Together,為自己找到志同道合的夥伴,帶領我們看見更好的自己。

不論你現在面臨哪一種人生練習題,請相信自己不是孤單地面對訓練,因為在人生GYM的這條路上,你會遇見好夥伴,彼此分享正能量,也有中國人壽提供完整保障、全力守護,讓你沒有後顧之憂地專注訓練、超越自我朝夢想勇敢前行。