Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-vision] Compensator - The-Back-to-the-Roots-IDE


Thanks that I've been able to join todays call to present what I've been
working on since some time and I'm going to make public short before
EclipseCon NA.

I've uploaded 2 videos to Youtube and attached some pictures:
* https://www.youtube.com/watch?v=AnEzUqNZOgs
* https://www.youtube.com/watch?v=NnpA4TJ8dgA

Thanks - looks interesting, and encourage your exploration but I actually think we got
overlapping "fixes" coming into eclipse and/or trying to be put into it.

As outlined in the call I'd appreciate if you are not blogging / posting
these URLs to the web but you are free to show it to co-workers and
people you think could be interested.

will do.

The projects code name is "Compensator" because one of possible useage
scenarios is in conjunction with Eclipse Flux.

Nice name ;)

I've attached a highlevel overview of Compensator (compensator_arch.png)
which at its heart is a framework on top of the Eclipse 4 Application
Platform who enables anyone to built a custom IDE.

Do I read the diagram correctly that instead of one workspace you got multiple workspaces,
one in each external process ?

One thing I do get though is that I feel this approach could just as well be mapped into editors in eclipse plugins and ignoring the javafx part you would have all the benefits ?

Project has a different notion:
-------------------------------
We've all grow to the notion of "Project" as a thing in the Eclipse
workspace and most of our the applications you built consist of multiple
projects.

Compensator uses the "Project" term more in alignment with how you use
it a company where you have "Project 'Petstore sales app'", "Project
'Petstore OpenShift Webstore'", ... which consist of:
* 1 .. n - modules (=what you used to call Project in your Eclipse
workspace)
* 1 .. n - Bugtracker / Ticketsystem
* 1 .. n - CI Server Jobs
* 1 .. n - git repositories
* ... (depends on your project e.g. for cloud apps it could be a
production system which you monitor, manage resources, ... )

Funny - this is actually almost how I see working sets in eclipse could be used for.

No core resources:
------------------
Another main concepts is that there's a very hard split between UI and
Core which is deeper than the one you see in the Eclipse SDK because
Compensator itself does not have the concept of a Workspace like you
know it from your favorite IDE.

I think this is a good thing - its one of the things eclipse originally intended
but never really enforced and price is being payed now.

Not relying on Core-Resources makes it easy to e.g. use Compensator as a
frontend to a remote managed source base using something like Flux.

not following this here - if just talking file resources you could handle this
by implementing a custom filesystem for flux can't you ?

Adopt the e4 & OSGi & java8 programming model:
----------------------------------------------
If you browse the sources you see I'm using DI to wire stuff. I use
context functions, custom annotations (e.g. to inject lists of
OSGi-Services, ...), RATs, the EventBroker, ... .

I use declarative services for all contributions and extensions - no
more use of the extension registry.

Okey.

Since the UI is built on top of JavaFX I have Java8 as a prerequisit and
make use of Streams, Lamdas, Method-References as much as possible.

JavaFX as Vogel mentioned is unfortunately a risky bet.

I was hoping Oracle would back it more but seems its just not happening.

Besides the limited/unknown future support - another issue here is that openjdk actually dont yet have JavaFX builds.
Only Oracle's JDK has it, right ?

Act as a simple Notepad++
-------------------------
See http://youtu.be/AnEzUqNZOgs

The application should be useable as editor who does support syntax
highlighting and some basic features like an outline. In the video at
youtube you see the simple editor shows an outline for Java and
JavaScript files.

This really should just be added to eclipse IMO. a good fallback editor.

For Java I use ASTParser the from JDT (only only the AST parser) [1] and
for JavaScript I'm using Nashorn [2][3] but I'm looking into replacing
JDT at for Notepad++ usecase with the use of tools.jar.

does tools.jar provide a java lexer/parser that can be used for editors ?

One of the key things in the Notepad++ use case is that it has to as
simple as possible to define basic highlights and make it easy and
simple to install and update.

While eg the highlighting for Java & JavaScript is defined using Java
code which is 95% equal to the code you see in your Eclipse IDE - the
highlighting for the python language you are seeing in the video is
defined through a mixture of a DSL & CSS [4] hence installing such a new
highlighting is really easy.

Is this independent of javafx ? could we reuse this engine in eclipse plugins ?

The DSL+CSS approach (which is similar to Orion regex+CSS syntax
highlighting) should make it as easy as possible to define a
highlighting for your favorite language.

+100

We'll also provide you a step by step wizard guiding you through the
creation of the highlighting.

Another important topic in this regard is to make it as easy as possible for people to install the application and we are using the java-packager who packages our application as an msi, setup.exe, .deb, .rpm, .dmg and
.pkg including the JDK with it which allows us also to put it into the
OS-X app store.

Act as a Project IDE:
---------------------
There's no need for perspectives - the UI is specific to the project you
are working at. Maybe it is only my style of working but the only 2
perspectives I use are:
* Java
* Debug

I missed this in the video - what do you mean the UI is specific to the project ?
they all looked pretty static/same ?

I've not yet implemented the replacement for the Debug perspective but I have some ideas who are going hand in hand with the missing console view.

Perspectives are reused to keep multiple projects open in one IDE UI
instance!

Like you see in the 2 attached screenshots the UI is kept very (maybe
too) minimal and I've completely removed the top level toolbar and
integrated the "Quick Access" into the area of the MenuBar.

Thats where I always wanted eclipse quick access to move - be like Help search function that is default on OSX.

btw. in case you have missed it we (Red Hat) are contributing two things to eclipse for Mars that you might like.

One is Nested project support - this is in Mars milestone builds now and adds a filter and content providers to Content navigators that avoids the "flat space" of projects in eclipse (it still exist as a flat space in the model, but the UI is hiding that detail)

Another is easymport which is in incubation that removes the need for knowing upfront what import wizard to use. This one feature simplifies usage of eclipse *greatly* from a new user perspective. Just open your file or folder and things just works (assuming you have the right plugins installed)

Now if we could get something like your approach for a generic editor to do basic outline and syntax highlighting I would argue
we got something really enticing.

/max
http://about.me/maxandersen


Back to the top