PDA

View Full Version : Looking for a better Java IDE


Kraetos
2008-11-20, 21:55
Why is every Java IDE slow, butt ugly, and severely lacking in the UI department?

Oh right, it's because they're written in Java. ;) :p

I hate Eclipse. With a passion. It's ugly, it's slow, and the UI is inconsistent with every other application I use. My muscle memory is pretty much unbreakable when it comes to the standard Mac hotkey configuration. Past the basics that are the same in every program (cut, copy, paste, quit, close window, etc...), the majority of the hotkeys don't do what I want them too. Nor do a number of mouse actions: I continually double-click the tab bar to make a new file, only to watch the text editor collapse into the sidebar. What Java fanboy thought this behavior was intuitive? Or even useful? Maybe it's too much to ask for new file creation, but what logic is there behind double clicking the tab bar to collapse the editor? Double clicking the window bar, maybe, but the tab bar? Really? I would go on but it's bad for my blood pressure.

I gave NetBeans a short trial, but it just felt like I was swapping one crappy UI for another. I'm apprehensive about paying for IntelliJ, but I am giving the trial a shot.

Xcode confuses me, and is very much geared to ObjC development, not Java development. But if anyone has suggestions on how to make Xcode more suitable for Java development, I'm all ears.

TextMate lacks features I want in an IDE. I rely on code hinting and active syntax checking, which TextMate doesn't do.

I found a Java IDE that looked promising: MochaCode. (http://syntori.com/mochacode/) It sounds like exactly what I'm looking for: full fledged Java IDE wrapped in Cocoa goodness. Unfortunately, MochaCode never reached shipping status; only the preview release is available, which appears to have a timer on it which has since expired. :( It won't even launch. Even more unfortunate, development seems to have stalled indefinitely. The developer blog has gone a year without an update.

I'm out of ideas and I can't find anymore. Again, here are my three main requirements for a Java IDE:

- Mac-like UI
- Code hints
- Active syntax checking (i.e. the program detects syntax errors as they're typed in addition to showing them at runtime.)

Don't care about versioning. Don't care about zillions of features. Just those three. I'm fully aware that a Mac-like UI rules out anything cross platform, which is basically every Java IDE, since Java people get so excited about how Java runs on all platforms. I realize this is a longshot. But if anyone is going to have a good suggestion, it's you guys.

Partial
2008-11-21, 01:59
My advice is to suck it up and deal with Eclipse. I don't think you're going to find what you're looking for, because most java developers/developers in general are all about eclipse, its openness, and its extendability.

I personally don't see the issues with Eclipse that you see. I use MyEclipse on a daily basis and think its fine. Granted I've not done much development in other ide's, I simply don't see the problems that you're seeing.

My one beef with it is Apple breaks a lot of Eclipse's conventions on other OSs. Try clicking F3 to open a declaration (I think thats what it does - I use the mac so much now I have forgotten ).. doesn't work.

Syntax errors happen at compile time :)

Ryan
2008-11-21, 10:45
I don't use TextMate personally, but I've heard it has tons of extensions and plugins. Have you checked to see if some of those might turn it into what you're looking for?

Kraetos
2008-11-21, 15:21
I don't use TextMate personally, but I've heard it has tons of extensions and plugins. Have you checked to see if some of those might turn it into what you're looking for?

Yes, I have. I scoured the internet for such a plugin. No luck. :(

If TextMate had code hinting and syntax checking, I would use it for everything.

Kickaha
2008-11-21, 16:06
My advice is to suck it up and deal with Eclipse. I don't think you're going to find what you're looking for, because most java developers/developers in general are all about eclipse, its openness, and its extendability.

Yes, and they're not users or UI designers.

I personally don't see the issues with Eclipse that you see. I use MyEclipse on a daily basis and think its fine. Granted I've not done much development in other ide's, I simply don't see the problems that you're seeing.

Boy, I do. Eclipse is one of my absolute, hands-down, least favorite apps. Love the ideas, but the implementation BLOWS. Even on well supported platforms. They basically ignored every UI and deployment lesson of the past 30 years, and produced crap. The biggest two that I've never received a decent answer to:

1) Why MDI?
2) Why versioning hell with plugins?

Both were completely avoidable, but they went the quick and dirty route out of the gate, and then it became 'the norm'. Bleah.

My one beef with it is Apple breaks a lot of Eclipse's conventions on other OSs. Try clicking F3 to open a declaration (I think thats what it does - I use the mac so much now I have forgotten ).. doesn't work.

Actually, many of the Eclipse UI issues are due to the ASSTASTIC SWT implementation under the hood, and the fact that Eclipse on other platforms has gone through many, many hoops to make it work well... but the Mac version hasn't gotten the same attention.

Adobe, of all people, stepped up to the plate to improve the underlying SWT libraries, and move them to Cocoa, and things have gotten better, slowly. (The looming deprecation of 32-bit Carbon had quite a bit to do with this move on their part, actually.) Hopefully we'll see a more... standardized UI.

And monkeys might fly out of my butt.

Kraetos
2008-11-21, 18:04
My advice is to suck it up and deal with Eclipse. I don't think you're going to find what you're looking for, because most java developers/developers in general are all about eclipse, its openness, and its extendability.

I'm familiar enough with Eclipse to use it when/if necessary. I'm looking for a better app to use for my own coding.

I personally don't see the issues with Eclipse that you see. I use MyEclipse on a daily basis and think its fine. Granted I've not done much development in other ide's, I simply don't see the problems that you're seeing.

MyEclipse, eh? Never heard of it. What makes it different from normal Eclipse?

I've been using Europa for a year, I just upgraded to Ganymede. If Eclipse has update checking functionality built in, I'm not aware of it :no: This shit should be automatic and on by default.

