信息化 频道

甲骨文吞Sun Java何去何从?


    【IT168 专稿】Oralce收购Sun后,Java前途未卜。悲伤的情绪弥漫在Java开发者社区,关于Java命运的种种猜测,让Java开发者不知所措。被Oracle收编麾下的Java未来会如何,是继续生存发展,还是从此销声匿迹?是保持开源,还是变成Oralce的私有财产?Oracle对Java有什么期望,会采取何种策略,而Java又能给Oracle带来收益吗?

    一、Sun被收购,Java将如何?

    我是从电视上看到oracle收购sun的消息的,完全是无意中。晚饭时陪小朋友看《喜羊羊与灰太狼》,趁着广告时间正搜索新闻频道时,一条走马字幕出现在电视屏幕的下方,虽然一闪而过,但早已被我的视网膜所捕获,转换成生物电信号,传递到我的大脑皮层。我的CPU利用率立刻上升到百分之百,就像一个失去响应的Windows程序一样,张嘴结舌,出不得声。

    几秒钟之后,我才回过神来。太戏剧性了,Oracle的CEO埃里森真是个人才,如果不干IT,不知道和小沈阳是否有得一拼。多愁善感的IBM和Sun谈得死去活来,正在剪不断理还乱之时,Oracle像个抢亲的王老虎,一不托媒二不下聘,直接一顶花轿抬回家里。恼的是Sun连半推半就都不装一下,喜滋滋点头答应了。这或许是IT界最出人意料的一场收购,不过却非常符合埃里森的风格。

    一石激起千层浪,Oracle对Sun的收购,成为这几天最吸引眼球的话题。仁者见仁,智者见智,对于IT界的这件大事,有人惊喜,有人悲伤,有人惋惜,也有人庆幸。我对这些商业并购事件一点也不感兴趣,有一种过目即忘的本能,不过由于事关Java,所以当我大脑可以重新思考时,我想到的第一个问题是:Java会如何?古语云“皮之不存,毛将焉附”,现在Sun没了,Java靠谁?


    二、悲伤的java社区

    对于Java开发者社区,Sun被Oracle收购,无疑是一件令人伤感的事。Java开发者社区有个特点,那就是这个社区中技术至上者的比例比任何其他社区都要高。他们是技术的超级崇拜者,他们坚信只有技术才是IT界发展的唯一动力,技术是他们一生不变的理想和追求。Oracle对Sun的收购无疑给了他们当头一棒,技术屈服于商业利益之下,不能下蛋的母鸡总会被杀掉,这是商业社会的求生法则。最好的产品不是技术非常先进的,而是最能赚钱的。

    众所周知,Java并没有给Sun带来多少利润,Sun一直是用服务器硬件和Solaris操作系统的销售收入补贴Java,维持Java的运作。Java不能赚钱,所以Sun被收购,就这么简单。

    Java沦落到被收购的地步,让Java开发者颜面无存。很多Java开发者也许从来没有意识到Java的处境,他们看到的是Java的勃勃生机。不断发布的update,热闹的论坛,令人期待的新特性,这些繁荣的假象,让Java开发者对Java充满了盲目的自信。突然有一天,Sun告诉开发者,自己被Java拖累得不行了,还真有点让开发者难以置信。

    当然,理智的开发者也预测过Java的未来,他们设想会有一种比Java更优秀的开发语言出现,然后Java的生命力逐渐萎缩,直到淡出人们的视野。这也许是Java最好的结局,像一把老锈的宝刀,功成名就后心满意足地藏锋刀鞘。这样,当人们谈起Java时,只会回忆起Java的辉煌。

    可是,预想的结局没有出现,最不想见到的一幕偏偏成为了现实。虽说Oracle的收购更多地是一种商业行为,Sun把Java卖给Oracle,似乎无损于Java技术上的优雅,但不可否认,Oracle的收购无疑给Java添上了不光彩的一笔,一个号称最优雅的开发语言,居然没有给Sun带来收入,这不免让人产生Java不过是个花瓶的联想。
 


    三、Java还有未来吗?

    除了伤感,Java开发者社区还有一些实实在在的担忧。最为Java开发者所关心的是,Sun被Oracle收购后,Java还有未来吗?

    想想Java的生存模式,这种担忧不无道理。我们知道,Java一直不能赢利,既然如此,Sun为什么不终止Java,而是坚持在Java上的投入?要回答这个问题,我们必须了解Java的价值所在。在Sun时代,Java是靠优雅的内核和不断推陈出新的技术吸引开发人员的,因为java并没有给Sun带来直接的利润,促使Sun对Java不离不弃的,是Java背后庞大的开发者社区,这个集合了业界最优秀的开发人员的社区,是Java最具有价值的资产。

    开发者之所以忠实地追随在Java左右,是因为Java能给他们带来最前沿的技术体验,而这种体验,是其他任何开发语言所不能给予的。每隔一段时间,我们总能看到很多革命性的Java语言新特性的出现,这其中包括著名的泛型和枚举。别的不说,笔者正好用过Java的枚举,当时觉得Java的枚举有点复杂,后来慢慢习惯了。直到最近接触了C#的枚举,才发现Java枚举的优越性,相比之下,C#的枚举只能用幼稚二字来形容。

    现在,Sun被Oracle收购了,可以预计,在Oracle的商业模式中,Java的价值将更直接地通过Oracle产品销售体现出来,开发者社区的价值将被降低。这种情况下,Oracle在乎的是Java能否支撑它的应用软件,而不是Java对开发人员有多大的吸引力,换言之,在Oracle手中,Java的价值点发生了变化,只要Java能够满足业务需求,Oracle大可不必急着给Java添加什么新特性。因此,Java开发者社区有理由担心,Java的技术更新步伐将变慢,甚至停滞不前。

    这样看来,有些Java开发人员所作出的预言,确非信口开河,这些预言当中包括:Java的第7个版本或许永远也不会出现。


    四、Java继续开源?

    当谈及Java时,我们就不能不提到开源。Java的开源,可以追溯到三年前。2006年11月13日,Sun公司正式宣布,使用GPLv2授权协议开放Java虚拟机和编译器的源代码。对于这一震惊业界的开源举动,Sun公司的解释是为了鼓舞Linux开发者使用Java的热情。这当然是冠冕堂皇的方措辞,私底下,Sun的开源举动,在商业上是一种无奈之举,因为Sun一直找不到Java的盈利模式,但对于Java本身来说,Sun的开源给Java的应用和发展提供一个新的机遇。

    首先,Java的开源是顺应潮流之举,在开发者社区赢得了广泛的赞许,拉近了Java和开发者社区的关系,为Java赢得了更多的开发者,进一步提升的Java的潜在价值;其次,正如Java之父Gosling所称,Java开源最主要的原因之一就是加强了Java与开源社区的合作,社区里的人们从修补漏洞到安全审计几乎无所不能。Java之所以在安全性方面如此成功的原因之一,就是有群众的眼睛盯着源代码,而群众的眼睛是雪亮的,任何Bug都无所遁形;再次,开源将Java置于开发者社区的免费测试之下,Sun所要做的,只是提供一种Bug报告和修复机制,作为Sun内部测试的补充,这种测试非常有效而且成本低廉,为Sun节省了大量的人力资源。最后 ,也是最重要的一点,开源既提升了Sun的企业形象,也提高了Java的知名度。

    Java的开源,在商业上的功过可圈可点,但在技术上的成就是不可否认的。Java开源两年多来,推出了很多极具创意的新特性,既保持了Java的优雅,又给Java语言赋予了更强大的功能,这一切,开源社区功不可没。

   现在,Oracle收购Sun之后,Java还会继续保持开源吗?


    五、Oracle的策略

    Java是否继续开源,说来也简单,无非三种可能。

    第一种可能,Oracle延续Sun的政策,继续保持全面开源。如果Oracle对Java开源持这种态度,则说明Oracle重视Java的潜在价值,也就是Sun花费数年心血构建的,围绕在Java身边庞大而忠诚的Java开发者社区。Java开发者看重的是Java的技术领先性,如果Java终止开源协议,势必失去技术更新的后劲,慢慢丧失对开发者的吸引力,因此,只有保持开源,维持技术活力,才能留住开发者,维护社区的稳定。

    可是,这样一来,Java如何替Oracle挣钱呢?如果Java还像在在Sun手里一样,只有潜在价值而没有现实价值,Oracle对Sun的收购就部分地失去了商业意义。由此,我们可以猜测Oracle的第二种Java策略,那就是结束开源。结束开源意味着Oracle将把Java收入囊中,成为另一个类似Oracle数据库的产品,由Oracle负责研发、使用和销售。这符合Oralce的收购目的,毕竟此次收购花费了Oracle七十四亿美元之多,如果只能从Sun的三大产品服务器、Solaris和Java的两者中获得现实收益,那么Oracle的这次收购如果不算失败的话,起码也不能称为成功,因为事实证明光靠服务器和Solaris是不能维持收支平衡的。可以说,Oracle对Sun的收购,是赚是赔,全看Java,Java赚则Oracle赚,Java亏则Oracle亏。不难看出,Java的现实价值比潜在价值更符合Oracle的商业利益,因此Oralce可能结束Java开源的合理性也就容易理解了。

    如此看来,结束Java开源似乎是一个不错的选择,但是,这只是对Oralce而言,对Java来说,结束开源意味着技术上的阉割。Oracle是一个成功的企业,但Oracle在数据库技术方面,客观地说,阻碍大于贡献。关系数据库技术早在上个世纪60年代就由IBM发明,历经40多年的发展,没有产生任何革命性的突破,20年前我用SQL查询数据库,20年后SQL的语法还是那么晦涩、拗口和丑陋。编程语言从面向过程发展到面向对象,到现在几乎所有语言都具备了面向对象的特征,而数据库依然停留在40年前的水准,业界期盼了多年的对象数据库,甚至理论上都不成熟,更遑论产品化了。如果说对象数据库有技术难度,那么,一个面向对象的查询语言都没有出现,就不是技术原因能搪塞过去的了,态度才是根源。Oracle独领数据库风骚数十年,有着不可推卸的责任。

    基于Oracle在关系数据库技术上的表现,Java交到Oracle手里还真让人不放心。可见,开源,Oracle不干,而不开源,开发者不答应,那么,有没有一个折中方案呢?

    第三种可能,Oralce也许可以考虑部分开源。现在的Java,没有任何秘密,包括Java虚拟机和编译器在内的所有代码,全部向开发者公开。如果Oracle既想从Java开源中获得好处,又想让Java替自己挣钱,部分开源不失为一种折中方案。保持Java核心代码的私有性,将一些外围技术开源,完全可能达到两全其美的效果。当然,部分开源是一把双刃剑,核心代码的范围多大,这个度一定要把握准确,既不能让开发者觉得Oracle没有开源的诚意,又要保证Oracle对Java的商业主控权不旁落人手,具体操作手法上有相当的挑战性,如果掌握不好,后果可能是赔了夫人又折兵。


    六、最好的结局?

    如果被收购是命中注定,那么Sun被Oracle收购或许已是最好结局,Java也是如此。

    在IT史上,很多优秀技术比Java的命运悲惨得多,商业社会,技术从来就不是主角,只有当技术正好和商业目标契合时,技术才有机会站到前台。Java作为一个不赚钱的技术,在前台已经站得太久,回到后台也不必感到意外。好在,如果我们细数一下Sun的可能收购者,就会发现,与Microsoft或者IBM相比,Oracle其实是最好的买家。

    现在,收购尚在进行当中,而收购者和被收购者双方都对收购后的合作计划讳莫如深,不肯透露些许有价值的信息。猜测Java的命运显然为时过早,但是,站在一个Java程序员的立场,我希望Java作为一种优秀的编程语言,能够继续生存和发展,而继续生存和发展的前提,就是Java能为Oralce带来收益,维持Oracle对Java的投入。

    当然,这只是我的期望,事情会向着什么方向发展,谁也不知道,甚至Oracle和Sun也不清楚。因此,虽说我是唯物主义者,在这种时候,所能做的也只能是双手合十,宣声佛号:阿弥陀佛!

0
相关文章