Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand JDT from Java to JVM Languages #15

Open
nniesen opened this issue Jul 20, 2022 · 2 comments
Open

Expand JDT from Java to JVM Languages #15

nniesen opened this issue Jul 20, 2022 · 2 comments

Comments

@nniesen
Copy link

nniesen commented Jul 20, 2022

Eclipse is not a viable IDE for projects with mixed JVM languages (Java, Groovy, Kotlin, Scala).

Don't get me wrong, I love Eclipse and have been using it since dumping IntelliJ 20+ years ago. I like that I can have over a 100 library, service, and multi-module projects open and the IDE still functions.

The problem is that we don't get to dictate the languages used for all our projects. Many of our projects have mixed languages; e.g., Java or Kotlin main and Groovy tests or Kotlin in one module and Java in another. With the flood-gates open, Kotlin is increasingly being added to the mix.

I haven't been able to get JDT, GDT, and Kotlin to coexist since Eclipse 2020-06 (4.16) and even with that version the Kotlin editor doesn't function. The Kotlin plugin has always been incomplete, buggy, and prone to causing JDT issues. The GDT plugin has to patch the JDT because apparently the JDT or Language Server teams aren't willing to make the necessary accommodations to avoid said patching. That likely causes even more issues for other plugins attempting to interface with the JDT.

Eclipse needs to own the JVM Language modules/plugins if it wants to remain viable as a JVM language IDE. Now that Kotlin has quite a bit of traction, it's pretty clear that IntelliJ doesn't care about creating a Kotlin plug-in to compete with their own IDE. Oracle doesn't provide the Java module. Apache doesn't provide the Groovy module. Why should IntelliJ provide the Kotlin module? So far, Eclipse has been lucky to have the reasonably well maintained Groovy Development Toolkit.

So for now, Eclipse is untenable as an IDE for mixed JVM language environments.

@gayanper
Copy link

No sure if this is the right place, @iloveeclipse please move this discussion if this is not the right place.

@nniesen I agree with you. Modern application are polyglot, not all modules are written in Java. Trying to adapt JDT to support such a polyglot environment will be a huge undertaking for the JDT team, they are already busy with keeping up with Java release cadence. And I don't think we will find enough community members to support this kind of work either.

One possible solution is some big organization fund such a task. But i know that most organizations are focusing on vscode and IJ. Out of those vscode seems to be (at least for now) a good option.

What do you think if we (a small community) focus on developing language servers for other JVM languages ? We already have a some what functioning kotlin LS (Language Server) and DA (Debug server adapter). There were few for groovy, but not sure about the status.

Then what remaining is to connect each of those language servers to read each other's outputs in case your module has both Java and Kotlin source files. otherwise it should work fine, until all projects are under a single build system reactor.

Now this will benifit both desktop users and cloud users of vscode and also the Eclipse Che project as well. To support this in Eclipse IDE, we might need some small changes in JDT (if it not there still) work together with LS and JDT in usecases where you have sources from multiple JVM languages in same project. Eclipse LSP4E will provide support to integrate such LS and DAP into Eclipse IDE, But may be the user experience might not be same as vscode or Eclipse Java IDE. But that can be improved going forward when more users are using LSP4E daily.

WDYT ?

@nniesen
Copy link
Author

nniesen commented Jul 22, 2022

I agree the JDT is probably not the correct place for this. I struggled with where to post this long overdue request given the current Eclipse project and community structures. There's not really a place to suggest roadmap items for large new feature requests. I ultimately posted here because the Groovy and Kotlin plugins piggyback off the JDT. The Language Server seems like what is needed to support polyglot applications in a pluggable way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants