導(dǎo)讀:今天將給大家講三個(gè)有關(guān)代碼昂貴的故事。
9行代碼,價(jià)值10億美金
最近,甲骨文和谷歌的 Java API 版權(quán)訴訟案因需重新審理次進(jìn)入人們的視野。這起就“API 該不該受法律保護(hù)”的官司打了5年之久,審理結(jié)果也是一波三折。

因案件雙方都為科技件巨頭,事件本身爭(zhēng)議較大,索賠金額較多,本案件一直受到科技界的廣泛關(guān)注。如果按照甲骨文的索賠金額計(jì)算,9行代碼,索賠超過(guò)10億美金,那么每一行代碼價(jià)值一億多美金,這也一度被外界解讀為史上最昂貴的代碼之一。
事件回顧:
原告:甲骨文
被告:谷歌
爭(zhēng)議問(wèn)題:API該不該受法律保護(hù)
審理結(jié)果:還未有最終結(jié)果
由于本文談?wù)撝黝}是代碼金額問(wèn)題及代碼背后的人物故事非法律問(wèn)題,如果要道其始末,非只言片語(yǔ)可詳盡,所以具體案請(qǐng)不再贅述,如有感興趣的朋友可以自行查閱。

到底是什么代碼那么貴,需要索賠如此巨大的費(fèi)用呢?雖然費(fèi)了些時(shí)間,還是找到了備受爭(zhēng)議的9行代碼。
Java JDK 中的那 9 行代碼:
privatestaticvoidrangeCheck(intarrayLen, intfromIndex, inttoIndex) {
if(fromIndex > toIndex)
thrownewIllegalArgumentException("fromIndex("+ fromIndex +
")> toIndex("+ toIndex+")");
if(fromIndex < 0)
thrownewArrayIndexOutOfBoundsException(fromIndex);
if(toIndex > arrayLen)
thrownewArrayIndexOutOfBoundsException(toIndex);
}
Google 用了的那 9 行代碼,也就是被甲骨文認(rèn)為侵權(quán)的代碼:
privatestaticvoidrangeCheck(intarrayLen, intfromIndex, inttoIndex) {
if(fromIndex > toIndex)
thrownewIllegalArgumentException("fromIndex("+ fromIndex +
")> toIndex("+ toIndex+")");
if(fromIndex < 0)
thrownewArrayIndexOutOfBoundsException(fromIndex);
if(toIndex > arrayLen)
thrownewArrayIndexOutOfBoundsException(toIndex);
}
有意思的是,上面2段代碼都是一位叫Joshua Bloch 的哥們寫(xiě)的。此消息來(lái)自國(guó)外新聞資訊類(lèi)網(wǎng)站HackerNews。
【Hacker News是一家關(guān)于計(jì)算機(jī)黑客和創(chuàng)業(yè)公司的社會(huì)化新聞網(wǎng)站,在該站,你可以實(shí)時(shí)看到編程界發(fā)生的新聞、新的學(xué)習(xí)資源、新的教程等等,也可以從從用戶(hù)提交的數(shù)據(jù)中找到適合你的學(xué)習(xí)資源,學(xué)習(xí)者可以從這個(gè)網(wǎng)站找到更適合自己的新資源?!?/p>
Joshua Bloch 是誰(shuí)?


百科能查到,簡(jiǎn)言之。
1996年,Java 剛嶄露頭角,一年內(nèi)連發(fā)了2個(gè)版本,Java技術(shù)如火如荼,此時(shí),JoshuaBloch 加入了Sun,學(xué)Java 的同學(xué)都知道,Java 就是由Sun 公司開(kāi)發(fā)的。2004年,他榮獲 Sun “杰出工程師”稱(chēng)號(hào),此時(shí),他離開(kāi)Sun 去了發(fā)展比較迅猛的Google ,成為 Google 的Java 首席架構(gòu)師,在核心平臺(tái)組從事底層API 設(shè)計(jì)。不過(guò)現(xiàn)在他已經(jīng)離開(kāi)了 Google 了,網(wǎng)上言論說(shuō)正是因?yàn)檫@事才離開(kāi)谷歌的。
如果這是真的,優(yōu)優(yōu)也想吐槽下,哥們,你太強(qiáng)大了,9行代碼就可以坐看兩大巨頭風(fēng)云迭起,你才是科技界的梅長(zhǎng)蘇啊,佩服。

