Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Historically NetBeans rely on (nb-)javac to provide Java editing features, refactorings, etc. This has some positive aspects, but also some downsides.

...

  • Distributing GPLv2+CPEx licensed component in Apache software is hard

    • it would be way easier to use plain `javac` from a JDK

    • nb-javac is downloaded by end-user on demand via autoupdate
  • On demand download is problematic

  • Testing matrix is complicated

    • each supported JDK needs to be tested twice - with nb-javac  and without nb-javac 

  • Every bug/problem one needs to know whether nb-javac  was or wasn't in use

  • nb-javac  is a fork of JDK's javac

    • nobody likes forks

    • ironically Arvind's team is part of JDK organization - e.g. it maintains own fork of JDK's `javac`

  • Upstream JDK javac hasn't been IDE ready up to JDK15
    • see below for details
  • Without NbJavac one needs to run NetBeans on latest JDK to get latest language features
    • Serious disadvantage compared to competitors IDEs
    • They have their own Java parsers and support latest features on any JDK

What is nb-javac?

"nb-javac" consists of two libraries (nb-javac-api.jar and nb-javac-impl.jar) that provide a NetBeans-specific fork of the Java JDK Java compiler.

...