And, sadly, the UX aspect isn't even the biggest problem with Eclipse (all "IMO" of course). Performance, especially memory usage is a huge issue (especially on 64 bit systems) and the updater/plugin mechanism is too damn unreliable. If you use more than 2 or 3 plugins, it's almost inevitable that you will, at some point, try to update something and get the infamous "could not complete operation" message when adding a new plugin, or updating an existing one. Now, that's not really the problem... the problem is that eclipse just vomits a page and a half of error messages and opaque version numbers and strings at you, when this happens... instead of giving useful help on how to resolve the situation.
All of that said, I still use (and, in many ways like) Eclipse, but it is very frustrating to see these same problems drag on for years and years.
Eclipse update mechanism (called p2) actually at is core is very powerful and can actually find out/remedy the installation/update but it was just never exposed in the UI used by Eclipse IDE's.
Simply explained before Kepler p2 would just try and do exactly what you told it to "install these 2 plugins" and if its dependencies somehow conflicted it would give up ("could not complete operation").
In Kepler if this situation occurs p2 will try remedy the situation and try find out which plugins would need to be updated or maybe even downgraded to make it possible for you to install your plugins.
Thus we are some that actually care and do what we can to improve it - this feature got in with help from @prapicault
And for full disclosure i'm @maxandersen from the conversation OP linked to and lead of JBoss Developer Studio.
I still love eclipse. I'm not ashamed to admit it. I've helped people sell businesses and go public with this damn platform creating millions in revenue along the way. When it's powering my livelihood and my employers happiness, I feel like something went right somewhere.
It's a shame the UX in 4.2 has been such a thing to focus on.
I guess it all depends on what factors you want to optimize for, like fun or success.
It's tempting to make these sorts of claims because a mild level of user hostility plagues most FOSS gui apps that we encounter, but I think it's more useful to think instead of how difficult it apparently is for organizations to make effective UX design decisions.
It's equally likely that a "horrifyingly designed UI" (much like Eclipse) came out of an Enterprise Software shop.
None of the incentives are aligned toward optimizing user experience (i.e. rarely do the people who use the software the most have any say in how it gets built). And, because the way responsibilities are divided (i.e. one team per set of functionality, I imagine), no one in the leadership structure is empowered to make big changes that affect everyone; and so you're left with small incremental improvements and shitty error messages.
I have used it on and off since the early days, and as hardware got faster, Eclipse... somehow has not. Its responsiveness on my 2011 Macbook Air SSD is truly shocking from the point of view of both UX and productivity.
I use it every day at the moment, and this is the only thing that I am constantly noticing.
The plugin compatibility thing can be a massive pain if you get bit by it too, of course, but doing plugins right is quite hard I think, and Eclipse isn't the only one failing there.
I often thought that this is just because it is Java. And almost all other Java apps feel similarly sluggish.
But then compare IntelliJ. It really feels very snappy. The startup time is not too long and then everything is extremely fast and responsive.
For me on Windows, crashing is extremely rare. I've used it on just about every project I've worked on to great benefit. I typically run JavaEE config, and then add in m2, FindBugs, Subclipse, ADT, and sometimes Aptana when I want to check on it.
I never notice memory because I never run out of memory. Where configs is everyone using that memory is such an issue?
Not me. I run it on Linux. Fedora Linux on my personal laptop, and Ubuntu on my $DAYJOB machine.
I never notice memory because I never run out of memory. Where configs is everyone using that memory is such an issue?
It's not so much about running out of memory, as just the fact that Eclipse consumes a lot of memory, which means it doesn't play nice with other apps. I have 4GB of RAM in my $DAYJOB machine, running 64bit Ubuntu, and after I load Eclipse 4.2 with a few projects open, it's not uncommon to find the resident image size sitting at over 1GB. So, that wouldn't be a problem in isolation, but now add in an instance of JBoss running, PostgreSQL, a few browser windows with a bunch of tabs open, a PgAdminIII window, a couple of Gnome Terminal windows, etc. and pretty soon the hard-drive is just thrashing like crazy, essentially freezing the entire system, for minutes at a time. To be fair, everything is contributing to that, but Eclipse is one of the main culprits.
In short, Eclipse mostly works for what I do, and while it frustrates me at times, there isn't enough pain there to motivate me to throw away the investment I've made in learning to use, configure, and customize Eclipse - for an alternative which may or may not even be better. Also, Intellij didn't always have the Open Source version, and I generally avoid using any software that isn't F/OSS. So for the longest time, my only real options for a Java based IDE were Eclipse or Netbeans. I played with Netbeans a little here and there, but never found it compelling. shrug
I m still a intellij user at home but at work we use yoxos and it is very good to customize and maintain eclipse configuration.
One thing is for sure, intellij (the dark theme) looks beautiful. Makes me wonder if eclipse should still be spending (wasting?) resources developing their own GUI toolkit.
This could be very hard to fix. Does Eclipse have all the interfaces defined for correct behavior in all cases? how long would it take all the plugin developers to code the implementations for "Is this action sensible on this object?" and have that happen every time the selection changes?
1. Startup time. I just ran it twice on my machine. First time it took 20seconds before showing the splash, then 10 seconds after that (I'd never launched it before). Second time it took over 5 seconds to launch completely
2. Cluttered UI. menu bar + status bar + project explorer + tasks + outline take up between 20 and 70% of the window depending on how big I have the window (god help me if i try to use it on my old laptop with its 1300x700 resolution)
3. Difficulty of editing stand alone files. It's just a pain in the arse editing files that aren't in the project, and that you don't want to be in the project
For comparison, sublime text 2 launches in <1second on the same machine, and that includes restoring 100% of the previous working state, including unsaved changes to all files, even if the computer crashed and it wasn't closed down properly.
edit: I almost forgot
4. It also takes 1-5seconds to close.
To me, it is the difference between a car and a bike. The two serve different purposes.
I don't mean to downplay problems with Eclipse. I remember that it was confusing when I first started using it. In the intervening years, I think the problem with eclipse is one of missed opportunities (or misplaced priorities).
I use SlickEdit for C++ and it starts much faster, but while it can "do" java, its completely ineffective compared to IntelliJ or even eclipse. OTOH IntelliJ occasionally hugs all 8 cpu threads trying to grok spring bean usage across three maven projects. Its a price I'm willing to pay.
And finally theres TextMate and Joe or on these knackered solaris boxes, vim. Can't really beat vim for start-up time, but unlike some of my genius friends, I can't get my head around it for large projects.
My point is, if your use case is open editor, open file, edit file, close file, close editor, then you don't want an IDE, and there are plenty of great editors for your use case.
I don't think startup time or even close-time are particularly important. If you're using an IDE, you shouldn't expect to open it up and close it time and time again in one session, unless...
I think the main pain in the ass you missed about Eclipse is that it crashes a lot. I actually quite liked Eclipse until my project got a tiny bit bigger, and it kept on crashing every few hours. Worse yet, its backups are really bad. You'd think it had some auto-backup facility set on default, but there isn't one that works well enough.
Sublime Text is great, I love it, but its a text editor. If I wasn't a lazy guy I would keep using vim/emacs, but I like mice so I use Sublime Text.
When Sublime Text adds drag and drop refactoring, in app debugging, and the millions of other features required from an "integrated development environment" then startup time would be a more equal comparison.
but comparing eclipse with sublime text is like comparing word to the notepad. a bit unfair.
On a fresh computer, download and install Netbeans 7.3 and Eclipse 4.2. Then check out a Mavenized JSF project from and run it.
Netbeans does Maven and Subversion out of the box, so I don't have to install any plugins. I point it at Tomcat, and it will build and deploy the app for me with one click of a button and zero configuration.
I have never successfully gotten all the plugins and everything necessary to do this with Eclipse working. The member of our team that uses Eclipse deploys wars manually for this reason.
IntelliJ, for what it's worth, also seems to do all of this out of the box (I used it for about a day, and concluded it wasn't enough better than Netbeans).
The easiest way for me to describe Eclipse's problem and why I don't like it is to simply say it is worse. It's fat, slow to start up, slow to use, requires hours of complicated setup to get it to do what you want. Netbeans utterly wrecks it for every use case I have. Outside Java, I use Emacs mostly. I would actually love to get Eclipse working so I can use eclim, but the configuration story is just so horrible. Installing plugins is slow. Choose an update site? Wait five minutes for the UI to respond while it downloads a sitemap? Which of these five plugins is the Subversion plugin I need? What's Mylyn, and do I need integration with it or not? And so forth.
Can you explain the Intellij draw to me? I've spent the last two days off and on look at the community edition via installion and googling and I don't see the killer feature set that everyone is talking about. It looks like a JEdits older brother to me.
"We don't support rectangular selection and probably never will."
Not sure how IntelliJ compares in this regard.
I will say as someone working with SWT right now that I'm not a fan.
Say I have some code in some directory. I want to edit that code. How do I do that?
The whole mess with workspaces is so confusing, even resetting all settings like your shortcuts! Why would anyone want their shortcuts reset when working on something new?
Also, ctrl+k for find next while every normal UI program uses F3 for that (and some gnome ones settled for ctrl+g): why? Seriously: why?
- Change class name and every other java file which uses that class will also update correctly.
- Show errors when a dependency is missing.
-Change type of a method in one class and every error caused by that change, in every file is immediately highlighted.
-Right click on a method and ask eclipse to show you every method which calls that method...recursively.
-...and so on
You CAN just open a java file without creating a project, but then you don't get much more than syntax highlighting or formatting help.
Not to mention you write "obj." and can instantly see all the methods available with arguments.
Also if you add say an interface or inherit a new object it will immediately throw an error if required methods are not implemented. You then just hit ctrl+1 and enter and it will automatically add all the boilerplate functions you need to comply with the new interface.
It's a must for statically compiled, boilerplate filled languages like Java and C#. That said, if intellij is more polished for a niche and has a better UI I'll switch away from Eclipse in a heartbeat.
If you're not working with a dynamically typed language or markup language though then an IDE can really add a significant boost to productivity by eliminating all the repetition and actually making the strict static typing work for you.
Why can't eclipse do that?
Maybe things have changed since then, but I haven't bothered to try it.
These days I set up a clean workspace and configure it and just make copies instead of creating the new workspaces from Eclipse.
I've heard some advocate a best practice of just using a single workspace and using views and Mylyn to manage context. But there is a point where Eclipse goes over a performance cliff with the number of files and projects and the system is just not usable. That and the ever present possibility of workspace corruption make separate workspaces the way to go for me.
Also: Key bindings suck. I used to be able to get "Home" and "End" work in a sane way on Macs, but not anymore.
Eclipse organizes code by using "projects", which is really just saying "all files and folders in a specific directory". It's much like projects in SublimeText. In Eclipse you can open and close projects within a workspace. So I have like 15 projects within a workspace, but only have a few of them open at any given time.
The only time I use workspaces is for work when I have projects that are required to be a specific name (and I open different branches of that same project), but this is fairly rare for me.
What is the problem with File->Open?
For the repeat search you can edit your key-binds.
- debugger (and everything about it, like hot code swapping, etc)
- run configurations (setting multiple run configs for one project happens!)
- views: I mean i use only "java" and "debug". they could be faster but i don't mind, you don't switch them often.
- workspaces are ok too, when it comes to organizing your projects in groups. It's ok, really.
What i hate:
- performance. for example the typical problem (i think it is a bug) when you switch between java and xml editor and you wait like 5 sec.
- workspaces that resets everything. wokspaces should group projects, not the user preferences. Dear eclipse, it's still the same person opening them!
- why the hell i have to spend 2h configuring eclipse after downloading a new version? does not svn/git/maven a default requirement for java development today?
- search. i never remember which tab out of 6 and what setting will allow me to just do grep in the project folder.
- the toolbar - please remove all this crap. I will only use those 3 run buttons and switch perspective anyway.
Just disable all the other tabs by pressing "Customize..." in the search dialog and only selecting "File Search".
Or in the upcoming Eclipse 4.3, there is now an option to always show the last used page, see here: http://download.eclipse.org/eclipse/downloads/drops4/S-4.3M6...
The "Eclipse IDE for Java Developers" comes with support for Git and Maven nowadays – no SVN, is there anyone still using it? ;):
http://www.eclipse.org/downloads/packages/eclipse-ide-java-d...
Juno has been plagued with performance problems and so I downgraded to 3.8 and it's back to normal. (I.E. no atrocious delay in switching from Java to XML editors)
be sure you are not using Eclipse 4.2.0 but at least latest 4.2.2.
I wonder sometimes if it is an ego thing. How often is the whole direction of a particular featured changed completely because the author feels they have to be better than some other similar feature in a competitor environment? When someone says "Yeah, but even Visual Studio does X" does that send the developer into a flurry of "Oh yeah I can do X++?" or not?
I see similar things in the window systems, and find it sad that even in an all open source space there are such vitriolic attacks on KDE/Unity/Gnome from both inside and outside the various camps. Why is that? Its like sports franchises for nerds where there is some sort of built in comparison conflict, some need to be the "winner".
I completely agree that Eclipse could use a 'benevolent dictator' who not only was able to make decisions by fiat if necessary, but also was not caught up in defining their self worth by how Eclipse compared to other IDEs.
| vitriolic attacks on KDE/Unity/Gnome
I can understand the attacks on Unity. It was swapped to the default environment in Ubuntu before it was ready for primetime, and it represents Ubuntu's increasing distance from the rest of the Open Source (or at least Linux) community (see Mir vs. Wayland).I may not agree with all their technical & business decisions, but I do love that they are willing to experiment on the "big things" and provide a little competition in the space.
That said, their arguments against Wayland were way off. Which was a very big mistake. Though I tend to attribute that to not understanding Wayland well rather than malice.
Part of it is NIH, but the other part is probably the lack of full integration and control they'd have with regards to Ubuntu. It's still open-source, and they're working hard on it. I don't see what the issue is.
I use IntelliJ primarily for Play Framework development. I've installed plugins for almost all other languages (node.js, python, mustache etc) and use IntelliJ for that but for non-Play Java, I tend to go back to Eclipse.
Some of that may be the 10 years or so now that I've spent with Eclipse.
I did find that some common operations I do through the GUI require more clicks then when I do them in Eclipse. I didn't find it enough better to switch, but I run on fairly honkin hardware (Ivy Bridge i7, 16 gigabytes of RAM) and I changed the Eclipse default heap size to 2g.
For JUST Java, IMO Eclipse wins for me.
1. Graphical interface for compilation errors
2. Graphical interface for debugging under gdb.
I haven't seen anything like it (Visual Studio is nice, but only runs on MS). Would love to hear if anyone uses different IDE's for c++ devel that works cross platform.
No please, for a lot of companies not in the USA (say, in Mexico), the price of any JetBrains product is prohibitive.
The next question is, what will come out of the reflection?
I was very frustrated the last time I tried going to IDEA and I wrote about it on my blog (http://www.fisharefriends.us/wordpress/2013/01/27/intellij-i...). My observations:
. It seems to take a long time to “warm up” before IDEA runs as smooth as Eclipse.
. Eclipse is stupid about detecting when you changed a file from outside of Eclipse; IDEA is not. Eclipse is very annoying when you use Emacs/vi/OxygenXML as an additional editor.
. “JetBrains :: IntelliJ IDEA” is a stupid, stupid name.
. Emacs key bindings in Eclipse is better, alt-w and ctrl-y “just works”.
. Maven projects is poorly integrated into Eclipse’s concept of “projects”.
. I miss the native “choose file dialog” you’d get with Eclipse.
. I think the new version has incremental compile like Eclipse, but it doesn’t seem to work by default.
. The Maven daemon in IDEA used around 300MB of memory and continually consumed CPU resources.
. The keyboard stopped working for some reason.
My experience was with the community edition, perhaps I should give the professional edition a try. But at $200 and having had such a poor experience with the community edition, it is a hard sell.
Go to Preferences > General > Workspace. Enable the "Refresh" option(s) there.
This has been brought up a couple times in the sessions, they didn't do a great job of explaining in the keynote. If you want to hear the official story, watch a recording of the Android Fireside Chat session.
Anyway, Eclipse for Java development is definitely okay IMHO; but for Android development, there are always nasty bugs like this [2]
[1] http://source.android.com/source/code-style.html
[2] https://code.google.com/p/android/issues/detail?id=27940
It's a great pity because Eclipse -on paper- is the kind of IDE I should love. It's powerful, flexible and let's you tune it to behave the way you want it to behave. But getting it to bend to my will has on occasions in the past, taken more time than it would have taken just to bang the code out in a plain text editor and then compiling it myself via the command line.
Some plugins like the Maven one is something that I can't stand. It's confusing, lacks things like running a clean without needing to create a bogus "run" configuration.
EDIT: I forgot to say that I hate editing HTML code in Eclipse. It's slow, autocompletion is hit and miss and package explorer doesn't know how to group web content.
EDIT2: How could I forget about the pesky hidden directories full of stuff in it? Nightmarish!
Sure there are plugins to "integrate" these build systems, but I've wasted too many hours futzing around with keeping the external build system in sync with their Eclipse plugins (many times having to recreate projects altogether to get past some sorts of corruption). Anybody who's had to pollute their poms with Eclipse specific config after a lot of research because of the "Plugin execution not covered by lifecycle configuration" problem will know what I mean. Don't get me started with sbt integration.
This is big problem in most open source software projects :\
Q: In Eclipse, how to reveal current file in filesystem
http://stackoverflow.com/questions/1161240/in-eclipse-reveal...
I hope Google and JB can work together to do a nice job and provide a better development experience for Android.
Energia is basically a port of the Arduino IDE to work with TI Launchpads, including the TI Stellaris, which has an ARM Cortex-M4F. Before Energia was ported, Eclipse was the IDE to use for TI Launchpads.
Working with this IDE has been pure joy. Adding libraries is as simple as copying the library into the folder and restarting the IDE. Simply by replacing Eclipse with Energia has made hacking with TI launchpad devices more fun.
but i still consider intellij the better standalone IDE.
I never understood why that was never offered at least as an option.