关于诸多系统的开放源代码,近来成了大家讨论的热门话题。而今年,微软和Java也加入了其中,这就让数千万的人们更加注重,究竟,依靠.Net和Java而开发系统程序的人数目就有这么多,他们当然会对系统的开放非常关心。
今天,我们要说的就是Sun公司关于Java的开放策略。
早在今年上半年,Sun就传出风声,对Java要开放源代码。这也给业内更多的人以期待。就在本月的13日,Sun公布了这次开放源代码的具体情况。但是,从其它厂商的反应来看,似乎对这种策略颇多微词。很多Java的用户也对这方面有各种想法,我们因为此而跟Sun公司的负责人谈起了Java的开放策略,使得我们对Java开放更加清楚。下面我们就对大家关注的一些问题做具体的解释。
Sun为什么要开放Java源代码?
很多人都有这样的疑问,Sun是一个公司,开放Java源代码对他们自己有什么好处,其商业价值在哪里?
其实,作为一个IT系统厂商,当然希望其下的产品被更多的人采用,这也是公司理念和个人利益不同的方面。这个观点Sun公司的CEO Jonathan在自己的博客里表述得很清楚,他在Sun发布Java开放源代码的时候,就写了一篇博客,名为“Sun从这里得到一些什么”。他讲的第一句话就是我们中文讲的“水涨船高”,因为Sun最大的利益就在于水涨船高,Sun要从Java里得到商业利益的话,一定是从Java的运用要能够普及,在遍地开花,各个地区都充分地应用Java,我们知道Java在全世界有超过500万的开发人员,有超过将近40亿的,各种不同的器件都有Java在里面,包括我们讲的智能卡、Java卡、手机,全世界有超过15亿支的比较智能化的手机都附有Java技术。
今天大家也都知道软件中的SOA,不希望大家花很多的时间做那些前人早已经做过的事情,假如我们开放了源代码,那么等于节省了大家的时间,同时也会让Java的整体发展上升一个新的台阶,会有更多的程序员和技术专家加入进来,这样,这个市场还会越来越大,Java技术本身就是跨平台的产品,他已经在IT系统得到广泛的普及,也在移动手持设备和嵌入式产品中有很大的市场,相信通过开放源代码这样的活动,Java市场会变得很广阔。希望通过源代码的措施,希望Java的使用环境更为扩大,当Java使用环境扩大之后,Sun的商业利益就出来了,大家使用Java越多,越需要商业化对Java的支持,一些商业性对Java的支持,像我们现在的一些企业对商业的诉求,像大部分的手机厂商,大部分主要的智能卡的厂商,所有的中间件厂商,这些厂商需要商业性的支持,能够让它的Java应用真正非常的安全、可靠,而且有服务。Sun创造了一个很大的Java使用环境应用,我们认为这些商业利益也会不断的增加,给Sun带来的主要利益是在这儿。“水涨船高”这句话应用得很好,英语里有这个词,在中文里有这样的词来充分代表,Sun在这里获利的方向。
那么如何开放,Sun的策略是什么?
我们知道Java的应用已经有了将近40亿的器件,已经有500万的开发人员,我们怎么样让Java更好呢?在这个过程中间,除了Sun不断的努力推广,以及我们的合作伙伴及我们Java的社区。在过去一直有大家比较争议的问题,是Java源代码的问题,这个问题Sun从前年开始逐步采取措施建源代码,在去年的Java1的时候,Sun就公布所有的Java都会开放源代码,当然这需要一个过程。经过我们的努力,差不多在18个月的时候,把Java所有的源代码的可能性都已经做了实践。我们后续还有一些有关Java的调用,源代码也要不断的公布,在明年3月之前整个Java,作为开放源代码的开发人员可以利用Sun所有的Java源代码进行重新的构建一个完整的环境。这个会完成我们所有Java源代码的开放,但是这个源代码开放中间,除了基本的源码本身的清理,还有很重要的是Sun到底采取什么样源代码开放的策略?这次公布的最主要是在许可证这个策略上,我们希望许可证出来,有最大的可能性去扩展Java的使用环境。
具体的开放方式是怎样的?
目前开放源码的许可方式还有GPL的模式,这种模式不属于商业开放源码的模式,属于一个社区的开放源码,但是它跟商业许可不一样,Sun公司目前对于JavaSE和JavaME这两个平台技术的开放源码,是采用社区方式和商业方式两种。以前Sun公司的JavaSE或者JavaME的实现,它的产品源码目前许可证可以提供的,这种商业提供源码现在有很多公司跟Sun公司有商业源码提供的协议,这种商业源码的协议目前没有任何改变。社区开放,商业许可还是商业许可,这是两条路。
未来Sun公司属于商业的产品也都是为源码的开放,未来开发是社区性的开发,但是商业的用户还有很多的,比如JavaME的环境里,技术的需求等等,这是一个商业的许可证,从Sun这儿购买商业的许可证产品,今天开放社区的源码,Sun公司有这样的趋势在这里,但是开放并没有我们在中国武侠小说里的,老师要留一手,有什么武功秘笈什么的,所谓开放的概念就是,未来所有源代码的工作都会转到社区来,根据GPL的许可证本身所具有的要求,有一些新的发布,会有一些新的产品在一起搭配着发布,开发人员当中有很大的便利,能看到所有的源代码,这里有很多附加的要求,有些东西本身开发的性质是开放性的,比如说我们Sun公司可以跟另外一家公司把许可证技术放在商业的产品里。并不是Java源代码这部分,但是这个技术可能是某一家公司拥有的,但是Sun公司可以把它变成商业性的产品来发布。但是必须要符合许可证里规定的要求,其他公司也可以用这个方法,好处就是市场上的竞争状况,可是对于很多企业用户来说,最终要有一个商业的,用户和供给商的关系我们叫合作伙伴关系,它需要有商业性的保证等等。这样的话,它的产品在采用许可证的时候,会得到相关的保证。这必须要由商业机构来取得,因为企业不愿意从开放市场和开放源代码的社区来取得,因为开放源代码的社区没有这些商业上的保障。
对于Java的开放源代码,应该说大家都是抱着欢迎的态度的,但是Java开放后假如有组织或者个人扩充了新的功能,那Java的平台就会像今天的Linux一样,变出很多不兼容的版本。