I’m on the edge here. I’m starting to feel that Eclipse itself is starting to negatively impact my productivity due to the constant spinning beach ball of doom and the other obnoxious performance issues that always seem to leave me waiting for my actions to complete (even simple thing like typing seem to be slow). My machine is pretty well specced (recent MBP), so I think that I probably shouldn’t accept these things as inevitable.
Have any of you transitioned happily to other environments? What are the pros and cons in general? I’ve used a bit of Netbeans and IntelliJ (I don’t mind paying if it’s worth it), but I’ve always ended up going back to Eclipse for comfort - should I push through the migration difficulties, or are there real problems with these other environments as well that I just haven’t seen yet?
I’ve been using NetBeans 6.5 for a few weeks now. It’s got good support for the three languages I used the most: Java, JavaScript, and Scala (with a plugin). Although, on the Mac, the look-and-feel is out of date (but then again, the Eclipse look-and-feel isn’t very Mac-like, either)
I’m sold on the SVN support. It shows what lines have local changes, and allows you to back out of those changes. I never could get SVN support to work well in Eclipse, although maybe I didn’t set it up correctly.
The worst part of the transition for me was editing the color scheme. It took a while to get it to something I’m used to. But after that, I edited a few keymaps and was good to go. I’d recommend getting the “automatic projects” plugin if you’ve got a lot of existing Ant-based projects.
That’s quite possible, though I just checked my list and it seems pretty bare by default…maybe before giving up I should try tweaking things a bit, see if I can improve things.
Any particular settings that people find crucial to alter after a fresh install?
I’m not too bothered by look and feel issues, but Scala support is one of the main things keeping me in Eclipse right now. I’ve just never been able to get it to work in IntelliJ, and I’m moving towards relying more on Scala than Java for Real Work (data analysis over some pretty massive sets, which plays to Scala’s strengths significantly more than Java’s, esp. since dev. time is a lot more critical to me right now than processing time), so I can’t afford to lose that. Have you found the Netbeans plugin to work fairly well? By which I mean, does it actually understand Scala code, or is it just a glorified text editor hooked up to the Scala compiler?
I find Subclipse to be decently usable, though a little messy (far too often I’ll do something in the wrong order - still not sure exactly what leads to this and how to avoid it! - and end up borking the SVN metadata, which a GUI really shouldn’t allow) and not too “smart.” I’m not a huge fan of the way Eclipse handles diffs, though, so I’ll definitely give Netbeans a try and see if that’s easier. To me that’s a big deal because I’m doing a lot of porting from one SVN repo to another and having nice change management is pretty critical there.
…which brings to mind another huge Eclipse flaw for me, which is that I can’t run the Pulpcore loader from within the environment in OS X - I realize this is actually Apple’s Java bug, not Eclipse’s, but it adds another three steps to the build (switch to terminal, run the ant script, and switch back when I’m done, and it’s even worse the first time I do it each session because I need to crawl back to the directory first), just enough so that over time it becomes a real hassle. Frankly I’ve never found Eclipse support for anything Ant based to be very good anyhow, though I know a lot of people disagree with me.
Does Netbeans integrate well with Maven?
Yup. XCode is a pretty weak IDE, if you ask me, even for Objective C code, let alone straight C++ or Java. All that development energy would be far better spent doing a language plugin for another IDE, but I realize that Apple’s always got to be different…
I use Eclipse, but I’ve tried Netbeans 6.something. I found that eclipse has a lower memory footprint for simple projects (I only did a simple comparison). The SVN support in Eclipse is on par with the CVS support in terms of functionality, but I’ve never used it on a large project. I use Eclipse at work, with a fairly large project and cvs. When I have large amounts of the project open eclipse does slow down, but if I close a few modules it speeds up again. I have found that if I have lots of different editors open it slows down too, ie, JSPs, Java and XML all open at the same time, it’s performance drops.
Anything simple I use TextMate and more complicated stuff I use Eclipse. It used to be way too slow on my older machine, but it’s been just fine for me now.
I had a similar problem in Eclipse 3.3 with Aptana plugin when working on javascript. The problem was due to Aptana’s handling of “intellisense” which got worse as my code grew, until I reach 7k lines of code when it grinded to a halt. It’s patched now though, but I suspect something similar may be your problem.
Have you checked the Error log btw? Also, you could try running Eclipse with -clean as default.
I’d very much like to use the Scala plugin too, but the damn thing don’t work in 3.3, and Aptana don’t work in 3.4.
Give Netbeans 6.5 with the eclipse KeyMap another try. But TBH, don’t expect too much performance wise. I don’t use Eclipse very often, but the times I did I found both IDEs on par regarding (bad) performance :-\ But I always found Netbeans to be “fast enough” on my core 2 duo There are some things that are annoying from time to time (task/project/classpath scanning), but overall Netbeans gives a good and productive user experience.
I use Idea at work and long time was a die hard fan. But with the latest versions it tends to get the same bloat like any IDE and Netbeans is definately better when it comes to multithreading. In Idea I often find myself gaping at some progress bar or just at a frozen editor window.
I found that Eclipse on Mac OS was slow as hell, inexplicably. I even attempted for a while to use Mac OS as my development platform but the sheer sluggishness of Eclipse sent me running back to Windows.
just want to add that it is still possible to use two IDEs on the same project. E.g NetBeans 6.5 has the cool feature to keep the classpath in synch with eclipse projects (but its a one way road it only updates eclipse -> netbeans). I use it right now at work because of some distinct features and plugin licenses.
Just use the IDE which fits best to your next task.
NetBeans detects changes in files automatically but you will have to press F5 to get your eclipse project refreshed (this is the favourite key of eclipse users anyway :P).
I would recomment everyone in “enterprise” projects to give NB a try, it has really convincing out of the box features. NB supports most servers (glassfish, jboss, tomcat…) databases and comes with out of the box svn, cvs and mercurial support.
Interesting. I’ve been using on Mac OS all this time and it has been fine. As I mentioned before performance could be a bit slow on my older computer that was more due to Eclipse needing 300mb of RAM and me having only 1gb distributed across 7 or 8 high-end programs like Safari, iTunes, Photoshop, and Eclipse all at once.
It’s definitely possible that it’s an OS thing, I’ve been booted to OS X for so long that I can’t even remember if I have Eclipse installed yet on my XP partition. I have noticed that Java programs have some dreadful new UI lags under Leopard (showing a ‘File’ menu in response to a click should never take 15 seconds, shame on you for not fixing this already, Apple!), so maybe that’s causing a lot more of this than I’m realizing.
I’ll see if I have similar problems in other IDEs, if that’s the case perhaps I’ll eventually have to retreat to Windows or Linux again until (unless?) some of this stuff is fixed.
Re: Netbeans comments, it sounds like Netbeans has come quite a long way since I last tried it. I’ll definitely give it a fair look again, esp. if it interoperates with Eclipse projects without too much fuss and has good Scala/Maven support.
Eclipse has two major svn plugins: Subversive and Subclipse. Although subversive is a bit more “official” (since it’s actually a part of eclipse.org) I found it to be unreliable and generally a pain to use (tellingly despite being an eclipse.org plugin it’s not included by default in any of the eclipse IDE bundles).
Subclipse is IMHO much better and more reliable. If you were using subversive it’s well worth checking it out as an alternative.
In my experience Eclipse’s built in CVS support is soooo much more stable than SVN through either subclipse or subversive - which is a real shame, cos’ SVN should in theory be much better… maybe once it reaches the same age as CVS, it will be! (just in time for it to be obsoleted by something with an even shinnier feature set)
When people talk about slow “AutoComplete”, I hope you know about the delay settings? If not, look under Window -> Preferences -> Java -> Editor -> Content Assist
As far as performance is concerned, I have found Eclipse to be better then NetBeans.
Especially the autocompletion under NetBeans took for freaking ever.
I heard that a couple of times and it surprises me everytime I do. What system are you using and which Netbeans version did you try? I never found codecompletion to be slow with enough RAM and anything greater NB 6.0.
(snip)
Well, this problem is specific to Swing on the Mac, so it’s not relevant to Eclipse, but it shows up in other programs “in the wild,” especially if they automatically have sub-menus that show your projects in a directory or something like that (so the number of items is unbounded).
Here’s a very basic example, which, while totally unrealistic, runs fine (a second or two delay in response) using Java 1.4.2 on OS X, but practically grinds to a halt when you click the File menu on 1.5 or above (again, OS X only):
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class SwingMenuSlowdown {
private static final int largeNumberOfMenuItems = 1000;
public static void main(String[] args) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
JFrame frame = new JFrame();
frame.setTitle("On OS X this menu is really slow in Java 1.5+, but works fine in 1.4");
frame.setSize(640,480);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar myMenuBar = new JMenuBar();
JMenu myFile = new JMenu("File");
JMenu mySub = new JMenu("A lotta stuff");
for (int i=0; i<largeNumberOfMenuItems; ++i) {
mySub.add(new JMenuItem("MyStuff "+i));
}
myFile.add(mySub);
myMenuBar.add(myFile);
frame.setJMenuBar(myMenuBar);
frame.setVisible(true);
}
}
1000 items is unrealistic, but even in real apps the problem shows up to varying degrees. I don’t know of any workarounds at the moment if you’re using Swing…you can set the 'useScreenMenuBar" to false and that “fixes” it (hence the problem is something to do with the way Apple binds to the screen menu in Swing - AWT is also fine), but that’s very against Mac UI standards, so…
Then again, I don’t do much Swing, so there might be something else going on here, too.