views:

23118

answers:

16

I've been using Xcode for the usual C/C++/ObjC development. I'm wondering what are practical considerations, opinions of Xcode, Eclipse or NetBeans usage on a Mac for Java development?

Please don't include my current usage of Xcode in your analysis.

+4  A: 

Do not use Xcode - Java support in the later versions is very much lacking. Even Apple, who make it, suggest you use a different IDE. As for NetBeans and Eclipse, they both have their strengths and a large number of vocal followers. I suggest you try both and use whichever you find more comfortable.

I for one use TextMate and shell scripts. But I'm strange.

Zarkonnen
I started out using XCode believe I see where you are coming from. The differential may be Eclipse or NetBeans...
geo
I've had horrible experiences with XCode (incomprehensible), Eclipse (trashed my data), NetBeans (mysteriously cannot create files). Hence, I use a text editor and a shell script, for purposes of sanity.
Zarkonnen
zarkonnen, sounds like your setup is broken, if both Netbeans and Eclipse messes up files. Eclipse work very well for me.
Thorbjørn Ravn Andersen
Different machines, actually. The NetBeans issue turned out to be a misconfiguration/incompatibility with OS X. I've had Eclipse chew up my files on three different machines, none of them set up by me.
Zarkonnen
A: 

I'll suggest Eclipse because it has a zillions plugins and is almost a standard for Java development. But I've heard that NetBeans is really nice since their latest release specially if you want to do desktop application(Swing) .

I can't comment on XCode since I haven't play with it.

Julien Grenier
+4  A: 

Well, I can chime in with Netbeans, it seems to work really well. There are some function key issues that I believe has a solution, I just haven't solved it. I've been quite happy with Netbeans. I like its "all in one out of the box" nature over the pick and choose plug in nature of Eclipse, but that's just a matter of taste.

Will Hartung
+17  A: 

I would advocate Eclipse on the Mac for Java, mosly because I had a very good experience. I'm not going to bang on about its merits as an IDE, but here are some unexpected advantages I found:

  1. When my employer switched IDE's to Eclipse I was way ahead.
  2. Pretty much any language I fancied trying out had a free IDE somewhere as an Eclipse plug-in, so I have a very consistent multi-language development environment.
  3. When I eventually went over to the Windows dark side I could use the same development environment, which was a huge relief.

But this is a bit of a religious topic, so expect to get a whole bunch of different opinions

Simon
3.5 work very well on OS X 10.5. I have tried both the Carbon and the Cocoa version.
Thorbjørn Ravn Andersen
I'll certainly adopt Eclipse just in case my employer switches. Great tip!
Max Howell
+1  A: 

I've worked with both Eclipse CDT and NetBeans's C++ support, and I must say that in my experience CDT is far superior in both stability and in features. It's really impressive how well the CDT indexer works; the tooling is almost as good as Java's. I'm also a huge fan of JDT when compared with NetBeans for Java development. The workflow is just so much smoother, if only due to the incremental compiler (compile-on-save).

One thing about NetBeans though, its UI does flow a little better in the "Mac style", which is ironic seeing as SWT was created to provide a more native interface. The next release of Eclipse should be based on Cocoa (rather than Carbon, which is the current), but that won't be until next June.

Final note: the whole "in box" vs "plugins" issue is entirely moot and it has been since Eclipse Calisto (two years ago). Now, with P2 (the new update manager), it's dead easy to get different features in the IDE. I can start with a download and get a fully-functional JDT/CDT/Mylyn environment up and running within five minutes of installation (assuming a reliable internet connection).

Daniel Spiewak
Workflow is faster, not smoother. Incremental compile eliminates the build-delay before running or deploying your app. What other purpose does it serve? As far as plug-ins, the same "feature" may be offered by multiple plug-ins--not all of them equal. Lots of time wasted trying sub-par plug-ins.
James Schek
Most people use just the "blessed" Ganymede distribution, which has no duplication of functionality. As for the incremental compilation, there's a lot of value in eliminating the build step completely from consciousness. It's not just faster, you actually stop thinking about it entirely.
Daniel Spiewak
The majority of Eclipse developers I work(ed) with still replace bundled functionality with non-"blessed" plug-ins--maybe they are abnormal. In other workflows, the build step is rarely an explicit step and only becomes a "step" when it breaks--just like with I.B. So what is the value?
James Schek
+21  A: 

I like NetBeans on OS X for Java.

It seems like I spend more time configuring eclipse to get a decent java programming environment. With NetBeans the setup time is less and I can get down to programming quicker...

Derek
Configuration time is only initial for an average user, after that it depends on if he's trying to stay on the bleeding edge ;-)
dhiller
I've switched almost entirely from Eclipse to Netbeans on Mac despite a few issues. I usually maintain projects in both, mainly because I depend on Eclipse's superior refactoring support. Netbeans, on the other hand, almost always supports any technology I want to integrate out of the box, in a very straightforward way.
Jon
Here is a quick guide on how to switch from Eclipse to NetBeans: http://blog.screencustoms.com/post/1229245596/a-great-relief-in-developing-android-apps
Aleks N.
+1  A: 

