AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

NetBeans 在 Apache 基金会取得的进展

  • 2018-08-20
  • 本文字数:2702 字

    阅读完需:约 9 分钟

大约两年前,甲骨文开始将NetBeans 捐赠给Apache 软件基金会,而第一个主要的代码落地大约在12 个月前。从那时候起,他们开始了大量的工程工作。尽管如此,NetBeans 社区仍在取得进展,包括发布了一个新的主要版本。InfoQ 采访了甲骨文高级首席产品经理Geertjan Wielenga,他见证了整个过程。

InfoQ:感谢你花时间参加我们的采访。你能否告诉我们 NetBeans 是如何转变为 Apache 项目的?一路上你发现了哪些有趣的事情?

Geertijan Wielenga:这是一个缓慢而彻底的过程。一个不关心自家软件工具的企业是不会将它们捐赠给软件基金会的。相反,他们只会停止开发这些工具,并会向全世界撂下一句“就这样吧”。让我感到惊讶的是,甲骨文将 NetBeans 捐赠给 Apache 是认真的。有很多开发人员参与其中,包括甲骨文的法律团队。他们在仔细审核并清理 NetBeans 相关问题后,才将其移交给 Apache。

这是一个长期的过程,远远没有结束。目前,NetBeans 用户使用的大多数功能都已捐赠给 Apache,并且可以在 GitHub 上找到。后续还有更多的东西,主要是 C/C++ 工具,以及一系列其他功能和文档。

可以看出,Apache 目前拥有 7,493,322 行 NetBeans 代码,占 Apache 磁盘空间的 4.38%,Apache NetBeans 成为当前最大的 Apache 项目,可见其规模和复杂性。

InfoQ:我听说新版本的 NetBeans 提供了很多新功能。你能否告诉我们它们是什么以及它们对 NetBeans 用户和 Java 开发人员来说意味着什么?你认为新版本的哪些方面对于可能想要尝试 NetBeans 的开发人员最具吸引力?是什么让它有别于其他 IDE?

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 语法的转换器。

InfoQ:接下来我们聊聊新的发布周期——作为工具开发者,更快的发布周期、类文件格式的变化以及新的模型对 NetBeans 产生了怎样的影响?

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 项目的方向。

InfoQ:各种调查显示,Java IDE 市场正在被 IntelliJ 占领,其次是 Eclipse,而 NetBeans 则落后于它们。你认为这是一个准确的评估吗?

Wielenga:我们需要重新考虑我们行业中的那些调查是如何进行得,这些方法存在严重问题。我觉得奇怪的是,是不是只有我们的行业会进行这种草率的调查——据我所知,自选的民意调查在所有其他领域都是不可接受的。

既然我们是程序员,也许我们应该考虑采用编程方式进行调查。以 Jelastic 为例,它“通过放大镜来分析引擎、应用程序服务器、数据库和插件的统计数据,以此得出哪些技术栈评级或使用率更高”,然后我们惊奇地发现“超过一半的用户(50.5%)更愿意使用 NetBeans 来开发他们的项目“。

地狱给那些进行草率调查的人留了位置。多年来,这些人一直在通过制造噪音来污染软件行业。

InfoQ:NetBeans 的开发者社区有多大?感兴趣的 Java 开发人员如何参与该社区?

Wielenga:NetBeans 的代码托管在 Github 上,我们提供了一个公共贡献者图表和一个 NetBeans 开发人员和用户的活动邮件列表。我们非常欢迎有兴趣成为参与者的开发人员,我们提供了多种方式可以让各个级别的开发人员参与其中

InfoQ:未来将怎样发展?NetBeans 的路线图是怎样的?你认为对开发人员现在以及未来的整体影响是什么?

Wielenga:NetBeans 是一个 Apache 项目,它的未来将由 Apache NetBeans 社区来决定。目前,重点是将甲骨文第二次捐赠的功能集成到 Apache NetBeans 主代码库中,并将其作为下一个版本的一部分。我们有一个实验性的路线图,后续还有更多的计划

对开发人员的总体影响就是他们需要参与其中。从各方面来说,我们现在都是平等的,每个人都是志愿者,我们需要每个人都参与其中。Apache NetBeans 是比其他开发环境更加开放,我们遵循 Apache Way,并且提供了很多令人兴奋的机会和众多参与方式。我们期待看到更多的开发人员参与进来。

InfoQ:你有其他想法或建议想与我们的读者分享吗?

