views:

835

answers:

16

Hey all, my Computational Science course this semester is entirely in Java. I was wondering if there was a good/preferred set of tools to use in ubuntu. Currently I use gedit with a terminal running in the bottom, but I'd like an API browser.

I've considered Eclipse, but it seems to bloated and unfriendly for quick programs.

A: 

I'm using NetBeans with success right now.

Allain Lalonde
+3  A: 

Eclipse and NetBeans are both good options. If you don't mind paying a little, so is IntelliJ IDEA (an academic license costs $99).

jodonnell
I'm trying to stick with GNU tools right now, but thanks for the suggestion.
Octaflop
In college I used Emacs, but that was because it was 1997 and I had to.
jodonnell
@Octaflop: do you really mean GNU tools? Neither Eclipse nor Netbeans are GNU tools. Do you mean GPL software? Or even more general: free software?
Joachim Sauer
+4  A: 

Java editing tends to go one of two ways; people either stick with a simple editor and use a terminal to compile/run their programs, or they use a big IDE with a zillion features.

I usually go the simple route and just use a plain text editor and terminal, but there's still a lot to be said for IDEs. This is especially true when learning the language, since hitting "spam." brings up a dropdown with all of the fields and methods of the spam object. And this is not just useful to a beginner; it remains useful later on when using unfamiliar libraries and third party modules.

IDEs also have useful tools such as GUI builders which become invaluable when doing professional Java work. So although I typically prefer a simple editor/terminal combo, I highly recommend trying out an IDE such as Eclipse or Netbeans to see how you like it and so that you'll know how to use one later on.

Eli Courtwright
IDEs offer way more then simple method hint/completion. Refactoring support, ANT support, integrated Javadoc will make learning the language much easier. Beyond a handful of source files/classs, gedit will slow you down.
basszero
+1  A: 

As far as IDEs go, I've found Eclipse to be about the best you could ask for. If you are used to IDEs full of features like VS, it should be right up your alley, and it isn't particularly resource-hungry; the way it organizes your projects makes the whole thing pretty simple as well, and it's also good to have on your resume. If you're looking for a non-intrusive IDE, mostly intuitive and that does its job as a great assistant, go with Eclipse. Not to mention its customization options.

If, on the other side, you'd like a much more light IDE, textPad-style (why?), I'd recommend Geany; I've worked with it in the past and it's got all the basic features to get started with the language and not be overwhelmed with all the features that big IDEs can offer. But I'd still recommend to go with Eclipse as soon as you get used to the language and need the IDE to be more of an assistant.

Sergio Morales
+1  A: 

Another vote for Eclipse. In particular, you should be able to install it from within Ubuntu, as there are packages for it in one of the repositories (I forget which one specifically, as I'm not at my Ubuntu machine right this minute). If you use the GUI package-management application under the "Admin" menu, you should be able to find Eclipse and related packages.

rjray
A: 

I usually just use vim, but i've actually found the IDE Geany quite intuitive with a lot of good features but not really overblown. Check it out.

EDIT: I don't think Geany is fit for enterprise-level programming, but for a quick program it's one of the better IDEs I've seen, especially if you've had bad experiences with NetBeans or Eclipse as I have.

+1  A: 

I'd actually just recommend Eclipse. It seems bloated at first, but once you get used to it, you can use it to develop code very very quickly (and thus it's an excellent choice for a quick bit of Java).

Features I like:

Control+1 for error fixing - it knows how to fix most compile errors - just highlight the error in the code (which will be underlined in red) and it will give you a list of suggestions. Control+1 selects the first suggestion, which is almost always correct.

You can use this error fixing feature to write code that uses methods you haven't written yet - the error fixing will create the method on the class/interface you called it on, with the correct parameters/name/visibility etc. Or, if theres a similarly named method with similar parameters, it will suggest you've spelt it wrong when you called it.

The refactoring tools are also supergreat - you can highlight a block of code to extract as a method, and it'll work out what variables need to be passed in, and what it should return (if anything). You can move variables between field and methods. You can change class/interface/variable names, and it will correct them only where it needs to (which beats a search and replace any day).

You really don't need to know many eclipse features to get the benefit of using it - and it'll dramatically speed up your coding. I wish I'd known how to use it at University.

Basically, I'd recommend Eclipse. The time saved coding will make up for having to click "yes" a couple times when you start a project..

+5  A: 

Eclipse may be bloated for learning needs, but will probably give you the best overall Java experience. Try working through some of the built-in tutorials if you find the interface confusing.

Ray Myers
A: 

in our working enviroment we have to use the free Oracle JDeveloper ... sigh .. at home I tend to use Eclipse more and I really like it

+4  A: 

I too vouch for eclipse (or IDEA if you have the money, actually IDEA is better than eclipse by a small margin).

But, make sure that you know how to compile and debug without an IDE first, and also learn to read the compiler's warning/error msgs - they are essential skills for developers that using an IDE can prevent you from learning.

Chii
there's an IDEA community edition which is free and open source.
mike
yep, that is now true - since answer was posted before the community edition was available. keeping it same for prosperity's sake
Chii
A: 

As many others, I suggest you to use Eclipse. It works fine in linux and after a few days you will find it not so unfriendly.

Moreover, if you will start developing more complex programs in java, you already will be familiar with a standard, complete and open source IDE, which is also the foundation for many other professional IDE for other languages, like Adobe Flex Builder, Aptana Red Rails and so on.

alexmeia
+1  A: 

Hi! ;) I am also a student with a course with focus on Java, and I use Ubuntu, ofc.. :P Geany, it's something in the middle of an IDE and simple textpad..

+1  A: 

Cleared for Deletion

_ande_turner_
A: 

There is an interactive "IDE" designed especially for learning: BlueJ at http://www.bluej.org/

While I generally agree that Eclipse, NetBeans, or one of the other IDEs can be very helpful, they are pretty heavyweight for a learning environment; and you can end up spending your time wrestling with the IDE instead of learning Java.

In my career I've also found some people that don't really understand what the IDE is doing for them; they are totally lost without it (see Voodoo Programming). I recommend you spend at least some of your time with a simple editor, like gedit or vim, and the command line javac compiler.

Stephen P
A: 

Netbeans is a heavy but good IDE. Netbeans always have many features you don't really need, but because it's made with the netbeans platform, you can always strip it down to the essentials !

If you don't like al the work, go with eclipse. It's a lighter IDE.

Geany is pretty handy, don't quite know how it is with programming Java, but with progamming C and C++ it's a nice ligth weight IDE. (BE WARNED: Building big projects usally tend to fail in geany. Workaround: compile in Geany build in terminal)

  • Bryan
A: 

BlueJ is considered a good editor for Java, tough mostly aimed at beginners. It does not bloated as Eclipse, but contains many useful features. It is also an open source project, so you are welcome to give it a try.

David Rabinowitz