Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [che-dev] Eclipse Che extension flow


I am OK with restarting/reloading the browser when the extension changes. IMHO full dynamic extension mechanism is a lot of work and gets complicated very quickly with
extensions that depend on other extensions.

When we are referring to server extensibility what does that really mean? Restarting one machine?
Whole workspace? and reloading the IDE?

For instance adding an agent to a workspace that also brings
extensions to IDE. Would that require a restart of the IDE server and the browser? I think for this scenario we should shoot for an agent starting and Browser reloading. After all IDE server
in this case is more or less a proxy.

Thanks,
Gorkem

On 16 Jan 2018, at 15:15, Sergii Kabashniuk wrote:

Hello community. You probably noticed
that we are already working on the improvement of our
client extensibility model, also we start thinking
about or server extensibility model too. One of the
interesting discussion around commiters we have is
how IDE should behave if the extension has been changed
during the development of this extension or number of extension has been
changed.
In other words, you enable or disable it.

There are two schools.
Classic. All known to me browser-based(not browser probably too) IDEs: IDE
reloaded.
Profits: Simple extension lifecycle. No need to know
how to restore the state of IDE in case of deactivating it.
Since it simple, less probability of to make a bug.
Cons: Depend on the number of plugins and architectural decision it can be
slower than the second one.
Usage: In regular development, this cycle will happen only once at the
start of IDE. So I would say this is the most used scenario. Like
99.999999% of extensions real life.

Alternative: in case of deactivation plugin restore what he changed in IDE,
in case of changing, it changes only affected part.
Profits: In some cases, it can be faster.
Cons: More complex API, no 100% guarantee that in all cases
a developer will make proper changes to restore a state of IDE and
this can cause that IDE became unusable and to restore it has to be
reloaded.
Usage: only for heavy extension development. Or maybe then you
experimenting this set of plugin. A very rare scenario on the real life of plugging. Honestly, with IntelliJ-like experience, I forget the last time
I've installed a new plugin.


What do the most of developers think:
we should go in the class school path at the same time
we should follow best practices that provided by tools like npm and angular when your changes in the source would be visible without any interaction.
You just need to setup the toolset once.
Why:
1. Simpler API means easy and faster to start doing something.
2. Less error-prone.
3. Time spend on thinking what should be done more in the alternative path
can spend on development experience and more reach api.
4. The first path doesn't mean that second path is not possible in future.


Thoughts.
_______________________________________________
che-dev mailing list
che-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/che-dev


Back to the top