自 2016 年 10 月 Oracle 向 Apache 软件基金会(Apache Software Foundation,ASF)提供了主流的软件开发环境以来,ASF 就开始致力于 NetBeans IDE 的开发。如今,Apache NetBeans IDE 9.0 正式发布了,且在此之前 Apache NetBeans 在社区上针对此版本进行了满意度调查,它会是最好用的 Java IDE 吗?
Apache NetBeans IDE 9.0 版本主要实现了两大目标:
对 Oracle 捐赠的代码就 IP(知识产权)问题进行清理;
支持 Java 9 和 Java 10。
”我自己是一名从事了十余年的后端的老程序员,辞职后目前在做讲师,近期我花了一个月整理了一份最适合2018年学习的JAVA干货(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)从事后端的小伙伴们都可以来了解一下的,这里是程序员秘密聚集地,各位还在架构师的道路上挣扎的小伙伴们速来。“
加QQ群:585550789(名额有限哦!)
对 Oracle 捐赠的代码就 IP(知识产权)问题进行清理
Apache NetBeans 是一个开源的软件开发集成环境,可用于 Java、JavaScript、C/C++、PHP 等语言的开发。NetBeans 本身也是一个开发平台,可以通过扩展插件来扩展功能。
NetBeans 最初由 Sun 开发,Oracle 于 2016 年 9 月将其交给 Apache 基金会进行孵化,并承诺通过三次单独的代码捐赠,以完成 NetBeans 从 Oracle 向 Apache 的迁移。至于其原因,根据开源项目 Oracle 产品经理及开发者倡导者 Geertjan Wielenga 表示,NetBeans 非常庞大,一旦捐赠了一切,它可能会成为 ASF 主持下的最大项目。其次这是一个已有 20 多年历史的项目,它为各种技术提供支持。因为在将这些文件捐赠给 Apache 之前需要对很多的文件进行审核,所以才决定将 NetBeans 分段捐赠。
“并且由于 NetBeans 是模块化的,”他解释说,“进行增量捐赠并不困难。第一次捐赠专注于底层核心,即 NetBeans 平台(例如,模块系统,窗口系统,菜单栏等) 。并且,为了使第一次捐赠的结果可用于一般用户而不仅仅是 NetBeans 平台开发人员,还包括各种 Java SE 功能,例如 Java 项目模板、Java 编辑器和新的 Java 功能,例如支持对于 Jigsaw,JLink 和 JShell。”
最终,Oracle 在去年捐赠了大约 400万行代码。今年 6 月,再次向 Apache NetBeans 进行代码捐赠。捐赠的 zip 文件中包含约 150 万行代码,主要用于构成 NetBeans 处理 Enterprise Java、JavaScript、PHP、Groovy 的各个模块,以及适用于移动和 Web 开发的各种功能。
而 Oracle 所捐赠的 NetBeans 项目的部分代码是受到专利保护的。其中大部分专利是 Oracle 自己的,小部分专利是 Oracle 与其他公司共享的(也就是说这些代码的专利并不在 Oracle 手上,它只有使用权,没有专利权)。所以需要用其它开源代码替换专利代码以解决法律问题。
支持 Java 9 和 Java 10
支持局部变量类型推断
为新的 JDK 10“var”类型提供新提示、错误处理程序和重构:
将显式类型转换为'var'时,支持新的提示。
将 var 类型转换回显式类型,有新提示。
拆分 var 声明时,有错误提示。
var 数组声明时,有错误提示。
支持 Jigsaw 模块化系统
NetBeans 9 支持 JPMS(Jigsaw)。
除了 Classpath 之外,还添加了 Modulepath 列入 NetBeans 模板中。
标准 NetBeans Java SE 项目类型(基于 Ant)可以是单个 JDK 9 模块,只需将 module-info.java 文件添加到默认包中即可。
当然,也为 module-info.java 提供自动补全功能。
全新的 Java 模块化应用程序项目类型
我们添加了一个新的 Java Modular 项目类型。 这允许在一个 NetBeans 项目(基于 Ant)中开发多个 JDK9 模块。
此项目类型比多个 Java SE 项目(每个项目包含一个模块)具备的优势是,通过在 module-info.java 中声明 exports 和 requires 来简单地管理依赖项,且立即编译项目中的所有模块。
支持 Java Shell。
Java Shell 是在 JEP 222 中定义并于 JDK 9 引入的一个新工具,用于向 Java 引入 REPL(读取 - 评估 - 打印 - 循环)功能。
最强 Java IDE?
那么新版 Apache NetBeans IDE 9.0,是否受开发者的喜爱?对此,Apache 在社区上发起了一项满意度调查。日前,该调查结果公布,具体如下:
整体质量
整体品质方面,32.5%的用户认为 Apache NetBeans IDE 9.0 优于 8.2,有 10.3% 的用户认为 8.2 更好,57.3% 的用户认为二者相差不大。
性能
性能方面,依然是大多数用户认为差距并不明显,有 27.4% 的用户认为 Apache NetBeans IDE 9.0 优于 8.2 。
Java Editor
高达 75.2 %的受访用户认为 Apache NetBeans IDE 9.0 的 Java 编辑功能符合他们的预期,另有 18.8% 的人认为还存在一些问题有待完善。其中,吐槽点主要集中在代码完成和编译上。
Java 调试器
对于 Java 调试器,65.8% 的用户认为 Apache NetBeans IDE 9.0 提供了足够的调试支持。有意思的,有 14.5% 的受访用户表示他们根本不使用 Apache NetBeans 中的 Java 调试功能,或许他们正在同时使用另一款 IDE ?
Java 重构
最后,约有 2/3 的受访者认为 Apache NetBeans IDE 9.0 对 Java 重构的支持是合适的。但是,也有超过 20% 的用户认为存在一些需要解决的问题。比如有评论指出“删除和重命名文件不一致会引发异常,更改接口类型有时也会导致异常,接口类型会发生变化,但所有实现都需要手动更改“等等。此外,有 8.5% 的人表示他们不使用 NetBeans 的 Java 重构功能。