[ANNOUNCE] Apache NetBeans (incubating) 9.0 Released
The Apache NetBeans team is proud to announce the release of Apache NetBeans (incubating) 9.0.
Apache NetBeans (incubating) 9.0 constitutes all the modules in the Apache NetBeans Git repo, which together provide the NetBeans Platform (i.e., the underlying application framework), as well as all the modules that provide the Java SE-related features of Apache NetBeans. In short, Apache NetBeans (incubating) 9.0 is a full IDE for Java SE development.
Read more on our download page:
New & Noteworthy features of the 9.0 Release:
Work is being done on bringing netbeans.org to Apache. In the meantime, refer to the below for all details related to Apache NetBeans:
Disclaimer: Apache NetBeans is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
What's "nb-javac" in Apache NetBeans?
Not long after you start up Apache NetBeans (incubating) 9.0 on top of JDK 8, after accepting the license agreement and handling import settings, you're confronted with this dialog:
What does that mean? And why, when you start up Apache NetBeans (incubating) 9.0 on top of JDK 9 or above, do you see the following, instead:
Note: The above appears in a balloon popup in the bottom right the first time you start up Apache NetBeans (incubating) 9.0 on JDK 9 or above. If you miss out on seeing or responding to the message, go to Window | IDE Tools | Notifications anytime afterwards and you'll have another opportunity to install it:
Let's start by looking at the question, what is "nb-javac"? Well, "nb-javac", which is a patched version of "javac", i.e., the Java compiler, has long been part of NetBeans, providing a highly tuned Java compiler specifically for the Java editor in NetBeans, and wasn't part of the donation of NetBeans to Apache since, of course, the Java compiler (or a fork thereof) cannot be part of the donation. That's because Oracle is not donating Java to Apache, instead, it is donating NetBeans. The Java compiler belongs to the JDK which is licensed to Oracle.
Separate from Oracle's obvious understandable unwillingness to donate a Java compiler fork to Apache, or anyone else, Apache would have a problem with a fork of the Java compiler being distributed from Apache since the Java compiler is LGPL licensed.
In short, neither Oracle nor Apache want the Java compiler to be part of NetBeans in Apache. Yet, NetBeans gains a lot from the patched Java compiler, as explained below:
Also see this reference for details on the situation:
However, using model APIs added in JDK 9, Apache NetBeans can make use of the Java compiler directly from the JDK, as explained here:
So, as can be seen, from Apache NetBeans running on JDK 9 and onwards, you have a choice: either use the Java compiler from the JDK, which means you're not benefiting from a number of enhancements especially added for NetBeans over many years in the patched Java compiler, or you need to explicitly add the patched Java compiler, since it is provided by Oracle and its licensing is such that you need to take responsibility for installing it yourself. On the other hand, if you're using Apache NetBeans with JDK 8, the choice is simpler, i.e., you need to install nb-javac, otherwise you will not be able to use Java in Apache NetBeans.
It's not an ideal situation. On the other hand, if someone has a better solution, please feel free to propose that solution and also consider providing a pull request too!
What's Happened to My Favorite NetBeans Plugins?
What's the reason for that and what can be done?
Well, Apache NetBeans (incubating) 9.0 is specifically focused on Java SE only. Why? Because NetBeans is extremely large (it will be by far the largest project in Apache, once everything has been donated), which is because it has existed for over 20 years and provides support for a very wide range of technologies. Since so many files all needed to be audited before they could be donated to Apache, the decision was made to donate NetBeans in pieces, i.e., not everything at the same time because that would have taken much too long.
And since NetBeans is modular, doing an incremental donation was not difficult to architect. The first donation focused specifically on the underlying core, i.e., the NetBeans Platform (e.g., the module system, window system, menubar, etc etc) and, to enable the result of the first donation to be usable for general users and not just NetBeans Platform developers, the various Java SE features were included too, e.g., Java project templates, Java editor, and new Java features such as support for Jigsaw, JLink, and JShell.
So, does that mean that all the features that are not integrated into Apache NetBeans (incubating) 9.0 cannot be used? No, it does not. Go to Tools | Plugins in Apache NetBeans (incubating) 9.0 and, in the Settings tab, register the NetBeans IDE 8.2 update center:
Though note that none of these features have been tested with Apache NetBeans (incubating) 9.0, they should work, in most cases. If not, don't panic. Just sign up to the Apache NetBeans mailing lists, as explained at netbeans.apache.org, and start a new thread where you'll highlight some problem you've encountered, after which someone will help you or you'll be advised to create a new issue in Apache NetBeans Issuezilla.
Where is all this documented, how can anyone know what will be donated in which order, etc? Easy, go here, to the end of this page:
Tentative Schedule for Apache NetBeans (incubating) 9.0 Release
We're currently running two processes, both of which it would be great if everyone would participate in -- and in fact it's really important that everyone does these two things:
- Vote in the PPMC thread:
Doing the above means more than putting a +1, it means downloading the sources, building them, looking at keys, etc, as described above.
- Fill out the Community Acceptance survey, which is focused on the functionality (versus the sources, which is what the PPMC thread is about), which takes about 5 minutes:
The Community Acceptance Survey runs until Sunday the 22nd of July. Issues found in the meantime will hopefully not be critical and not require a new voting candidate, but we'll need to see how things go and nothing can be guaranteed here of course -- i.e., someone could find a blocker of some kind during the community acceptance survey process.
Hopefully, nothing going wrong and everything going well, we'll then be at a point to start the IPMC vote thread on the 23rd and, if everything goes well, release Apache NetBeans (incubating) 9.0 at the beginning of August.
After that we'll work on the 2nd donation, relicensing it, moving it into master etc.
Apache NetBeans and Java EE Productivity in Burkina Faso
Last Saturday (June 30, 2018) I was invited to COFAN (Conférence au Faso sur le Numérique) to present tips for building enterprise Java applications. COFAN is a conference divided into multiple sessions on a variety of technologies. It was started last year and the second tour has been taking place since May and it is sponsored by the government of Burkina Faso.
I was given the opportunity to talk about enterprise Java in general and to show how NetBeans can be a great tool to develop strong and professional Java enterprise applications.
A room filled with an attentive audience was very enthusiastic. They were also satisfied by the answers to their questions, while some decided to continue using NetBeans, with others promising to start working with it for the first time!
Pictures of the event are below:
Posted at 09:13PM Jul 03, 2018 by Constantin Drabo in Technology | |