You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@netbeans.apache.org by Jaroslav Tulach <ja...@gmail.com> on 2023/02/09 04:38:56 UTC
NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
NetBeans isn't just an IDE, but it is a framework!
When designing frameworks and libraries that shall be widely adopted it is
important to increase portability as much as possible. If an API can be used
on different systems, different configurations, the amount of users including
such API in their applications grows.
The best way to hurt portability is to depend on a 3rd party API that isn't
portable. Depending on Win32 API is one such example. Of course, writing in
Java (a language designed to write once and run everywhere) greatly increases
portability. However there is another axis hurting portability - the supported
JDK version. Of course, should a library be widely used, it has to support as
oldest JDK as possible. These days it is JDK8 - the primary reason being that
Android supports JDK8 - as such, should a library be aspire to be used on
Android (as well as regular Java), it needs to stick to version eight. Btw.
not that many years ago, Android only supported JDK6 and many libraries had to
stay with JDK6 APIs and language.
Supporting the ancient JDK gives the application writers using such library or
framework a freedom to choose their JDK. The application writers can then run
on oldest or newest JDK. That's the kind of freedom they want. However there's
transitivity of non-portability - the portability of the final application
cannot be bigger than portability of the least portable library used. This
applies also to 3rd party dependencies a framework or library has: again their
non-portability may negatively affect portability of such framework or library.
I was my NetBeans libraries to be as portable as possible and also run on
Android. I want to use `Lookup` & co.
-jt
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Jaroslav Tulach <ja...@gmail.com>.
Late reply, sorry Antonio. I've just found your message.
Dne úterý 14. února 2023 20:52:28 CEST, Antonio napsal(a):
> Hi all,
>
> I'm afraid I don't have time to read the whole thread. That's a pity,
> because it looks fun!
>
> So I'll ask just a single queston to try to understand the situation.
>
> On 9/2/23 5:38, Jaroslav Tulach wrote:
> > I was my NetBeans libraries to be as portable as possible and also run on
> > Android. I want to use `Lookup` & co.
> > -jt
>
> I understand that you want to run Lookup & Co in Android, but I imagine
> you don't want to run the Enterprise cluster in Android, right? Either
> that or you sport a huge Android tablet/phone!
Right, I don't care about the "clearly IDE" clusters like `enterprise`.On the
other hand I do care about VSCode integration and I do care about Jackpot. I
want Jackpot to continue to run on JDK8 for many years to come.
> Question is: since NetBeans is modular and we now have a powerful Github
> action powered build system that compiles in thousands of different Java
> versions (and more to come by next year)...
>
> ...Wouldn't it be possible to try to keep Lookup & Co (i.e. the platform
> cluster and probably a few others) binary compatible with JDK8 (with a
> specific Github action or something), and let the rest of clusters
> evolve with the times?
Yes, that sounds like a plan. However there is no need to draw the JDK8 vs.
JDK11+ line along the clusters - we can use JDK11+ API in platform thanks to
the modular NetBeans runtime system. I wrote a blog post about it:
http://wiki.apidesign.org/wiki/AlternativeImplementation
E.g. I am for focusing on modern JDKs, but the (platform/core) code has to be
compiled to run on JDK8 and appropriate unit tests must pass on JDK8.
-jt
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Antonio <an...@vieiro.net.INVALID>.
Hi all,
I'm afraid I don't have time to read the whole thread. That's a pity,
because it looks fun!
So I'll ask just a single queston to try to understand the situation.
On 9/2/23 5:38, Jaroslav Tulach wrote:
> I was my NetBeans libraries to be as portable as possible and also run on
> Android. I want to use `Lookup` & co.
> -jt
I understand that you want to run Lookup & Co in Android, but I imagine
you don't want to run the Enterprise cluster in Android, right? Either
that or you sport a huge Android tablet/phone!
Question is: since NetBeans is modular and we now have a powerful Github
action powered build system that compiles in thousands of different Java
versions (and more to come by next year)...
...Wouldn't it be possible to try to keep Lookup & Co (i.e. the platform
cluster and probably a few others) binary compatible with JDK8 (with a
specific Github action or something), and let the rest of clusters
evolve with the times?
Thanks,
Antonio
P.S.: Apologies if this has been asked before.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Laszlo Kishalmi <la...@gmail.com>.
Well,
These are respectable things, on the other hand the "Java 8 Forever" T-Shirt
is getting more and more uncomfortable.
Fortunately, NetBeans is free and open source, many versions are available,
which are supporting JDK 8. If somebody would like to keep it that way, it's
still possible to keep a branch for it or even create a fork.
It seems someone has to pay the price. Either the active community, to keep
the Java 8 Runtime compatibility. Or someone has to step up and say, that
he/she would take care of some necessary backporting and releasing for
Java 8
every now and then.
And again, there is nothing wrong with using and build on an older
version of the
framework. Like, there is nothing wrong to use Java 8. It just has
consequences...
On 2/8/23 20:38, Jaroslav Tulach wrote:
> NetBeans isn't just an IDE, but it is a framework!
>
> When designing frameworks and libraries that shall be widely adopted it is
> important to increase portability as much as possible. If an API can be used
> on different systems, different configurations, the amount of users including
> such API in their applications grows.
>
> The best way to hurt portability is to depend on a 3rd party API that isn't
> portable. Depending on Win32 API is one such example. Of course, writing in
> Java (a language designed to write once and run everywhere) greatly increases
> portability. However there is another axis hurting portability - the supported
> JDK version. Of course, should a library be widely used, it has to support as
> oldest JDK as possible. These days it is JDK8 - the primary reason being that
> Android supports JDK8 - as such, should a library be aspire to be used on
> Android (as well as regular Java), it needs to stick to version eight. Btw.
> not that many years ago, Android only supported JDK6 and many libraries had to
> stay with JDK6 APIs and language.
>
>
> Supporting the ancient JDK gives the application writers using such library or
> framework a freedom to choose their JDK. The application writers can then run
> on oldest or newest JDK. That's the kind of freedom they want. However there's
> transitivity of non-portability - the portability of the final application
> cannot be bigger than portability of the least portable library used. This
> applies also to 3rd party dependencies a framework or library has: again their
> non-portability may negatively affect portability of such framework or library.
>
> I was my NetBeans libraries to be as portable as possible and also run on
> Android. I want to use `Lookup` & co.
> -jt
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Michael Bien <mb...@gmail.com>.
On 09.02.23 05:38, Jaroslav Tulach wrote:
> I was my NetBeans libraries to be as portable as possible and also run on
> Android. I want to use `Lookup` & co.
what percentage of NetBeans can run on android? Are users simply hoping
that it works or are they running our tests on android? Since we aren't
running any on it.
-mbien
> -jt
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Ernie Rael <er...@raelity.com>.
It's too bad there are no NetBeans specific statistics, both IDE and
platform.
It sure would be nice if there were some reference to stats on jdk
version usage
in these deliberations.
What I've seen in reports, the most recent I've found from mid 2022,
> even though Java 11 had been available for more than a year. Since
> then, the balance has shifted between these two LTS release versions.
> More than 48% of applications are now using Java 11 in production (up
> from 11.11% in 2020) with Java 8 a close second, capturing 46.45% of
> applications using the version in production.
>
> Java 17 has not climbed the charts, but in the handful of months since
> its release, it has already surpassed the Java 6, Java 10, and Java 16
> releases. [3]
Most reports show 8/11 neck and neck, with expectations that 11/17 continue
to increase share. [2], [3], [4]. Are there more recent reports around?
Something that seems to be missing from the conversation is an /Apache/
/NetBeans Mission Statement/ (or I just haven't seen it). That would include
who are the target users and with what priorities? Professionals,
Hobbyists,
Educators? A more detailed breakdown might be appropriate. And of course
IDE vs Platform considerations.
-ernie
[1]
https://www.stackchief.com/blog/Which%20Version%20of%20Java%20Should%20You%20Use%3F
[2]
https://sdtimes.com/java/report-percentage-of-oracle-jdk-distributions-in-java-ecosystem-drops-significantly/
[3] https://newrelic.com/resources/report/2022-state-of-java-ecosystem
[4]
https://www.infoworld.com/article/3652408/java-8-still-dominates-but-java-17-wave-is-coming-survey.html
On 23/02/08 8:38 PM, Jaroslav Tulach wrote:
> NetBeans isn't just an IDE, but it is a framework!
>
> When designing frameworks and libraries that shall be widely adopted it is
> important to increase portability as much as possible. If an API can be used
> on different systems, different configurations, the amount of users including
> such API in their applications grows.
>
> The best way to hurt portability is to depend on a 3rd party API that isn't
> portable. Depending on Win32 API is one such example. Of course, writing in
> Java (a language designed to write once and run everywhere) greatly increases
> portability. However there is another axis hurting portability - the supported
> JDK version. Of course, should a library be widely used, it has to support as
> oldest JDK as possible. These days it is JDK8 - the primary reason being that
> Android supports JDK8 - as such, should a library be aspire to be used on
> Android (as well as regular Java), it needs to stick to version eight. Btw.
> not that many years ago, Android only supported JDK6 and many libraries had to
> stay with JDK6 APIs and language.
>
>
> Supporting the ancient JDK gives the application writers using such library or
> framework a freedom to choose their JDK. The application writers can then run
> on oldest or newest JDK. That's the kind of freedom they want. However there's
> transitivity of non-portability - the portability of the final application
> cannot be bigger than portability of the least portable library used. This
> applies also to 3rd party dependencies a framework or library has: again their
> non-portability may negatively affect portability of such framework or library.
>
> I was my NetBeans libraries to be as portable as possible and also run on
> Android. I want to use `Lookup` & co.
> -jt
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail:dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by John Neffenger <jo...@status6.com>.
On 2/8/23 8:38 PM, Jaroslav Tulach wrote:
> These days it is JDK8 - the primary reason being that
> Android supports JDK8 - as such, should a library be aspire to be used on
> Android (as well as regular Java), it needs to stick to version eight.
There are some benefits to that strategy, but there's also a cost, and
I'm not sure it's worth it.
I played that compatibility game with the Microsoft Virtual Machine in
Internet Explorer, which was stuck at Java 1.1 for years. By the time
the Microsoft VM was discontinued, I never managed to catch up to the
then-current Java versions 1.4 and 5, and my software became irrelevant.
People can move away from old technology very quickly. When they do, it
can leave you far, far behind. I'll never let one company (with an
agenda) hold me back again.
In fact, even the LTS releases mean little unless you're a paying
customer. Ron Pressler, author of the JDK Virtual Threads API, has been
trying to get that message out for a long time. Below is a small sample
(see comments from user "pron"):
https://news.ycombinator.com/item?id=33028988
"Anyway, the mention of the perennially misunderstood Java LTS is a pet
peeve of mine, ..."
"There's absolutely nothing special about them [LTS releases], and the
development of the JDK ignores the availability of such offerings."
https://news.ycombinator.com/item?id=22610237
"All OpenJDK versions are created equal."
John
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
For additional commands, e-mail: dev-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
Re: NetBeans is a framework was: Lets talk about JDK 8 (new year edition)
Posted by Arafat BOUCHAFRA <ar...@gmail.com>.
Hi Jaroslav,
In your article about java framework portability, I agree with you a 100%,
and I'll add an important point, that sometimes we deal with low-level
code, by using JNI/JNA, and this precise point makes java portability in
front of a wall, I have learnt that from Limewire source code, in which we
can notice that its really difficult to make a 100% java portable
framework, due that each operating system had its own philosophy, and its
own underlaying low-level librairies.
At the end, to have a fully portable framework, in front of eyes, this one
should care on low-level code, because it's the only thing that will assure
to us a higher portability of this framework.
Regards
Le jeu. 9 févr. 2023 à 05:39, Jaroslav Tulach <ja...@gmail.com> a
écrit :
> NetBeans isn't just an IDE, but it is a framework!
>
> When designing frameworks and libraries that shall be widely adopted it is
> important to increase portability as much as possible. If an API can be
> used
> on different systems, different configurations, the amount of users
> including
> such API in their applications grows.
>
> The best way to hurt portability is to depend on a 3rd party API that
> isn't
> portable. Depending on Win32 API is one such example. Of course, writing
> in
> Java (a language designed to write once and run everywhere) greatly
> increases
> portability. However there is another axis hurting portability - the
> supported
> JDK version. Of course, should a library be widely used, it has to support
> as
> oldest JDK as possible. These days it is JDK8 - the primary reason being
> that
> Android supports JDK8 - as such, should a library be aspire to be used on
> Android (as well as regular Java), it needs to stick to version eight.
> Btw.
> not that many years ago, Android only supported JDK6 and many libraries
> had to
> stay with JDK6 APIs and language.
>
>
> Supporting the ancient JDK gives the application writers using such
> library or
> framework a freedom to choose their JDK. The application writers can then
> run
> on oldest or newest JDK. That's the kind of freedom they want. However
> there's
> transitivity of non-portability - the portability of the final application
> cannot be bigger than portability of the least portable library used. This
> applies also to 3rd party dependencies a framework or library has: again
> their
> non-portability may negatively affect portability of such framework or
> library.
>
> I was my NetBeans libraries to be as portable as possible and also run on
> Android. I want to use `Lookup` & co.
> -jt
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@netbeans.apache.org
> For additional commands, e-mail: dev-help@netbeans.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>