Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ide-dev] The LangEclipseIDE project

Hi Simon,

You sound frustrated beyond the point of no return.

I believe this is OK, not everyone needs to help to improve the Eclipse IDE. Not sure if your employment forces you to stay with Eclipse, otherwise I hear the Scala support in IntelliJ is pretty good.

Or try to contribute code. I have not checked but I assume from your comments that you have not tried this path yet.

Best regards, Lars

Am 12.07.2015 12:27 nachm. schrieb "Simon Schäfer" <mail@xxxxxxxxxxxxxxxxxxx>:


On 07/07/2015 09:22 AM, Sebastian Zarnekow wrote:
Hi Simon,

after all Eclipse is Open Source - you cannot expect other to step up and do exactly what you need essentially for free.

Please find inline comments.

On 7 July 2015 at 01:57, Simon Schäfer <mail@xxxxxxxxxxxxxxxxxxx> wrote:


On 07/06/2015 03:38 AM, Lars Vogel wrote:

Non-blocking code completion with a stream as input would IMHO also enhance the JDT code completion quite a bit.

Simon, did you ever try to contribute that back to JDT?

No, I did not. Since we write everything in Scala nowadays, we would have to rewrite our code in Java if we want to contribute it back.

So you started writing everything in Scala from the very first day so you never had the chance to contribute back?
Yes, since the very beginning most of its code is written in Scala. But that is not the only problem. The release cycles of Eclipse are also suboptimal. Since we don't release our own plugins at the same time when Eclipse ships a new major version, we couldn't easily integrate any new features that go to the platform in our own releases.
 

Also for the limitations in eclipse.core could you give same examples?

The first that comes to mind are the internals. As a Scala developer I care a lot about (subjective) great code quality and its maintainability. By looking at the internals of eclipse.core, eclipse.ui and nearly everything in JDT the only impression I get is that its developers tried hard to take Effective Java (the book by Joshua Bloch), reverse all the rules and then apply them to one codebase. Code quality may not matter if you can pay all the devs but it matters if you want to find new contributors and nowadays there are not even a lot of payed devs anymore.

This is all very vague and a general criticism that doesn't help those who do the hard work on the platform. Saying 'everything is bad thus I don't tell you what exactly is wrong' is just not helpful.
I know but I don't expect that anyone looks at these problems, therefore there is no point in wasting time writing even more text.
 

A related problem is that Eclipse wants to be a platform to build IDEs upon but refused for its entire existence to provide the abstractions to build an IDE. Nearly everything is in JDT, which was only made for Java. Every other language implementation had to either fork JDT, extend it or rewrite everything from scratch. Extensiblitiy looks different. The LangEclipseIDE project comes 10 years too late actually, people moved on to IntelliJ and they will never come back.

Agreed, JDT is not easily extensible in its core abstractions. I also understand that many different parties are crying for an extensible JDT. But this is the tragedy here: so far nobody contributed any patches back that would change this situation.
 

When I look at the code of Eclipse (better: the projects mentioned above, which are relevant for building an IDE) I always get the impression that no one of the contributors actually understood what abstraction means. This more or less means that nothing is extensible. There is this great plugin system Eclipse is built upon but it was created to handle JDT and when the chance of handling other languages came up, it was not taken.

Which kind of extensible APIs do you miss? Again saying 'nothing works' won't yield anything.
This is difficult to explain. Very often I have the feeling (when I look at an interface and at its corresponding implementations that are shipped with the platform) that the interfaces are just extracted from the implementation. I can even remember that I saw classes that took an interface as a dependency in their constructors and immediately downcasted it to a concrete implementation (without any instanceof checking). Generally, such components can't be reused in any way.
 

Instead of pushing IDE features, people pushed the RCP stuff. While doing that they forgot that Eclipse is being sold as an IDE and by refusing to accept that they moved the entire platform on ground. Over the years it was easy for IntelliJ to take over. And other platforms like Atom, Visual Studio Code and even Neovim are rising because they fill gaps Eclipse just can't fill.

I don't know why the Eclipse foundation just couldn't see that the IDE sector is what made Eclipse important and what keeps Eclipse alive. I only know that they killed Eclipse for IDE/plugin developers by completely fucking up the internals and by doing that they also killed the platform for all of their users.

Agree, I also think this is a problem. Still it's not how things work. In the end, the members of the foundation pay the bill and thus they help to steer. On average, they don't build IDEs though.
I don't understand the point of the Eclipse Foundation. They pay bills but refuse to lead further development of the platform or at least pretend further design choices. But now there is no point anymore in whining - that comes 10 years too late. Developers lost trust in the platform and they are leaving together with their users.
 

As a concrete example, just look at eclipse.ui: All of the improvements you and others did there lately were mostly none for me or for my coworkers. In fact there were so many regressions introduced we couldn't even report all of them back, we just get pissed off. It took me half a year to even adopt Luna and Mars doesn't look better. In fact I only moved on to Luna because I had to. This is not how you gain trust in a platform. What did I hear lately? Android IDE completely moved to IntelliJ, guess why.

Still no concrete point that could be worked on so far.
I understand that you're frustrated, but staying in the mood won't change anything. Since you build an IDE on top of Eclipse, you probably have an interest to improve the platform. It would already be helpful if you could at least name concrete issues or file tickets for the things that piss you off.
I doubt it, really. Internal issues can't easily be fixed especially because the people who wrote most of the code don't see its limitations. Furthermore, the Eclipse Foundation showed in the last years that they have no further interest in the IDE part of Eclipse, which is the only thing I'm interested in. I don't know if any of this RCP stuff is successful, at least it is of no use to me and I doubt it is useful to anyone else who wants to write an IDE. I can hardly see any improvements to the IDE functionality since 4.0. The only thing that comes to mind is a GUI improvement: Quick Access (the improvements of 4.0 were not even needed to implement this one). Except, everything in it is hardcoded, you can not even add your own entries that are not in one of the ~6 predefined categories.

The first thing that needs to be done before any technical problems can be addressed is to raise awareness to the Eclipse core contributors that all of their features may be used by every plugin out there. In my opinion Quick Access shows a lot of what is wrong with Eclipse: Dump implementations, too many people with write permissions to the main branches, no or bad code reviews, new features are forced to everyone (instead of making them the default but optional) and of course no awareness that others may have other interests+needs.

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

Back to the top