Java IDEs?
Billy the Mountain asks: "In the startup company I'm in, we just got a new president and she asked us about ways of increasing developer productivity. We develop Java applications, servlets and JSP. I don't use an IDE. I use an enhanced text editor, EditPlus, because I like its color coding of keywords. I guess what I'm asking is what Java IDEs do you use and what features do you like best?" If you were to build a Java IDE from the ground up, what features would you include?
I've also used Codewarrior for Java, and have been pleasantly surprised. It's a top-notch environment. Metrowerks has done some fine work.
Forte/NetBeans has a way to go. What a pig. 3.0 has some nice speed and stability increases...
If you don't need a really fancy setup, try jEdit. It's an open source text editor with syntax coloring(60 file types!), and the plug-ins avaliable give you plenty of project management features.
And a dark horse: IntelliJ. I really like it. Lots of "enterprise" features bundled in a relatively cheap package.
I am surprised at how few comments IntelliJ IDEA is getting here. It is very good. The refactoring features (hence the Fowler connection) are so useful that I think it's likely that most major IDEs will copy them in the new few years.
I've also had good results with JBuilder, with VisualAge (for projects where I have no need for source code in files, which is not many of them...), and with plain old text editing.
What I have found is that if you mandate one IDE, whatever it is someone will loose productivity. Personally the approach I've generally taken is that people are free to use whatever IDE they like, we have a good ANT setup for building and groups of people who use non-ant aware tools like JBuilder set up those configs which we also maintain in source control. I use Emacs, but other people on my team use Vim, SlickEdit, NetBeans (which I also use for debugging), JBuilder, and Textpad (sigh). The only way you can loose is that you can't buy many bundles usually, but most of the tools people like turn out to be free for the most part (except of course for JBuilder and TogetherJ, which is useful for design but can be hnady other times as well).
.bashrc (defines environemnt variables needed to run ant along with ant shortcut alias)
.bashrc under name setenv.sh)
What is good to standardize is directory structures and locations of projects, which helps you define the environment for the build a little easier.
The setup that seems to work well for us is something like this (some things are new elements I've not quite tries yet):
<DIR - project root>
build.xml (ant build script)
setEnv.sh.default (keep this one in source control and people can modify it locally once for odd setups - called by
runAnt.bat ( does all of the stuff the bashrc does, but in the way only a batch file can. Ick! Used by those poor souls without Cygwin)
<SUBDIR build> - generated by ANT (compiled class files go in here)
<SUBDIR source> - holds all source code
<SUBDIR other...> any other subdirs you might need (resource, deploy, etc.)
"There is more worth loving than we have strength to love." - Brian Jay Stanley