Wielenga:我们现在既有好消息,也有坏消息。我们现在很自由,但随之而来的是责任。多年来,NetBeans 社区抱怨它没有被认真对待,并且没有为 NetBeans 的路线图、方向和功能做出有意义的贡献。但现在一切皆有可能。

另一方面,现在没有人抱怨他们不了解路线图、无法参与路线图、无法获得他们想要的功能——NetBeans 现在不仅是开源的,而且还开放了监管。现在是让 NetBeans 成为你想要的一切的时候了。欢迎随时拉取代码请求,所有关于 Apache NetBeans 的信息都可以在我们的主页上找到。

感谢并期待比以前更多的参与加入我们!

兼容 Java 9 和 10 的 NetBeans 9 现已推出。

查看英文原文 NetBeans Makes Progress at Apache

2018-08-20 13:231990
用户头像

发布了 731 篇内容, 共 471.3 次阅读, 收获喜欢 2008 次。

关注

评论

发布
暂无评论
发现更多内容

共筑“新基建” 京东云全面开启渠道合作伙伴招募计划

京东科技开发者

云服务

百度大脑开放日重庆站-智能物流专场报名啦

百度大脑

百度大脑 智能物流 智能物流开放日 重庆站

干货 | 万字详解整个数据仓库设计体系

五分钟学大数据

大数据 数据仓库 28天写作 3月日更

论文免费开源:NB-IoT智慧路灯监控系统

不脱发的程序猿

28天写作 论文 3月日更 NB-IoT智慧路灯 大学生毕业

在线数据迁移,数字化时代的必修课 —— 京东云数据迁移实践

京东科技开发者

数据库 数据迁移

小树系统开发案例(源码)丨小树机器人系统开发流程

系统开发咨询1357O98O718

「 视频云大赛 — 大咖驾到 」下一代技术新浪潮,正由视频云驱动

阿里云CloudImagine

阿里云 音视频 intel

uniapp实现音视频通讯

anyRTC开发者

uni-app 音视频 WebRTC 跨平台 sdk

万物摩尔定律

soolaugust

AI

Python if __name__ == ‘main’ 的作用介绍

HoneyMoose

MySQL的锁

一个大红包

3月日更

跟我学ModelArts丨探索ModelArts平台个性化联邦学习API

华为云开发者联盟

AI 联邦学习 API 华为云 modelarts

Continue 玩转像素点,Python 图像处理学习的第 3 天

梦想橡皮擦

28天写作 3月日更

fil挖矿系统开发|fil挖矿系统软件APP开发

系统开发

华为云应用服务网格最佳实践之从Spring Cloud 到 Istio

华为云开发者联盟

微服务 Spring Cloud istio 华为云 服务网格

一文搞懂三级管和场效应管驱动电路设计及使用

不脱发的程序猿

28天写作 电路设计 三极管 3月日更 场效应管

一个合格的CloudNative应用:程序当开源软件编写,应用配置外置

华为云开发者联盟

云原生 华为云 Cloud Native CCE CSE

「面试高频」秒杀架构的设计套路,你值得拥有

我爱娃哈哈😍

架构设计 架构设计实战 秒杀架构

Java面试必看!阿里(嵩山版)分布式核心原理笔记来了

Java架构追梦

Java 阿里巴巴 架构 面试 架构分布式

「SaaS第一股」微盟集团财报业绩大涨,超预期财报揭示多元投资布局

ToB行业头条

SaaS 微盟

IPFS云矿机系统开发|IPFS云矿机APP软件开发

系统开发

【实战问题】-- 并发的时候分布式锁setnx细节

秦怀杂货店

Java 分布式 高并发

LeetCode题解:213. 打家劫舍 II,动态规划(不缓存偷盗状态),JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【LeetCode】设计停车系统Java题解

Albert

算法 LeetCode 28天写作 3月日更

高频量化交易系统开发功能丨量化交易机器人系统开发详情

系统开发咨询1357O98O718

uni-app跨端开发H5、小程序、IOS、Android(三):理解uni-app框架MVVM思想

黑马腾云

微信小程序 uni-app android iOS Developer 3月日更

Python 打印回车换行

HoneyMoose

收藏!Linux常用命令合集

roseduan

Linux

马特机器人系统开发(成品案例,快速上线)

系统开发咨询1357O98O718

Python 生成 QR 二维码

HoneyMoose

使用“零信任”,不惧“内部威胁”!

龙归科技

管理 数据完整性 零信任 内部威胁

NetBeans在Apache基金会取得的进展_Java_Ben Evans_InfoQ精选文章