sdedic commented on PR #5609:
URL: https://github.com/apache/netbeans/pull/5609#issuecomment-1476890956
let me share my overall opinion on this. In the *current state* of the
codebase, we *need_ nb-javac*. As JDK codebase continues to evolve, newer
versions of nbjavac are eventually released. Given there's *automated process*
for building nb-javac out of *upstream sources*, it's rather straightforward to
prepare a new build. We *are using* nbjavac to analyse user's sources AND we +-
support analysis by Javac itself given the IDE runs on the "correct" JDK.
I think we really want to ensure that "running on correct JDK" and "running
on possible JDK" (that implies nb-javac to supply the targetted JDK behaviour)
gives the same results, or *at least* does not fail, if the user switches
nb-javac for javac (or vice-versa). From this point of view, **I fully
support** integrating the PR and eventually running the tests **when a new
version of nb-javac** is included. I would assume that maintainer will continue
to update nbjavac as JDK team releases newer versions. Until that cooperation
works, we can easily keep the test.
There were several opinions voiced in the thread
> @mbien: nb-javac is optional if NB is run on the right JDK
I need to remind: people who *use NetBeans* to produce code (as opposed to
people *developing NetBeans*), and also people *using NetBeans as tooling
platform* have very different *business* requirements that require them to run
on just specific JDKs (even the IDE), and have hard requirements for the
tooling platform's environment (i.e. build machines in company cluster may have
some restrictions). I want to emphasize, is that it does not matter if that
requirement (for those groups of our users) is 'technically sound' or not -
they may exist for purely business, legal or security reasons - which may be
even silly, but impossible to revert from the developer seat.
If we *require* our users to "run on the right JDK" - such groups of people
may be forced to simply drop NetBeans completely and look for other options. If
we're lucky, mandating 'just the newest JDK' will be an unneccessary PITA. We
do not have that much 'spare users' that we can just throw these groups over
the board just because it makes NetBeans development more pleasant. Oracle's
Graal/Cloud team may be also affected by such approach.
So the assumption that 'everyone can use any JDK' so NB "runs on the correct
JDK" is IMHO wrong. I feel that the discussion emphasizes the importance of
development "our common pet project" (Apache NetBeans) too much and optimizes
for it, while deprioritizing our *users*. I happen to be
- NetBeans IDE developer,
- NetBeans IDE-based application developer: the Apache NB language server,
for example, but also the IdealGraphVisualizer from Graal is based on NetBeans
IDE *including* java support
- NetBeans platform - based application developer (my incubating personal
project).
Even as IGV maintainer, I often needed to compile+patch NB platform to trace
bugs, or even develop patches or small features for NB in order to make my
*real* project successful -- I do that routinely with maven and gradle (while
developing NetBeans). In all situations, having the *flexibility* to work with
development environment dictated by my business, rather than "obey NetBeans
dictate" is very helpful and makes dev's life a lot easier as there are other
pieces included with their own limitations. I will cover this in a separate
discussion related to "drop JDK8".
I believe that maintaining a bundled, well-tested compiler is a benefit for
those user groups with "strange requirements" - as long as the nb-javac keeps
releasing updated versions after its upstream releases. Now it does, so we
should act accordingly. At the same time, we can just plan for an exit
strategy, which may be fairly simple. We do not need to play what-if games
*now* to block a thing that would, for example, alert us when a problematic
change happens in some future JDK javac version.
>> @jlahoda : One advantage of having a firm compiler during build is less
dependence on specifics of the compile-time JDK.
> @matthiasblaesing: I think this is an academic discussion. If we can't
build with the current JDK, it is a bug that must be fixed.
I don't think this is not an academic discussion: I agree that when we
detect that our codebase is not compilable with new JDK, we should address that
SOON. But I do not see that as a valid argument for or against the discussed
change, rather as an unrelated test and policy that we should establish anyway.
As jlahoda noted, usage of "most updated" but bundled javac *allows* modern
optional modules to be written when the author decides he does not need (want)
to support older JDKs. In particular modules that require e.g. JDK17 APIs to
run. Doing so *without* nb-javac would require everyone working on NB codebase
to upgrade to JDK17 ... which is not an option (see above).
> @mbien : I do fear that this PR here is just bootstrapping the option for
a future switch to frgaal with the argument
It might. But a 'fear that something might happen' should not cause to block
a change just because "it might be extended in the future, maybe". You/we
should be aware of such extension may happen. Rejecting a purely 'piecemeal'
approach is a valid position, if it is the (only/major) supportive "argument"
if such proposal comes in the future.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists