[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
|
Re: [eclipse-dev] eclipse sdk v5 ❤
|
> while each of these is technically valid, they all are
proposals to optimize within the current architecture, not helping
evolution based on changing technologies, programming practices
and expectations.
That is the point I'm making. There are a lot of opportunities
for improvement within the current architecture (and some with
possibly major non-breaking changes). With people not having
enough time/resources to improve performance within the "current
architecture", I don't have any reason to think why people would
be willing to take on the even bigger effort of making major
changes to how everything works. For example, you could take a
look at Initiative 31 (https://github.com/swt-initiative31/documents/blob/main/report/overall_report.md)
which was about changing SWT to use a single (more modern) stack
across operating systems. It concluded that it would be possible
(some things are even being integrated - without significantly
breaking compatibility) but it would be too much work without
companies willing to invest the necessary amount of resources.
> lazy activation? add a system property
That system property would be a compatibility layer that could
eventually default to lazy activation (but using eager activation
at first).
> here is my take: the traditional IDE shell (the menus, the
views, perspectives, the edit-compile-debug loop) is under genuine
pressure from AI tools. they are already replacing significant
parts of the classical developer workflow and making many of these
views and actions redundant.
While this may be applicable to many people, there are also a lot
of people that don't want to use AI tools. Any change made should
not negatively affect that workflow (in my opinion).
Another thing you should consider is RCP applications which is
one thing where Eclipse is used a lot (and which contributes a lot
to the resources spent on developing the Eclipse IDE). With there
being many applications based on the Eclipse Platform, changes
like that (especially something like replacing the class loading
approach with JPMS modules) have a noticable (not to say
disproportionate) affect on these applications as well whereas
forcing them to rewrite their application to improve the standard
IDE is not reasonable.
To sum it up, I think it's probably better to make smaller
changes in a compatible way (and deprecate and remove these
compatibility helpers/layers in the future) rather than creating a
v5 where there are a lot of changes at once (which also won't be
completed within the next few years). That would also allow moving
faster with some parts of that effort than with others. Instead of
one compatibility window, there can be a compatibility window for
each change requiring it.
On 28/05/2026 13:49, GIREESH PUNATHIL
via eclipse-dev wrote:
at this point i want to step back from individual topics, as i
think otherwise the top level point gets lost. every time a
structural concern is raised, the response has been a local fix:
startup too slow? some JDK flag gives us 20%
lazy activation? add a system property
lingering stale APIs? policy is in place
while each of these is technically valid, they all are proposals
to optimize within the current architecture, not helping
evolution based on changing technologies, programming practices
and expectations.
the competitive reality is that eclipse is losing ground[1]. it
is not an option or an opinion, instead reality. AI SDK
integrations ignored us. IMO, other IDEs didn't become popular
through better Java support but with better architectural
choices from day one. The 20% startup improvement from AOT is
real and great, but that 20% of 5 seconds is still 4. VSCode
starts in 2. that gap is architectural and is not tunable.
my v5 proposal is not "rewrite everything and break the world.”.
it is a request for a draft:
- what the next major version should look like
- a formal statement about architectural directions. with
reasons and contexts
- a defined compatibility window for the old path [ example:
apple migrated from ppc (p) to inel (x) to arm (a). easily. each
time, a compatibility layer ran the old arch while the new one
matured. and each time, there was a hard deadline. and each time
the ecosystem moved because it had to! ]
Stephan asked the most relevant and honest question: "does
anybody still need us?" lets all try to answer that directly
rather than deflect it. here is my take: the traditional IDE
shell (the menus, the views, perspectives, the
edit-compile-debug loop) is under genuine pressure from AI
tools. they are already replacing significant parts of the
classical developer workflow and making many of these views and
actions redundant.
This Message Is From an Untrusted Sender
You have not previously corresponded with this sender.
From
what I recall, the "expected" startup improvement with these
things for most applications wouldn't be much more than 20% so
I'm not sure how much that would actually improve in that
area. Also, my point was that there may be a possibility to
get some of that improvement by supporting externally loaded
classes in some way.
If
you think about improving startup time using lazy activation,
you could try asking Heiko Klare (who participated in that
aforementioned discussion) how changing the activation policy
to lazy (or eager) would affect their startup time since they
are interested in better startup time. If you really want lazy
bundle activation by default, I think the way to go would be
creating a system property or similar that affects the default
(and if some plugin explicitly specifies the bundle activation
policy, I guess that should still be respected).
However,
I don't see any reason why breaking changes in a "v5" would
motivate people to do performance work.
On 28/05/2026 06:58, GIREESH
PUNATHIL wrote:
thank you Daniel for the link - impressive work and
impressive numbers! but pls note that the 20% startup
improvement with JDK assistance will further benefit if
assisted by eclipse' own re-architecture: probably in order
of multiples. for example VS code has extension lazy loading
by default, enforced at the platform. any extension needs to
request explicitly to get activated, or else it simply is
not loaded. so you are not loading most of the IDE until its
actually needed.
i too haven't heard any one talking about moving away from
OSGi. and i agree, moving away from OSGi isn't practical
too. but OSGi with lazy load enforced at the platform is is
different from the current OSGi. lazy activation existed
since long ago. The fact that it hasn't solved Eclipse's
startup performance problem in ~20 years is an evidence on
the architectural improvement opportunity. in summary, bold
experiments would not happen without bold thoughts, and
major enhancements (such as fast bootstrap) will not happen
without major architectural shifts either.
This Message Is From an External Sender
This message came from outside your organization.
> OSGi
classloading is slow due to one loader per plugin, among
other reasons. JPMS is light weight and can load classes
faster. can v4.x accommodate / entertain this change? even
as an experiment?
I
am not sure whether anyone would be willing to move away
from OSGi in any capacity. If there is a possibility to
change equinox to use module layers with one class loader
for some of the bundles (if there are no split packages or
other things, possibly with tycho automatically creating a
module descriptor for bundles where this is possible), I
guess that could be worth an experiment but it would be
quite a bit of effort (though probably nothing in
comparison to rewriting all bundles). Since you mentioned
startup time here, you might want to take a look at this
discussion I created which is about using JDK features for
better startup time:
https://github.com/eclipse-platform/eclipse.platform/discussions/2060 However,
I think that parts of that may work better with a somewhat
stable classpath and it might be useful to get in touch
with the JDK team to find a solution where Eclipse/OSGi
can tell the JDK about that in some way (e.g. where these
classes come from, possibly one archive per class loader).
I
don't think getting rid of OSGi is reasonable even for a
v5 if that requires all plugins to change without there
being a compatibility layer of some sort.
> -
plugin registry loading is heavyweight and slow because
all the installed plugins are loaded up front. can we do
lazy activation in v4.x?
I
am not sure but I thought that at least some plugins are
loaded lazily? See also
https://stackoverflow.com/a/17592449/10871900. I
guess what might be needed here is making sure that it is
actually used where it is possible?
On 27/05/2026 18:01, GIREESH
PUNATHIL wrote:
Thank you Daniel! a couple of examples:
- OSGi classloading is slow due to one loader per
plugin, among other reasons. JPMS is light weight and
can load classes faster. can v4.x accommodate /
entertain this change? even as an experiment?
- plugin registry loading is heavyweight and slow
because all the installed plugins are loaded up front.
can we do lazy activation in v4.x?
there are many ways through which we could make eclipse
light weight, above are just few examples.
when you say lightweight is a "matter of willingness",
pls remember none of the v4.x releases were willing to
do this, and we kept on losing ground. and "we could do
this in v4.x itself but havent" has become
indistinguishable from "we won't." a major version on
the other hand creates the forcing function and opens up
opportunities to experiment.
why do you think eclipse agent project is slow moving?
IMO it is due to the complexity of the code base. a
light weight IDE would make AI integration seamless.
but from the fact that eclipse agent project is slow, do
you allude that eclipse users do not want AI SDK? and
from a lot of people don't was AI assistance in SDK, so
does the majority of the user base?
This Message Is From an External Sender
This message came from outside your organization.
Hi,
> * an IDE
that is lightweight and fast. why this is needed?
because all the competing IDEs are light and fast. are
they more attractive because they are light and fast?
yes. This requires breaking changes with a major
version.
Can you
elaborate what "breaking changes" would be needed for
this? It is already possible to remove plugins from
the default packages (e.g. Mylyn) to make parts of it
faster and make some changes to the default
perspectives for a more "lightweight" experience (that
is just a matter of willingness). When it comes to
performance, there are probably a lot of optimizations
that could be done without breaking compatibility
(which haven't been done yet). Furthermore (on the
"lightweight" side), it may also be possible to
refactor some things into different OSGi bundles if
most users don't need a part of the functionality and
keep the existing bundle with the extracted bundles as
dependencies to preserve compatibility.
> * an IDE
that AI assistants can easily integrate into. major
LLM SDKs build first class integrations for other
IDEs. AI assisted development is the new baseline and
when we don't have a credible AI story. developers
switch IDEs and do not return. and we can't do modern
AI integration cleanly onto a 20 year old plugin
architecture. This requires breaking changes with a
major version.
I think the
Eclipse Agents (https://github.com/eclipse-agents/eclipse-agents/)
proposal/project already does that but there isn't
sufficient interest to actually put it forward. I
don't see any reason why any of this would require any
breaking changes.
What exactly
are the APIs you need to make breaking changes for and
how "breaking" are they? How would you get most of the
existing plugins working with v5 (including ones that
may not be maintained)? Could you point out what
deprecated APIs (or design decisions) are actually
causing the issues you mentioned? From what I can see,
both of the issues are things that could be addressed
without major breaking changes but I don't feel like
having a v5 in sight will make people more willing to
implement these things. I think the main problem is
not being bound by staying on v4 but by the
development capacity for improvements. And if minor
removals are needed, these are probably still
possible.
That being
said, there are a lot of people who don't want AI
assistents at all on their systems. Building the tools
they use around AI assistents would likely cause
annoyances for those people.
Yours,
Daniel
On 27/05/2026 15:37,
GIREESH PUNATHIL via eclipse-dev wrote:
thanks Aleks for the links. the incremental API
removal policy looks good. i did some random search
and found APIs that are 15+ years old living with
deprecated tag. if the policy is working smoothly,
why are some of those APIs still present? i guess
the answer is API removal is hard when they are
fused into the core design of the IDE.
and that was just one item from the list of concerns
(breaking changes accumulating over time,
exponentially harder for future migrations,
introduction of awkward workarounds...) i raised.
to me, what are the compelling case for v5? what are
things that cannot be developed without breaking v4?
* an IDE that is lightweight and fast. why this is
needed? because all the competing IDEs are light and
fast. are they more attractive because they are
light and fast? yes. This requires breaking changes
with a major version.
* an IDE that AI assistants can easily integrate
into. major LLM SDKs build first class integrations
for other IDEs. AI assisted development is the new
baseline and when we don't have a credible AI story.
developers switch IDEs and do not return. and we
can't do modern AI integration cleanly onto a 20
year old plugin architecture. This requires breaking
changes with a major version.
This Message Is From an Untrusted Sender
You have not previously corresponded with this
sender.
i want to resume this discussion , but i lost
the old mail thread (more than an year old),
hope the title will help sync with the thread in
the email discussion archive.
what do people think about moving to v5?
i strongly support this.
What would be the driving
new feature/api/design for v5? If such a
development is happening yet - it would better be
shared with the community so more context could be
put in the discussion. At least I'm not aware of
anything like that.
if backward incompatibility and ecosystem
breakage is a concern, the one time manual
efforts for migration is now drastically reduced
with several AI tools available.
on the other hand, if we don't move, breaking
changes accumulate over time, making it
exponentially harder for future migrations,
while code gets filled with awkward workarounds,
old APIs still linger while better designs are
possible....
That's totally not the
case:
Are you actually looking
for the "marketing" effect of v5? I ask as so far
I fail to spot any technical reason for v5.
_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/eclipse-dev