It depends what you want to do. My experience with Java on the Mac is about a year old by now, but NetBeans had a much better out-of-the-box support for Tomcat (in particular) deployment, and generally seemed to be a little more user friendly. For instance, the Netbeans beta I tried out used forms for web.xml configuration, in comparison to Eclipse's plain ol' XML editor (and in Europa, at least, the XML editor's row redrawing was a little sketchy on the Mac).

That said, for that project, I wound up doing a bit of configuration (for a was a n00b) in NetBeans, then moved the XML config files over to Eclipse, and developed the rest there. As others have mentioned, the zillions of plugins are great, and in general the experience is just very consistent. Especially if you have to work on another platform.

If Eclipse had better OS X bindings (does it have any? I'm unaware), I would use that for Obj-C development, as well.

Marc Bollinger
Obj-C support is somewhat in the works for CDT. It's not settled yet when (or if) it will arrive though.
Daniel Spiewak
+6  A: 

Just to be sure you give them fair consideration, Eclipse and Netbeans have gone back and forth for a while. Eclipse used to be a good deal quicker because they didn't use Swing.

Now Netbeans has caught up (perhaps surpassed) and has a lot of momentum.

You will get more votes for Eclipse. Period. This is because it was better and more people use it--and it's just human nature to feel what you are using is the best and everyone should use it.

Because it was better does not mean it's better now. Netbeans has more languages supported and more all-around support--so it's growing faster.

Currently I use Eclipse--I've used both (and IntelliJ and TextMate and Notepad...) and I can tell you that Eclipse has exactly one feature over netbeans... Mylyn (it's been renamed, it used to be called Mylar). This thing is pretty damn cool, but few people seem to even know it exists.

So, if you don't know a bunch of keystrokes that already tie you to an editor, the up and coming is Netbeans--don't pass it up because of a bunch of Eclipse votes.

Better yet, get good with both--it can't hurt and makes me a lot more comfortable when a company requires one or another. Don't whine when they make you change.

Bill K
many use Eclipse so they can comment on it - I believe most recommend it - does not mean that it is better or worse than NetBeans.
Thorbjørn Ravn Andersen
My point exactly. Eclipse 3.4 and NB 6.1 came out in the same time period. I too was an eclipse fanboy till 3.3 and Netbeans before 6 was ugly and slow and pathetic. But with the buggy eclipse 3.4 and the awesome NB 6.1, i switched IDEs for good and Im not going back
Midhat
+2  A: 

I happen to use Eclipse on my Mac (actually EasyEclipse which comes preconfigured with the most important plugins) and I must say it runs great. I have a less positive experience on Linux though.

I have also used NetBeans 6 recently and I was very impressed. It seems to have more functionality build-in. Most of the functionality is undoubtedly also available as an Eclipse plugin though, if you can find it.

Currently I have the impression that if you start developing Swing, Netbeans is your best option. Otherwise, Netbeans or Eclipse with a handy set of plugins are both excellent options.

If you do check out eclipse, give a thought to EasyEclipse (free) or perhaps even MyEclipse (not free). They come with the most usefull plugins preinstalled.

extraneon
+2  A: 

If you're using Eclipse, be sure to use Ganymede (3.4) or later. They run great. The previous version (Europa) ran poorly on my Macbook Pro.

bpapa
+11  A: 

You missed the Rolls Royce of all IDEs. IntelliJ Idea.

If you can afford to buy a personal license, go for it.

swapnonil
+4  A: 

Another vote for IntelliJ

+1  A: 

I used both Eclipse and Netbeans. I like Netbeans more than Eclipse. From java editor point of view, both have excellent context sensitive help and the usual goodies. Eclipse sucks when it comes to setting up projects that other team members can open and use. We have a big project (around 600K lines of code) organized in many folders. Eclipse won't let you include source code that is outside the project root folder. Everything has to be below the project root folder. Usually you want to have individual projects and be able to establish dependencies among them. Once it builds, you would check them into your source control. The problem with eclipse is that a project (i.e .classpath file) dependencies are saved in user's workspace folder. If you care to see this folder, you will find many files that read like org.eclipse.* etc. What it means is that you can't put those files in your source control. We have 20 step instruction sheet for someone to go through each time they start a fresh checkout from source control. We ended up not using its default project management stuff (i.e. classpath file etc). Rather we came up with an Ant build file and launch it from inside Eclipse. That is kludgy way. If you had to jump through these many hoops, the IDE basically failed. I bet eclipse project management was designed by guys who never used an IDE. Many IDES let you have different configurations to run your code (Release, Debug, Release with JDK 1.5 etc). And they let you save those things as part of your project file. Everyone in the team can use them without a big learning curve. You can create configurations in Eclipe, but you can't save them as part of your project file (i.e it won't go into your source control). I work on half dozen fresh checkouts in a span of 6 months. I get tired to recreate them with each fresh checkout.

On the other hand, Netbeans works as expected. It doesn't have this project management nightmare.

I heard good things about IntelliJ. If you are starting fresh, go with Netbeans.

My 2cents.

videoguy
Project Sets in Eclipse help immensely with this, if the projects are placed in CVS or SVN.
Thorbjørn Ravn Andersen
A: 

I use Eclipse for development, and have had nothing but pain. It has more bugs than a bait shop, and is one of the worst written programs I have ever used. Use Xcode if you want to save time and frustration.

Chris
+1  A: 

I have tested editors for Java extensively and prefer Netbeans to Eclipse by a significant margin. NetBeans has excellent support for Java, a very beautiful user interface and powerful features. It also has excellent support for C++ and I would choose for this it over, say, Visual Studio. Consider JCreator classic edition, an excellent place to start although not as powerful as NetBeans, easier to get into at first.

I'd also defend NetBeans plugins against Eclipse because although Eclipse is highly praised for the flexibility it is afforded by plugins I think this is largely down to the fact that the also very powerful plugins features of NetBeans are not shouted about so much, even though it is also very strong in this area. I have seen computational fluid dynamics applications based on the NetBeans platform, very impressive, I just don't think NetBeans developers make such a big deal over it because it's already a complete package from the moment you download it, powerful without any need for configuration with plugins.

Jonathan
A: 

Eclipse, because it has better support of c++ on mac. I used Netbeans long time ago, did not like it.

Use java based IDE on mac only if you have to (especially when doing java development). Xcode already supports c/c++ development, so no need to switch.

surajz