导读:今天将给大家讲三个有关代码昂贵的故事。
9行代码,价值10亿美金
最近,甲骨文和谷歌的 Java API 版权诉讼案因需重新审理次进入人们的视野。这起就“API 该不该受法律保护”的官司打了5年之久,审理结果也是一波三折。
因案件双方都为科技件巨头,事件本身争议较大,索赔金额较多,本案件一直受到科技界的广泛关注。如果按照甲骨文的索赔金额计算,9行代码,索赔超过10亿美金,那么每一行代码价值一亿多美金,这也一度被外界解读为史上最昂贵的代码之一。
事件回顾:
原告:甲骨文
被告:谷歌
争议问题:API该不该受法律保护
审理结果:还未有最终结果
由于本文谈论主题是代码金额问题及代码背后的人物故事非法律问题,如果要道其始末,非只言片语可详尽,所以具体案请不再赘述,如有感兴趣的朋友可以自行查阅。
到底是什么代码那么贵,需要索赔如此巨大的费用呢?虽然费了些时间,还是找到了备受争议的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 行代码,也就是被甲骨文认为侵权的代码:
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 的哥们写的。此消息来自国外新闻资讯类网站HackerNews。
【Hacker News是一家关于计算机黑客和创业公司的社会化新闻网站,在该站,你可以实时看到编程界发生的新闻、新的学习资源、新的教程等等,也可以从从用户提交的数据中找到适合你的学习资源,学习者可以从这个网站找到更适合自己的新资源。】
Joshua Bloch 是谁?
百科能查到,简言之。
1996年,Java 刚崭露头角,一年内连发了2个版本,Java技术如火如荼,此时,JoshuaBloch 加入了Sun,学Java 的同学都知道,Java 就是由Sun 公司开发的。2004年,他荣获 Sun “杰出工程师”称号,此时,他离开Sun 去了发展比较迅猛的Google ,成为 Google 的Java 首席架构师,在核心平台组从事底层API 设计。不过现在他已经离开了 Google 了,网上言论说正是因为这事才离开谷歌的。
如果这是真的,优优也想吐槽下,哥们,你太强大了,9行代码就可以坐看两大巨头风云迭起,你才是科技界的梅长苏啊,佩服。
其实,在科技发展史上,与昂贵代码相关的故事还是挺多的,摘其比较知名的案例分享之。
历史上最昂贵的代码,三行,价值180亿美金
前不久,大众柴油车在美国被EPA(Environmental Protection Agency)查出了尾气排放作假的新闻,通过装有作弊程序的发动机电脑来规避严苛的排放测试,进而导致了大众车主在不知情的情况下为美国的环境增添了负担,大众也因此可能面临180亿美金巨额罚款。
下面就是网传的价值180亿美金的代码,但是可信度无从查证:
据网友解释,代码字面意思是“如果驱动轮转动,且非驱动轮静止,则开启dyno模式。”即前轱辘转,后轱辘不转情况下,开启环保模式。在消费者正常使用过程中默认处于关闭状态,只有在进行车辆检测的时候才会启用,从而使排放合格。根据美国环保局公布的数据,这些汽车在正常情况下的排放,是检测标准的10-40倍。
上面的意思,开车的朋友比较熟悉。
一行JS代码丢掉百万大单
这个事件比较久远了,发生在2009年,距今已有6年了。
当时,Opera 公司预计到预见到其产品Opera Mini, Opera Link,Opera Turbo 会带来爆炸性增长,于是准备采购大批服务器来减缓压力。管理层批准整个订单的预算达几百万克朗(当前汇价1挪威克朗基本等于1元人民币)。接下来技术控们像条女朋友一样从供货商那里挑服务器,直到有一台服务器把他们全部击溃了。这台服务器来自所有人都知道的全球一级厂商(名字不敢提)。当Opera工作人员启动之后,用 Opera 浏览器访问管理界面,被直接转到错误界面。这还不是问题全部,当找到问题根源时,连同 CSS 发明人(现任 Opera CTO)及旗下所有人都崩溃了。
错误的原因是,服务器管理界面被下面一个经销商加了一行代码,判断到 Opera 浏览器访问管理界面直接粗暴的转向错误页面。
程序员都知道,这可是致命的错误。因为此事,此公司把Opera 公司的相关人员激怒了,他们丢掉了这笔百万大单。
我们来看看那句价值百万的JavaScript代码:
if (is.opera) {window.location.href="config/error.htm"; }
这是一个条件判断语句,逻辑是一旦发现用户使用 Opera 浏览器直接转向错误页面。
中国有句古话叫,若要人不知,除非己莫为。如此简单粗暴的处理用户,迟早会为此付出代价的,善待用户吧!你也将为人所善待。
今天就分享到这来,明天继续,我是千里马君,感谢关注!
【原创编辑,转载请联系作者】