其實(shí),在科技發(fā)展史上,與昂貴代碼相關(guān)的故事還是挺多的,摘其比較知名的案例分享之。
歷史上最昂貴的代碼,三行,價(jià)值180億美金
前不久,大眾柴油車(chē)在美國(guó)被EPA(Environmental Protection Agency)查出了尾氣排放作假的新聞,通過(guò)裝有作弊程序的發(fā)動(dòng)機(jī)電腦來(lái)規(guī)避?chē)?yán)苛的排放測(cè)試,進(jìn)而導(dǎo)致了大眾車(chē)主在不知情的情況下為美國(guó)的環(huán)境增添了負(fù)擔(dān),大眾也因此可能面臨180億美金巨額罰款。
下面就是網(wǎng)傳的價(jià)值180億美金的代碼,但是可信度無(wú)從查證:

據(jù)網(wǎng)友解釋?zhuān)a字面意思是“如果驅(qū)動(dòng)輪轉(zhuǎn)動(dòng),且非驅(qū)動(dòng)輪靜止,則開(kāi)啟dyno模式?!奔辞伴镛A轉(zhuǎn),后轱轆不轉(zhuǎn)情況下,開(kāi)啟環(huán)保模式。在消費(fèi)者正常使用過(guò)程中默認(rèn)處于關(guān)閉狀態(tài),只有在進(jìn)行車(chē)輛檢測(cè)的時(shí)候才會(huì)啟用,從而使排放合格。根據(jù)美國(guó)環(huán)保局公布的數(shù)據(jù),這些汽車(chē)在正常情況下的排放,是檢測(cè)標(biāo)準(zhǔn)的10-40倍。
上面的意思,開(kāi)車(chē)的朋友比較熟悉。
一行JS代碼丟掉百萬(wàn)大單
這個(gè)事件比較久遠(yuǎn)了,發(fā)生在2009年,距今已有6年了。
當(dāng)時(shí),Opera 公司預(yù)計(jì)到預(yù)見(jiàn)到其產(chǎn)品Opera Mini, Opera Link,Opera Turbo 會(huì)帶來(lái)爆炸性增長(zhǎng),于是準(zhǔn)備采購(gòu)大批服務(wù)器來(lái)減緩壓力。管理層批準(zhǔn)整個(gè)訂單的預(yù)算達(dá)幾百萬(wàn)克朗(當(dāng)前匯價(jià)1挪威克朗基本等于1元人民幣)。接下來(lái)技術(shù)控們像條女朋友一樣從供貨商那里挑服務(wù)器,直到有一臺(tái)服務(wù)器把他們?nèi)繐魸⒘恕_@臺(tái)服務(wù)器來(lái)自所有人都知道的全球一級(jí)廠(chǎng)商(名字不敢提)。當(dāng)Opera工作人員啟動(dòng)之后,用 Opera 瀏覽器訪(fǎng)問(wèn)管理界面,被直接轉(zhuǎn)到錯(cuò)誤界面。這還不是問(wèn)題全部,當(dāng)找到問(wèn)題根源時(shí),連同 CSS 發(fā)明人(現(xiàn)任 Opera CTO)及旗下所有人都崩潰了。

錯(cuò)誤的原因是,服務(wù)器管理界面被下面一個(gè)經(jīng)銷(xiāo)商加了一行代碼,判斷到 Opera 瀏覽器訪(fǎng)問(wèn)管理界面直接粗暴的轉(zhuǎn)向錯(cuò)誤頁(yè)面。
程序員都知道,這可是致命的錯(cuò)誤。因?yàn)榇耸?,此公司把Opera 公司的相關(guān)人員激怒了,他們丟掉了這筆百萬(wàn)大單。
我們來(lái)看看那句價(jià)值百萬(wàn)的JavaScript代碼:
if (is.opera) {window.location.href="config/error.htm"; }
這是一個(gè)條件判斷語(yǔ)句,邏輯是一旦發(fā)現(xiàn)用戶(hù)使用 Opera 瀏覽器直接轉(zhuǎn)向錯(cuò)誤頁(yè)面。
中國(guó)有句古話(huà)叫,若要人不知,除非己莫為。如此簡(jiǎn)單粗暴的處理用戶(hù),遲早會(huì)為此付出代價(jià)的,善待用戶(hù)吧!你也將為人所善待。
今天就分享到這來(lái),明天繼續(xù),我是千里馬君,感謝關(guān)注!
【原創(chuàng)編輯,轉(zhuǎn)載請(qǐng)聯(lián)系作者】