大约两年前, 甲骨文开始将NetBeans捐赠给Apache软件基金会 ,而第一个主要的代码落地大约在12个月前。从那时候起,他们开始了大量的工程工作。尽管如此,NetBeans社区仍在取得进展,包括发布了一个新的主要版本。InfoQ采访了甲骨文高级首席产品经理Geertjan Wielenga,他见证了整个过程。
Geertijan Wielenga:这是一个缓慢而彻底的过程。一个不关心自家软件工具的企业是不会将它们捐赠给软件基金会的。相反,他们只会停止开发这些工具,并会向全世界撂下一句“就这样吧”。让我感到惊讶的是,甲骨文将NetBeans捐赠给Apache是认真的。有很多开发人员参与其中,包括甲骨文的法律团队。他们在仔细审核并清理NetBeans相关问题后,才将其移交给Apache。
这是一个长期的过程,远远没有结束。目前,NetBeans用户使用的大多数功能都已捐赠给Apache,并且可以在 GitHub 上找到。后续还有更多的东西,主要是C/C++工具,以及一系列其他功能和文档。
可以看出,Apache目前拥有7,493,322行NetBeans代码,占Apache磁盘空间的4.38%,Apache NetBeans成为当前最大的Apache项目,可见其规模和复杂性。
Wielenga:NetBeans的“开箱即用”一直是它的优势。当前版本9.0专门针对Java SE的特性而开发,因为NetBeans的其他模块仍在进行捐赠过程中。最终,NetBeans过去的所有内容都将成为未来NetBeans的一部分,只要它们符合Apache Way。
例如,基于GPL许可的东西与Apache的发布策略存在冲突,因此已经有一两个特性从发布版本中移除,比如Hibernate和JSR 295 BeansBinding。不过,虽然无法在Apache发布这些特性,但开发者仍然可以开发包含这些技术的外部插件。
目前,Apache NetBeans特别适合Java SE开发人员。不过请注意,现在可以通过注册NetBeans IDE 8.2插件中心开启其他功能——从8.2版本开始就已经实现的功能,例如用于开发JavaScript、Java/Jakarta EE、PHP和Groovy的工具。Apache NetBeans的新功能包括支持JDK 9 Jigsaw模块系统和JDK 9 JShell。它对JDK 10的支持包括用于处理JDK 10 LVTI的编辑器增强功能(即新的var语法支持),还提供了新旧var语法的转换器。
Wielenga:或许,至少在一开始我们不会与JDK的版本数字同步。从甲骨文接管Sun的时间点开始,NetBeans版本紧随Java,也就是说,JDK 7带着NetBeans 7,JDK 8带着NetBeans,并以此类推。除了讨论Apache NetBeans社区是否必须继续支持Java而不是其他语言和技术之外,我们很难与Java的快速发布周期保持一致。
除此之外,我们也不清楚甲骨文是否仍然关心工具。Java的赞助公司没有制定任何工具战略,这在Java历史上还是第一次。相比之下,IntelliJ IDEA走的是Kotlin路线,而微软Visual Studio的目标并不在IDE上,有些人似乎认为IDE对微软来说并不重要。也许文本编辑才是未来。
Java占主导地位的一个关键原因是过去几十年来一直存在的强大的IDE。不幸的是,目前的碎片化很可能也会对Java产生影响。
由于NetBeans主要面向Java,同时也是用Java开发的,十分依赖于Java,因此NetBeans将继续在Java方向上发展。当然,史上没有完全板上钉钉的事情。如果Apache NetBeans社区决定将注意力转向PHP或Kotlin开发人员,那么就有可能调转方向。在Apache社区中,每个人都有平等投票的权力,任何公司或组织都无法预先确定Apache项目的方向。
Wielenga:我们需要重新考虑我们行业中的那些调查是如何进行得,这些方法存在严重问题。我觉得奇怪的是,是不是只有我们的行业会进行这种草率的调查——据我所知, 自选的民意调查 在所有其他领域都是不可接受的。
既然我们是程序员,也许我们应该考虑采用编程方式进行调查。以Jelastic为例,它“通过放大镜来分析引擎、应用程序服务器、数据库和插件的统计数据,以此得出哪些技术栈评级或使用率更高”,然后我们惊奇地发现“ 超过一半的用户(50.5%)更愿意使用NetBeans来开发他们的项目 “。
地狱给那些进行草率调查的人留了位置。多年来,这些人一直在通过制造噪音来污染软件行业。
Wielenga:NetBeans的代码托管在Github上,我们提供了一个 公共贡献者图表 和一个NetBeans开发人员和用户的活动邮件列表。我们非常欢迎有兴趣成为参与者的开发人员,我们提供了 多种方式可以让各个级别的开发人员参与其中 。
Wielenga:NetBeans是一个Apache项目,它的未来将由Apache NetBeans社区来决定。目前,重点是将甲骨文第二次捐赠的功能集成到Apache NetBeans主代码库中,并将其作为下一个版本的一部分。 我们有一个实验性的路线图,后续还有更多的计划 。
对开发人员的总体影响就是他们需要参与其中。从各方面来说,我们现在都是平等的,每个人都是志愿者,我们需要每个人都参与其中。Apache NetBeans是比其他开发环境更加开放,我们遵循Apache Way,并且提供了很多令人兴奋的机会和众多参与方式。我们期待看到更多的开发人员参与进来。
Wielenga:我们现在既有好消息,也有坏消息。我们现在很自由,但随之而来的是责任。多年来,NetBeans社区抱怨它没有被认真对待,并且没有为NetBeans的路线图、方向和功能做出有意义的贡献。但现在一切皆有可能。
另一方面,现在没有人抱怨他们不了解路线图、无法参与路线图、无法获得他们想要的功能——NetBeans现在不仅是开源的,而且还开放了监管。现在是让NetBeans成为你想要的一切的时候了。 欢迎随时拉取代码请求 ,所有关于Apache NetBeans的信息都可以在我们的 主页 上找到。
感谢并期待比以前更多的参与加入我们!
兼容Java 9和10的NetBeans 9现已推出。
查看英文原文: NetBeans Makes Progress at Apache