Oracle started the process of donating NetBeans to the Apache Foundation almost two years ago, with the first major code drop occurring almost 12 months ago. Since then, a huge amount of engineering work has been underway to effect the cut-over to the new organisation. Despite this, the NetBeans community has continued to make forward progress, including a new major release. InfoQ spoke to Geertjan Wielenga, the senior principal product manager at Oracle, who has been overseeing the process.
InfoQ: Thanks for taking time to talk to our readers. Can you start by telling us how the transition of NetBeans into being an Apache project has gone? What surprises have you found along the way?
Geertijan Wielenga: It’s been a slow and thorough process. An organization that does not care about its tools does not donate them to a software foundation. Instead, such an organization would simply stop developing the tool and would say "that’s all, folks" to the world. What has surprised me, and continues to surprise me, is the seriousness with which Oracle is donating NetBeans to Apache. I.e., there are many developers involved, as well as Oracle’s legal team. Only after closely auditing and scrubbing an area of NetBeans is it handed over to Apache.
It’s an immense process and by no means complete. Right now, most features used by most NetBeans users have been donated to Apache and are found in GitHub. There is still a lot more to come, primarily the C/C++ tools, as well as a range of other features, as well as documentation.
As can be seen there are currently 7,493,322 lines of NetBeans code at Apache, comprising about 4.38% of Apache disk space, making Apache NetBeans significantly the largest Apache project right now, which explains its size and complexity relative to other projects.
InfoQ: I've heard on the grapevine that the new version of NetBeans has many new features and developments. Can you tell us about them, and what they mean for NetBeans users and Java developers? What aspects of the new release do you think are most compelling for developers who might want to try NB? What sets it apart from other IDEs?
Wielenga: The "out of the box" aspect of NetBeans has always been its strength. The current release, 9.0, focuses specifically on Java SE features, since other modules constituting NetBeans are still in process of being donated. Ultimately, everything that has been NetBeans in the past will be part of NetBeans in the future, so long as they fit within the Apache Way.
For example, anything GPL-licensed does not fit into Apache’s release policy, and hence one or two features have already had to be dropped from the release, notably Hibernate and JSR 295 BeansBinding. However, though these kinds of features cannot be released from Apache, there’s nothing stopping anyone from making external plugins that incorporate these technologies and distributing them themselves.
Right now, Apache NetBeans is especially suited to Java SE developers, although note that the NetBeans IDE 8.2 plugin center can be registered, enabling other features, though from the 8.2 release, such as tools for working with JavaScript, Java/Jakarta EE, PHP, and Groovy, to be used. New features in Apache NetBeans include features for working with the JDK 9 Jigsaw module system and the JDK 9 JShell. Its JDK 10 support includes editor enhancements for working with the JDK 10 LVTI feature, i.e., new var support, including converters from/to the new var usage.
InfoQ: Moving on to the new release cycle - as a toolmaker, how has NetBeans been impacted by the faster pace, the changes to the classfile format and the other aspects of the new model?
Wielenga: Probably, at least not initially, we’ll not be keeping up with the release numbering of the JDK. I.e., from the point in time where Oracle took over Sun, the NetBeans releases kept track of the Java releases, i.e., JDK 7 was accompanied by NetBeans 7, JDK 8 by NetBeans 8, etc. Quite aside from the discussion of whether the Apache NetBeans community should necessarily continue to favor Java over other languages and technologies, the rapid release cycle is going to be tough to align with.
Separate from that, it is not altogether clear whether Oracle cares about tooling, anymore. For the first time in the history of Java, its sponsoring company has no tools strategy at all, completely leaving it up to a range of organizations to fall in line. It looks like IntelliJ IDEA is increasingly going the Kotlin route, while Microsoft’s Visual Studio is not aiming to be an IDE, and some seem to believe that an IDE is no longer relevant. Perhaps text editors are the future.
A key reason for Java’s dominance has been the strong set of competing IDEs that have been around over the past decades. The current fragmentation is likely going to have an impact on Java as well, unfortunately. Where all this will lead is a problem, with Oracle’s commitment to Java, in light of the plethora of other technologies and languages being worth questioning.
Since NetBeans is and always has been primarily loyal to Java, while also being created in Java and hence dependent on Java itself, it makes sense that NetBeans will continue strongly in a Java direction. But, of course, there are no guarantees. If the Apache NetBeans community were to decide, together, to focus more strongly on being focused on PHP developers or Kotlin developers, that would always be a possible direction. Under Apache, everyone’s vote is equal, and no company or organization can pre-determine the direction of any Apache project.
InfoQ: Various surveys have shown that the Java IDE market is heading towards a world where IntelliJ is the most widely-used, followed by Eclipse, with NB some way behind. Do you think that's an accurate overall assessment?
Wielenga: We need to rethink how surveys are done in our industry, there’s a serious problem with our approach. I find it very odd indeed that only in our industry is it acceptable to do sloppy surveys — self-selected listener opinion polls are unacceptable in all other fields, as far as I know.
Since we’re programmers, maybe we should think of programmatic ways of doing surveys instead. Take, for example, Jelastic, which "analyzed the current statistics of engines, application servers, databases and plug-ins under a magnifying glass, revealing which stacks are the most rated and more actively used", and there it suddenly turns out that "more than a half of our clients (50.5%) prefer to build their projects in NetBeans"
There is a special place in hell reserved for those who create sloppy surveys, who have polluted the software developer industry with absolute noise and nonsense over many years now.
InfoQ: How large is the community of developers that work on NetBeans itself? How would an interested Java developer get involved with that community?
Wielenga: As the code is hosted on Github, we have a public contributor graph as well as active mailing lists for NetBeans developers and users. Developers who are interested in becoming participants are always welcome (the NetBeans community is famously welcoming) and we have a number of ways in which developers of all levels can get involved.
InfoQ: What about the future? What's on the roadmap for NetBeans? What do you think the overall impact on developers has been and will be?
Wielenga: Well, NetBeans being an Apache project, the future is decided by the Apache NetBeans community. Right now, the focus is on integrating features from Oracle’s second donation into the Apache NetBeans main repo and delivering that as part of a next release. We have a tentative roadmap as well, with a lot more planning coming up.
The overall impact on developers will be that they will need to get involved. We are all equal now, in every sense, including the fact that everyone is volunteers and we need everyone to be involved. Apache NetBeans is more open source and open governance than any other development environment, following the Apache Way, and with many exciting opportunities and numerous ways to get involved. Looking forward to seeing even more developers involved, starting by joining the ‘dev’ mailing list.
InfoQ: Any other thoughts or comments that you'd like to share with our readers?
Wielenga: There’s good news and bad news, now. With freedom comes responsibility. For many years, the NetBeans community has complained that it has not been taken seriously and that it has not been able to contribute meaningfully to the roadmap, direction, and features that constitute NetBeans. Well, now all that is possible.
The flipside of that is that no one can now complain about not knowing about the roadmap, about not being able to be involved, and not getting the features in NetBeans that they’d like to have — not only is NetBeans now open source, it is for the very first time open governance. Time to scratch your itch and enable NetBeans to be everything you’d like it to be. Pull requests are welcome all day and any day, and all the info about Apache NetBeans can be found on our main website.
Thanks and looking forward to even more involvement and even more participation than before!
NetBeans version 9, compatible with Java 9 and 10 is out now.