In a surprise move, Oracle has submitted a proposal to the Apache Software Foundation Incubator to adopt the NetBeans IDE — written in Java, for Java — as an Apache project. The proposal is very well written, easy to understand and well worth reading. I was at Sun when it acquired NetBeans in 2000 and have been a fan of the project in varying degrees ever since. Here are my views about the move to Apache.
My suspicion is this first and foremost represents a political stabilisation move. I have heard on the grapevine multiple times rumours that NetBeans was going to get cancelled, yet there are teams in Oracle that really need it to exist and will work on it if it does. Fortunately each time it has come back from the brink. This seems to be a fix for that political reality inside Oracle.
By moving to independent governance and losing the Oracle CLA, others can join in with confidence their contribution won’t be used against them. More importantly, contributors also no longer need fear the transient decisions of cost-cutting Oracle VPs impacting the long-term viability of the project. Oracle’s Java team still needs NetBeans in order to make tools releases supporting new capabilities in Java 9 and later, so are likely to engage. Rather than withdrawal, this looks more like leveraging the ecosystem around NetBeans to sustain development while keeping Oracle’s costs in line with the direct benefit NetBeans delivers to them.
Some cynics have pointed to the earlier Oracle move dumping OpenOffice.org on Apache, which has resulted today in a project with very few experienced participants that is leaving millions of Windows users repeatedly vulnerable to security issues. When OpenOffice was dumped on Apache – with approximately no support from Oracle and a skeleton staff from IBM – it was partly a response to a community activity that Oracle opposed. Given almost all the people capable of making it succeed were already succeeding elsewhere, it was doomed to fail from the start despite the (perhaps ideologically inspired) optimism from certain quarters that helped Oracle miss the reality.
The NetBeans move is completely different. In this case, Oracle has recruited extensive community support as well as committing a number of its own developers. I think this is likely to prove successful, and is a good use of the Apache Way that I welcome and support. Moving to Apache is a great choice, as their extreme transparency will build confidence in non-Oracle committers that there are no behind-the-scenes agreements that could undermine their engagement. I’m expecting this move to give NetBeans a second life and if the proposers were willing I would be pleased to be added to the list of initial committers.
Some of the consequences of the change:
- Apache does not immediately accept projects as Top Level Projects, but rather places them in its Incubator project while all the aspects that are a poor fit with the Apache Way are resolved. While the proposal is solid and has clearly been written with help from Apache mentors, the final form when it becomes a TLP at some point in the future (maybe a year?) will undoubtedly be different.
- Since it is mandatory for all Apache code to be licensed under the Apache License version 2, the project will drop the widely disliked CDDL as well as the Java-flavoured GPLv2 with Classpath Exception. This may cause some downstream users issues if they have opted to use the GPL, since GPLv2 is incompatible with the Apache license.
- The NetBeans trademarks and domain names will become the property of the Apache Software Foundation, ensuring there are no concerns by community members about unexpected uses of them in the future.
- NetBeans includes quite a bit of upstream code under open source licenses other than the Apache License. Most of them are what Apache calls “category B” so present no significant issues but there are a number of files under “category X” licenses that will have to be replaced. There’s going to be some rework needed as Apache will require all the category X code to be gone before NetBeans can graduate into a TLP.
- Sun and then Oracle required copyright assignment from contributors; this will end. Apache does have a similar-looking legal agreement for contributors to sign but it is less of a barrier to corporate employees as the beneficiary is the ASF (and it is a copyright share rather than an assignment). Moreover, Apache’s agreements are well understood by corporate legal departments so can be waved through in many cases.
- NetBeans has always had many admirers and downstream users, because it offers a reusable application IDE framework in addition to being an IDE itself. By moving to Apache, these users can “put their wood behind one arrow” and create a stronger, more sustainable project in a way that was never encouraged by Sun or Oracle.
- The move to Apache does raises question of how Java 9 (and especially 10) will gain tools traction. Sun traditionally used NetBeans as the place to create “reference tooling” for new language features, and one of the reasons for retaining closer control of the code was to make that possible.
Overall, this is a welcome move as well as a progressive one for Oracle – maybe they will have an open source community success on their hands for the first time? If it all works out as well as I hope it might, perhaps they could do the same with OpenJDK? Other companies would do well to take note of the benefit of moving their projects under an independent umbrella!