your concerns are about why change is needed, and about whether
change is safe. thats fair, and shows the care for the
ecosystem.
believe me, thousands of tools, frameworks and platforms have
gone through exactly this: Java, Spring, Hibernate, Angular,
React, Django, Rails, .NET... you name it. and all of them
shipped major versions that broke things and scared their
ecosystems. companies kept saying "we can't migrate right now."
something broke and someone fixed it and the platform came out
stronger. it is the normal lifecycle of healthy software.
and i say this from what i see. my day job is migration. i live
in the middle of this friction every day. i can see that
"companies will be scared off by v5", but they may be also
scared off by the perception that Eclipse is not moving forward.
on not knowing the exact list of changes for v5: you are right,
and i will own that. i like the change set emerging from the
community, not dictated by one person. and this gets in to the
depth of OSS culture:
"bring a PR and we will discuss it" (sounds open but is
actually hard for people without knowledge about many repos with
hundreds of bundles and their relations and inter dependencies
and the overarching architecture and the prevailing tradeoffs)
"this is what Eclipse looks like today, this is why it feels
slow and heavy, this is why users drift away, this is what we
need to fix that (call it something else than v5 if that word
scares folks) this is what the tradeoffs are, and this is the
way forward. commits welcome."
a shift from gatekeeping to beckoning. a shift from mailing list
discussion into a contributor pipeline.
and thank you for the devcall. i always had the invite, but
missed every time. will try to join next one.
This Message Is From an External Sender
This message came from outside your organization.
on resources: i agree on the constraints, but gently
disagree on the inference. a v5 commitment is not a demand
for more volunteer hours from existing contributors, but a
clear message to companies that investment here has a
direction and a destination. setting a clear vision and
roadmap can help drive more contributors.
How
would you get contributors interested in doing that work that
wouldn't be possible without a "v5 commitment"? Also note that
I think that most companies earning money from Eclipse (and
the RCP applications they are building) would be scared off by
hearing about a v5. Not getting enough resources "despite"
being a rewrite/big new thing is pretty much the main problem
Initiative 31 is facing so I don't see why this would be
different.
on per-change compatibility windows: here our difference is
very tiny! you describe multiple changes with individual
migration windows moving at different speeds. the issue with
that is, in the absence of overarching commitment to remove
those, the layers can become permanent, and Eclipse 4 is the
evidence. the e4 compatibility layer had no coordinated
sunset, so it is still there.
Many
products would probably never migrate, this isn't really an
option in my opinion.
on AI: my AI argument is about Eclipse's survival and
relevance, not about forcing personal preferences or
changing any individual's workflow.
I
still have no idea why a rewrite would be necessary or even
help with integrating AI when everything necessary is there.
And AI shouldn't be the reason for a rewrite breaking
compatibility anywhere else. Anything done "for AI" shouldn't
negatively impact anyone who doesn't want it. (I'm also tired
of the "AI is necessary to survive" argument, you don't need
to repeat it to me.)
the
changes need to happen
If
you are talking about agreeing on specific changes that need
to happen, I don't see that. While there are some things I'd
like to see (including work on CDS which doesn't require
anything impacting compatibility for example), I don't think
there are that many changes relevant here that I think need to
happen. As you mentioned wanting to set a "clear vision and
roadmap", I don't think you even know the changes that "need
to happen" which I'd argue is a prerequisite to agreeing on
these changes with anyone.
changes
need clear migration paths
migration
need explicit expiry
I'm
not so sure about this. While I don't have an issue with
migration paths, there are many reasons why plans like that
need to change. If people didn't finish getting rid of a
deprecated feature, that might be an argument for keeping it
(at least for some time) and people can still get the
advantages of the new feature while the old version is still
around. While it can be helpful to define a plan for when
something should be removed, that would rather be a "minimum"
time.
rcp
as a class I citizen.
I
guess that is something I personally agree with (despite not
working on any RCP applications).
To
be honest, I also don't like the idea of a compatibility
"layer", I prefer having building on top of existing things
(e.g. capability to use JPMS modules within OSGi and e.g.
generating module descriptors at compile-time (tycho) and
using the existing approach where necessary) without really
deprecating the "old" approach.
As I
previously mentioned with regard to scaring people with a v5,
I would strongly recommend not calling it v5. I don't think
people want that.
That
being said, please note that I'm not a committer on any
Eclipse project, I am not involved in decisions. I am just
saying my personal opinions (which may or may not help you
with improving your proposal). However, in addition to the
mailing lists, I think you might be interested in the devcall
every two weeks:
https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/wiki/Eclipse-IDE-%E2%80%90-Developers-Community-Call.
There, some people working on Eclipse including some people
working on RCP apps meet and you might be able to gather other
opinions on that topic. You can find an invite in the calendar
linked on the top of that page. However, I would still
recommend providing concrete evidence on why you think it's
necessary to break compatibility in a significant way (at
least I'm not convinced of that at all).
On 29/05/2026 17:37, GIREESH
PUNATHIL wrote:
Daniel: great! thankful to see you acknowledging i)
competitive gap exists ii) lazy activation could eventually
become default and iii) need of compatibility window. i
think we are converging on many aspects!
on resources: i agree on the constraints, but gently
disagree on the inference. a v5 commitment is not a demand
for more volunteer hours from existing contributors, but a
clear message to companies that investment here has a
direction and a destination. setting a clear vision and
roadmap can help drive more contributors.
on per-change compatibility windows: here our difference is
very tiny! you describe multiple changes with individual
migration windows moving at different speeds. the issue with
that is, in the absence of overarching commitment to remove
those, the layers can become permanent, and Eclipse 4 is the
evidence. the e4 compatibility layer had no coordinated
sunset, so it is still there.
on RCP: agree 100%. any v5 process should consider RCP as
the exemplary use case when defining migration paths,
deprecations, sunset and timelines. if a v5 migration path
works for RCP, it works for everyone.
on AI: my AI argument is about Eclipse's survival and
relevance, not about forcing personal preferences or
changing any individual's workflow.
in summary, i think we agree on most parts:
- the changes need to happen
- changes need clear migration paths
- migration need explicit expiry
- rcp as a class I citizen.
where we may differ is whether the compatibility layer needs
a coordinated migration path and expiry. to me, that
definition is what a v5 draft could contain.
WDYT?
This Message Is From an External Sender
This message came from outside your organization.
> 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.