My one beef with it is Apple breaks a lot of Eclipse's conventions on other OSs. Try clicking F3 to open a declaration (I think thats what it does - I use the mac so much now I have forgotten ).. doesn't work.

That's simply the inverse of the argument I made, and I don't agree with you.

Cross-platform consistency != UI consistency. Not only are they opposites, they're mutually exclusive. Windows, OS X, GNOME and KDE have their own UI conventions. If you're developing an App to run on more than one of these platforms, you are at a disadvantage, because it limits your ability to use Cocoa, Carbon, GTK+, or Qt. (Or .NET, but .NET is a lot more than a widget toolkit/API, and it's not like anyone cares about .NET to begin with.) If you can't use the built in API/widget toolkit, you have to go out of your way to come up with your own.

Cross-platform consistency is easier, which is why most developers (Adobe, Eclipse, Firefox*) that do the multi-platform thing stick with it. But it's not as good as OS consistency. Many argue that if an application has a consistent UI between platforms, then users can freely move between platforms and still feel at home with the application.

Do you use different operating systems so frequently that this is advantageous? Does anyone? Even if you're dealing with the common PC at work, Mac at home scenario, are you using the same applications on your work computer as your home computer? The only app I can think of that many people would use on a PC at work and a Mac at home is Office.

But guess what? Office 2007 and 2008 have radically different UIs. Nothing is consistent in Windows except the very basic WIMP conventions that Apple defined 25 years ago, so Office 2007 can really do whatever it wants. Office 2008, however, makes a very respectable effort to "fit in" on a Mac. Some shortcuts are off, and just like Firefox, the fact that the visual part of the UI is so close to Mac standard-issue that the inconsistencies are even more noticeable.

Point is, Office has never been the same program on the Mac and the PC. Mac Office is not, and never has been, an offshoot of Windows Office. Mac Office is it's own entity. The UIs are different, they always have been. The Mac Office team is completely independent from the Windows Office team. The Mac Office team does the best they can to make Office fit into the Mac environment. There may even be a Cocoa Office (Office 2012?) in the works.

The ideal cross-platform app would have the same features across platforms and use the native API/widget toolkit for each individual OS. But this is a colossal amount of extra effort, which is why I understand it isn't done often, and is basically never with anything open source.

My personal solution is to steer clear of multiplatform apps. I don't use Firefox. I'm transitioning from Photoshop to Pixelmator, but Pixelmator still has some work to be done to be a full-on Photoshop replacement for my needs. I don't use Office. The only cross platform app I use regularly is Eclipse.

Programs should be consistent with the OS. They shouldn't reinvent the wheel, they shouldn't go out of their way to maintain cross-platform consistency. Most users use one OS. Most users adapt to the conventions of that OS. To yank them away in the name of cross-platformness is Not Good.

Syntax errors happen at compile time :)

Not if you catch them with realtime syntax checking ;)

*Camino notwithstanding.

Ryan
2008-11-21, 18:18
I've actually gotten so tired of trying to use the same Eclipse project on both Linux in our computer science labs and my Mac that I'm considering buying VMWare (pretty cheap with the educational discount anyways) and throwing our CS department's Fedora image on it, then configuring it to use my home folder on their server. Eclipse for Mac just has issues I can't seem to work around.

Kickaha
2008-11-21, 18:49
Having used Eclipse on Window, Linux, and MacOS X professionally... Eclipse has 'issues' no matter *WHAT* OS you're running it on. We just get hit with a raft of stupid UI problems that others don't, but that doesn't mean it's a dream to use on other systems. Devs on other systems are just so used to the whole *SYSTEM* being painful that they don't notice when their IDE turns against them as well.

My advice:

1) Avoid Eclipse if possible.
2) If not, treat it like a Windows installation: get it set up *exactly the way you want it*... then freeze it. Tar that puppy up, gzip it, and save it. You *WILL* need it, because your working copy *WILL* break.
3) Never, ever, under any circumstances, allow Eclipse to auto-update anything. It will hurt. Usually a lot. Usually right before a deadline.
4) Approach updating your installation as you would trying to castrate an angry bull with live grenades in the middle of a mine field. When you fix what got broken (oh, it will... it will), see #2. Freeze it. Cache it. Have it available for rollbacks. Right now, I have, um... seven such frozen installations for projects that have been put on hold for over a year. It's necessary - gave one such code base to a colleague using a newer, updated version, and... yeah. Nothing worked correctly. Shock.
5) Treat it like a mentally retarded child with a firearm, and you might get away unscathed, but assume at all times that it will do unimaginably irrational things at a moment's notice, it will do its best to kill you, and that it is highly dangerous and not to be trusted for a moment with anything critical, like, say, your code.

Not that I've been burned by Eclipse or anything...

Ryan
2008-11-21, 20:22
I tried getting Eclipse to where I need it, but after, oh, two weeks I gave up. I turned off annotations on the Linux side so I can just use the standard CLI tools on my computer, threw the code and resource files into a Subversion repository and just use with SubEthaEdit on my end.

Partial
2008-11-24, 03:29
Man, I've had nothing but pleasant experiences with Eclipse. I'm surprised. AFAIC, its a great tool!

Kickaha
2008-11-24, 11:43
Alright, you caught me... I was in a bitter mood. :)

If you run the vanilla Eclipse, without needing to install plugins, and you are just using it as an IDE... it works pretty well. It's not exactly *nice*, but as long as you can handle a completely different UI philosophy (ie, throw a bunch of poop against the wall, and see which people *don't* vomit over), it's a workable IDE with some rather nice functionality.

The moment you want to enhance it, add a plugin, program a plugin, or god forbid, program a Rich Client App over the top of Eclipse... invest in Rogaine.