JDJ在JavaOne大会后就有关Java开放源代码中最有争议的问题的主要声明采访了Apache软件基金会副主席Jason Hunter, Jason在JCP中也占据了一个职位。
[alan]:这项声明意味着什么?
<jason>:这宣布了Apache和SUN之间关于开发源代码实现Java标准的认同,已经达成的协议条款有:
• 从现在开始由SUN领导的技术规范(包括已经存在的规范修订)和已经发布的重要规范,授权条款允许在开发源码条款下独立开发规范实现。
• 这些规范的兼容性测试套件(TCK)的可执行代码对有资格的开发源代码,非盈利和学术性组织免费开放。
• SUN对这些资格认证的组织使用和执行TCK提供尽量的帮助。
• 允许规范的带头人选择使用开发源代码许可证发布他们的指导性实现(RIs)和相应测试套件(TCKs),如果他们愿意的话。
还有一些额外的协议条款特别针对于JAVA技术规范商业实现者:
• SUN将在以后和以前重要的规范中把TCKs从RI代码分离出来,使之可用。而在以前,得到TCK许可的时候需要得到RI许可,这使得真正的独立实现是不可能的。
要获得这份协议的详细内容,请参阅SUN的公开信,发表在http://jcp.org/aboutJava/communityprocess/announce/LetterofIntent.html 和Apache的发布在http://jakarta.apache.org/site/jspa-agreement.html的新闻稿。
[anonymous] Java最终还是开发源代码的吗?
<Jason>:回答这个问题先得弄清楚这个问题真正的含义,我想这里面有三种不同的意思:
一:“是否有开发源代码的Java实现?” 回答是“有”,这份协议保证了当J2SE 1.5发布时,允许存在独立的,具有开发源代码许可证的实现。很多的JAVA规范将很快也这样做。
二: “是否有Java(指JDK)的参考实现的源代码?” ,这份协议中没有提及这个问题,Apache不能要求SUN或其他任何人的代码需要采用什么许可证。Apache认为如果你不喜欢一个代码的许可方式,你必须有能力自己写这些代码。这份协议的作用就是要允许这种做法。
三:“是否Java将按照开放源码的方式开发?”,很快在JCP中创建Java规范会有一个正式的过程。JCP可能现在还是一个正式的规范创建组织,尽管Apache希望它更加开放一些。我所领导的项目JDOM是JSR 102。我们证实了,你可以开放的开发Java规范及时是在JCP里。
[Kirk Pepperdine,kcpeppe@sprintmail.com] Apache已经看到了过去几年中各种项目的数量在爆炸式的增长,你怎么看待这个问题:从长远观点来看,摆在Apache基金会面前的最大挑战就是能够维持足够的动力和支持现在的努力成果。
<Jason>:Apache只接受已经建立,充满活力,积极开发的的项目,从另一个角度来看,代码必须从多个编码者的交流中产生。Apache不接受“烂在被窝里”的代码——即使有多诱人。
迄今为止这个规则执行得很好。我认为,Apache最大的挑战是如何高效的把写代码的人融入整个Apache交流社区。
[kcpeppe@sprintmail.com] :你是否完全满意声明中的内容?
<Jason>:现在这个宣言还只是一个开始,当执行以后,Apache将会更满意。
[kcpeppe@sprintmail.com]:在你看来,Sun能从这份声明中获得什么利益?
<Jason>:Apache是Sun的强有力的伙伴,促进了Java在服务器端的发展,象Tomcat,Ant,Xerces,Xalan和Axis/SOAP这些项目被广泛的使用,在服务器端Java领域中生机勃勃。很多Apache的项目也得到了SUN开发者的支持。 相当多的实现了Java的标准,并且通常在这种情况下,Apache代码会作为标准参考实现(RIs)的基础。既然这样,有关开发源代码的Java实现的合法性问题绝对必须使得Apache能继续支持JCP和JCP的规范。
[wwsmithms,wwsmithms@yahoo.com] Apache是否有计划创建一个JXTA的实现?
<Jason>:JXTA不是一个JCP规范,它是Sun背后支持的但独立的并且语言独立的开发源代码项目。它的许可和Apache类似。不受这份声明的影响。
[eric] 你是否认为这份声明将导致Sun最后给Jboss做J2EE认证测试?
<Jason>:JBoss能够得到今年马上就要发布的J2EE1.4 TCKs。因为JBoss是一个盈利性公司,他们可能要为TCK付费。我和他们谈过这个事情,但他们没这个计划。是否兼容TCK这就要看他们的了。
[Fintan Conway,Fintan.Conway@mail.esb.ie] Apache如何感受/处理,当很多你们的想法/产品被别的公司集成?例如,等同于ORO项目的已经被集成进Java 1.4的regexp类库。
<Jason>:有两种方法来解释这个问题:
一:“Apache如何感受,当他们的产品被集成进其他公司的产品,如:IBM的WebSphere怎么能用Apache Web服务器?”Apache正好采用一个特殊的许可证(非常自由,允许在商业产品中使用),因为Apache希望他们的代码有用,而且能被任何人,所有有兴趣的人使用。
二:“Apache如何感受,当JCP创建的Java平台的规范和已经存在的Apache项目有几分相似?”这个问题要更难回答,因为Apache组织的开发者有各种各样的意见。我想公平一点来说:人们高兴看到Java集成象正则表达式,日志这样的功能。然而我们看到这些规范在私下里被创建并且很少交流,对比Apache项目。
毫不惊讶,当你对比Java规范和被广泛交流和接受了大量用户反馈而创建的Apache项目时,新标准也许看起来质量并不同。更值得一提的是,集成技术往往只在不断创新而且不需要等到J2SE 1.5的下一个发布的Apache后面才会走远一些。同时,Apache人认识到这会有一个微软Windows风格的效应:平台上做的开发是市场主导的,而不关心相应的质量问题。
[George] 这是结束前的开始吗?未来是否会这样:我们看到各种版本的Java,就像现在我们看到C/C++世界一样,然后我们为各种目标JVM编译各个版本的应用。
<Jason>:必须要认识到,这份协议对开发源代码实现提供了“兼容性”。Apache相信这份声明将提高Java的便携性,由于更广范围的TCKs应用和目前坚固的开放源代码实现,厂商们完全可以借用。Servlet的便携性由于Tomcat引擎的存在只会提高。
[Mark Menzies,Mark.Menzies@avendia.co.uk] 这可能是个很简单的问题,但即使Apache是一个非盈利组织,他们在未来将如何计划以持续提供优秀的,高质量的服务?
<Jason>:为了更好的解释开放源代码项目是如何运作的,我推荐这本书《教堂和集市》(《The Cathedral and the Bazaar》)[by Eric S.Raymond and Bob Youngor],或者研究报告“Open-Source Software Development and Distributed Innovation” 见www.smu.edu.sg/research/pdfs/kogut06K1.pdf。
[Mark.Menzies@avenida.co.uk] 你能否解释一下Sun给开放源码组织能提供的最好支持?
<Jason>:在这份声明的几个月前,Apache提出了一个最小的要求:TCK 可执行文件应用容易发放给任何开放源代码组织和学术团体。规范带头人能决定放弃许可费的想法还不够现实,因为一个忙碌的规范带头人甚至可能不会回应小团体或个人,并且我们还想有下一个Linus Torvalds能够搞大(这次是在Java世界里)。通过谈判,Sun愿意许可TCKs给这些组织,但许多TCKs是非常复杂的,根本上是需要得到技术支持来运行。Sun不能保证给非盈利组织提供支持,因为不同于TCK,支持每个客户是真的费钱的。
为了解决问题,建议发起一个联合组织(由Sun,Apache和学术团体成员组成)来提供免费的TCK给任何有资格的团体,并提供在预算限制范围内的技术支持。资格认证机构和技术支持结构将有联合组织之外的成员组成。我个人认为,这一点都不会令人吃惊,如果开放源码的邮件列表变成支持开放源码组织最通用的载体。
[alan]: 最后,这次新闻发布会结束的时候,公众普遍反映如何?
<Jason>:我发现人们仍然在问问题。这些问题是相当复杂的,而且你挖掘的越深,你能发现越多的细节。最后你会后悔钻得这么深,有时我希望我会选择蓝色的药丸(注:From movie Matrix)。令人高兴的是,事情好像发展得很好,并且我希望这种Q&A的方式能帮助人们了解新的变化和含义是什么。