I spent a few years of my professional life writing a set of Eclipse plugins and coding an Eclipse “RCP”, or, Rich Client Platform app. This was 2006-2008, so the community was active and Eclipse was winning.
The author’s observation about P2 is astute. It seemed to me that all Eclipse subprojects started to become over engineered in this time period. I worked with EMF and GMF, which became massive projects (in terms of LoC) with lots of complexity. I know there were even efforts to extend the editor into lots of “meta” directions. I suspect all of this meant the project became A Big Pile, and eventually the users could feel it. It’s a pity.
More broadly, my big problem with Java is how damn much IDEs need to know about the language and environment to make the programmer productive in them. When you contrast to environments like Python, Go, and Elixir, the difference is stark.
This feels spot on. Whenever I get inspired to try to fix something I don’t like about Eclipse, I spend a few hours hacking and then get so discouraged fighting the complexity that I give up. The only good documentation is for the deprecated 3.x API. The 4.x API is much more complex and I can’t see any advantage to it.
It’s really a shame, because Eclipse seems like a better Java editor than IntelliJ to me, which is why I still use it. Writing Java in Eclipse feels totally different than any other language/editor experience - I’m manipulating Java syntactic elements rather than editing text. The shift-alt-arrow “select java syntactic element” operation is the best example. Instead of selecting by text-editor concepts like “word” or “line”, it’s selecting by Java concepts, like block or method call. I couldn’t find the equivalent operation in IntelliJ
There’s a quote by someone like Martin Fowler where he says that he’d like an editor that works exclusively by ADT transforms (I couldn’t find the exact quote). At it’s best, Eclipse feels like that. I assume that’s what Lisp people feel like when using paredit.
But wow, is the rest of the experience janky as hell. I’ve maintained RCP apps before, I’ve been writing Java since the 90s, and it’s open source, so in theory I should be able to fix the problems I see. If it weren’t so complex underneath, I’m sure it would still be winning.
It was also widely used as IDE for dynamic languages like python and javascript (especially build called Aptana Studio). Nowadays there are much better alternatives for that, like Atom and VS code. Even vim and emacs became more casual, with “starting packs” and so on.
Eclipse 3.x was a fast, native looking IDE
With Eclipse 4, all that took a U-turn. We had a super slow, buggy and plain ugly UI.
I don’t remember what had changed from 3.x to 4.x. As I remember, it looked almost the same as now even in 2006. These pages has examples of screenshots from 3.x (they mention version number) and I can’t find significant differences:
I still don’t like even IntelliJ’s UI and feel like working in enterprise sweat shop each time I try to use it. I wish analysis/autocomplete engines to be decoupled from editors (like LSP).
Does anyone else feel like Eclipse’s UX was designed by a pack of deranged ferrets?
(With apologies to anyone here if you were the UX person for Eclipse.)
I used it for years, but the whole time it kind of made my brain hurt and never felt like that tool that becomes an extension of your arm like IntelliJ did.
I would go further and say that is harsh towards the poor ferrets. I tried to get into using Eclipse once a year for the better part of a decade (because colleagues “all” used it) and could never get past the visual shock of the UI. the cost of importing or creating a project was understandable, but actual iteration on code felt like trying to pilot a Martian ship designed for something with a different number of limbs while working via a TTY with a 2500ms delay.
The broken m2eclipse plugin is what did it for me. Years and years have passed and no one has cared to address the issues with it. Just assume some sensible defaults for edge cases, like Intellij does. I hate to think how many hours I spent fighting that one issue in eclipse. It pretty much got me to where I am today though. Command line for everything, ide only when actually editing/debugging Java code. Million times more productive than fighting ide’s.
the community edition is pretty nice (in addition to being both 0 cost and open source). But if you need the features of the ultimate, maybe paying doesn’t seem unreasonable.
I spent a few years of my professional life writing a set of Eclipse plugins and coding an Eclipse “RCP”, or, Rich Client Platform app. This was 2006-2008, so the community was active and Eclipse was winning.
The author’s observation about P2 is astute. It seemed to me that all Eclipse subprojects started to become over engineered in this time period. I worked with EMF and GMF, which became massive projects (in terms of LoC) with lots of complexity. I know there were even efforts to extend the editor into lots of “meta” directions. I suspect all of this meant the project became A Big Pile, and eventually the users could feel it. It’s a pity.
More broadly, my big problem with Java is how damn much IDEs need to know about the language and environment to make the programmer productive in them. When you contrast to environments like Python, Go, and Elixir, the difference is stark.
This feels spot on. Whenever I get inspired to try to fix something I don’t like about Eclipse, I spend a few hours hacking and then get so discouraged fighting the complexity that I give up. The only good documentation is for the deprecated 3.x API. The 4.x API is much more complex and I can’t see any advantage to it.
It’s really a shame, because Eclipse seems like a better Java editor than IntelliJ to me, which is why I still use it. Writing Java in Eclipse feels totally different than any other language/editor experience - I’m manipulating Java syntactic elements rather than editing text. The shift-alt-arrow “select java syntactic element” operation is the best example. Instead of selecting by text-editor concepts like “word” or “line”, it’s selecting by Java concepts, like block or method call. I couldn’t find the equivalent operation in IntelliJ
There’s a quote by someone like Martin Fowler where he says that he’d like an editor that works exclusively by ADT transforms (I couldn’t find the exact quote). At it’s best, Eclipse feels like that. I assume that’s what Lisp people feel like when using paredit.
But wow, is the rest of the experience janky as hell. I’ve maintained RCP apps before, I’ve been writing Java since the 90s, and it’s open source, so in theory I should be able to fix the problems I see. If it weren’t so complex underneath, I’m sure it would still be winning.
It was also widely used as IDE for dynamic languages like python and javascript (especially build called Aptana Studio). Nowadays there are much better alternatives for that, like Atom and VS code. Even vim and emacs became more casual, with “starting packs” and so on.
I don’t remember what had changed from 3.x to 4.x. As I remember, it looked almost the same as now even in 2006. These pages has examples of screenshots from 3.x (they mention version number) and I can’t find significant differences:
I still don’t like even IntelliJ’s UI and feel like working in enterprise sweat shop each time I try to use it. I wish analysis/autocomplete engines to be decoupled from editors (like LSP).
I don’t know about that — it means less competition pulling developers away from emacs, which can only be a good thing.
<Fuzzy Personal Preferences / Opinions>
Does anyone else feel like Eclipse’s UX was designed by a pack of deranged ferrets?
(With apologies to anyone here if you were the UX person for Eclipse.)
I used it for years, but the whole time it kind of made my brain hurt and never felt like that tool that becomes an extension of your arm like IntelliJ did.
</Fuzzy Personal Preferences / Opinions>
I would go further and say that is harsh towards the poor ferrets. I tried to get into using Eclipse once a year for the better part of a decade (because colleagues “all” used it) and could never get past the visual shock of the UI. the cost of importing or creating a project was understandable, but actual iteration on code felt like trying to pilot a Martian ship designed for something with a different number of limbs while working via a TTY with a 2500ms delay.
The broken m2eclipse plugin is what did it for me. Years and years have passed and no one has cared to address the issues with it. Just assume some sensible defaults for edge cases, like Intellij does. I hate to think how many hours I spent fighting that one issue in eclipse. It pretty much got me to where I am today though. Command line for everything, ide only when actually editing/debugging Java code. Million times more productive than fighting ide’s.
What are you talking about? I use m2eclipse all the time, it works great.
I struggled with m2eclipse for a long time. Presently it’s working, but I’m not using a system-wide maven.
That’s one setting to switch between embedded maven and system maven. But both work, so shrug.
I agree with (or rather: recognize) the litany of mistakes described in this article.
But, the implicit suggestion that those who still use Eclipse should migrate is shot down right-quick by this: https://www.jetbrains.com/store/#edition=personal
the community edition is pretty nice (in addition to being both 0 cost and open source). But if you need the features of the ultimate, maybe paying doesn’t seem unreasonable.