Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Java Programming

Java IDEs? 679

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?
This discussion has been archived. No new comments can be posted.

Java IDEs?

Comments Filter:
  • File Linking (Score:2, Interesting)

    by basking2 ( 233941 ) on Wednesday November 07, 2001 @09:45PM (#2535729) Homepage
    Because of the oodles of files that large java projects (or even moderately sized ones) tend to create, I would LOVE and environment that would via some magical interface, let you navigate to a file that defines an instantiated object.

    Yeah, it's a hairy feature to implement, and one that that I haven't seen much of outside of HTML environments, but file hopping when building your own libraries gets to be a pain in Java!

    My 2 cents. :-)
  • visual cafe, forte (Score:2, Interesting)

    by 3am ( 314579 ) on Wednesday November 07, 2001 @09:46PM (#2535737) Homepage
    forte is free (Free too, i believe), but isn't the best. The text editting is cumbersome. but heck, try it out (from Sun... you can find it from java.sun.com), and if you like it, you've saved a buck.

    visual cafe will cost you, but is quite good.

    honestly, J++ was my favorite (i'm ashamed to admit), but i certainly would recommend it any more :)

    metrowerks has one, too, but i wasn't very favorably impressed with my limited usage of it.
  • lots out there (Score:5, Interesting)

    by Anonymous Coward on Wednesday November 07, 2001 @09:47PM (#2535740)
    Well, most shops I've seen use Jbuilder [borland.com]. It's fast, it's very good and at least version 4 was free. It's the top dog for a reason. Unfortunately, they've switched to an absurdly expensive model for their upper tiers of commercial products.

    I've also used Codewarrior for Java [metrowerks.com], and have been pleasantly surprised. It's a top-notch environment. Metrowerks has done some fine work.

    Forte/NetBeans [sun.com] 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 [jedit.org]. 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 [intellij.com]. I really like it. Lots of "enterprise" features bundled in a relatively cheap package.

  • by mactari ( 220786 ) <rufwork AT gmail DOT com> on Wednesday November 07, 2001 @09:55PM (#2535791) Homepage
    What does a Java IDE need?

    * Open source -- I want a new feature, I add it. I see a bug, I fix it.
    * Code completion -- As much as you might hate M$, there ain't no faster coding that Visual Basic, and most of that is due to Intellivisio -- ur, Intellisense. If the IDE finishes my lines for me, that's half the battle right there. (Thanks, Mr. Ness)
    * GUI RAD -- Look, I want to program the nuts and bolts, not spend tons of times making a beautiful set of buttons. A RAD lets me WYSIWYG my way to a great UI.
    * Syntax highlighting -- as stated in the post, I like to see what's a string, what's a comment, and what's code. And see it quickly.
    * The exact same UI cross platform -- When I go from Windows at work to a UNIX workstation down the hall to my iBook at home, I want to use the same tool to program my "write once, test -- ur -- run everywhere" code. My code's crossplatform, why shouldn't my IDE be too?

    Hey, lookit there, I just described http://www.netbeans.org !

    Sun funds much of the development team, so I know I have support. But before Sun gets their hands on the code to turn it into Forte, I've got full access. Was actually reading /. waiting for Netbeans to download updates as I wrote this.

    Only drawback -- I sure wish this was written in assembler. ;^D Without a 1.8 GHz machine, it's still a little slow.
  • Forte for Java (Score:2, Interesting)

    by Josuah ( 26407 ) on Wednesday November 07, 2001 @09:56PM (#2535795) Homepage
    I've used Forte for Java Community Edition (CE) and it's really great. It's free, and supports most everything the developer needs, although if you need some beefier features you have to pay for the Enterprise Edition.

    The only problems I've had with it are a lackluster editor, which doesn't do as much syntax coloring as I would like or handle indentation very well (you have to right-click and choose to re-indent/nice-up the code).

    But one of the nice things about Forte is that it uses XML and plain text for all the project files. You can copy the files from one computer to another and even between platforms and you're good to go as long as you have a copy of Forte for Java over there.
  • by burner ( 8666 ) on Wednesday November 07, 2001 @09:58PM (#2535812) Homepage Journal
    oy. UML is nice for meetings and sketching things out, but the diagrams can (and should) be generated from the code, so any particular developer doesn't need to use it.

    All developers should be versed in reading UML and drawing out pseudo-UML on a whiteboard or a sketch page or whatever. But it's a needless step (for some developers, not all) in the development process when it comes down to a developer writing out the code for his/her component.

    So, I like Emacs+JDEE (for myself) and Eclipse (as a suggestion for others that don't like emacs). ArgoUML is becoming a decent free UML tool. UML diagrams should be generated from the code for new developers to be able to understand a developed system. High level architectural docs should be UML or better yet, simpler pseudo-UML.
  • VIMIDE (Score:2, Interesting)

    by matt[0] ( 12351 ) on Wednesday November 07, 2001 @10:04PM (#2535839) Homepage Journal
    If I were designing an IDE, I would integrate gvim as the text editor, integrate ANT, and include a UML-to-code component like in Together ControlPanel. It would also have to load very fast.

    NetBeans has ANT integration, Together does too, but they all have sh***y text editors and are sluggish.

    My suggestion is to buy a copy of Together CC 5.5 for laying out projects (give it to your chief architect), and let the coders use whatever they want. If you are doing a project which requires Swing, you also might want to use JBuilder. VisualAge is good but generates terrible code. It really helps to use one of those tools when laying out panels.
  • Re:Java IDEs (Score:4, Interesting)

    by KyleCordes ( 10679 ) on Wednesday November 07, 2001 @10:05PM (#2535841) Homepage
    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.
  • Re:Comments on Java (Score:2, Interesting)

    by matt[0] ( 12351 ) on Wednesday November 07, 2001 @10:13PM (#2535874) Homepage Journal
    Java seems like its on its way out.

    Are you serious?! I don't think Java is on its way out, it seems to be gathering steam. Look around -- many more companies are distributing signifigant products built with Java. The installer technology is finally getting to the point of being useful as well. I've shipped products built in Perl, C/C++. Java, VB and even some early access stuff in C#. Of all those, I see Java as having the most promising future.

  • by jabbo ( 860 ) <jabbo@yahoo. c o m> on Wednesday November 07, 2001 @10:18PM (#2535892)
    It's a cron-job type of thing and you'd have to write some elisp to integrate it with the lxr output (or hook into the fragment database), but it could be done:

    http://sourceforge.net/projects/lxr

    It looks like they're nearing a 1.0 release and have got the database integration and CVS integration cleaned up a lot lately. You'd still have some work to do if you wanted a fully-automated in-editor version of what you're asking for, but it would be fun stuff to implement, I think most of the drudgery is taken care of by now. Wow LXR has come a long way!!!

    When I was a full-time Java/C/C++ developer I often used DDD + XEmacs + the combination of LXR and CVSweb to keep my wits about me and could therefore point other developers to whatever I'd done recently, how it worked, and what it involved. Now I'm more of an admin/loose cannon...

    Haven't used LXR in a while and it seems like all my code has degenerated into componentized Perl, C, and Bash lately, but I still use CVSweb, JavaDoc-style docs (POD, JavaDoc, PHPdoc, Doxygen, whatever works), and a syntax-hilighting editor (Vim or XEmacs) whenever I write anything that'll be deployed for more than a week.
    I know that the Gnome and Mozilla projects use LXR integrated with CVSWeb, but don't judge it harshly just because of that ;-). (actually I'm using Galeon and kind of like it better than IE, so scratch my bitching about Mozilla)
  • Try this.... (Score:2, Interesting)

    by jheath ( 33357 ) on Wednesday November 07, 2001 @10:19PM (#2535897)
    Instead of learning an IDE how about focusing on what the language offers and how to best use it and the APIs that support what you do? Instead of spending money on the same IDE for everyone how about having the Java developers work on the Sun Java Programmers Certification together and let the company pay for that? Meet one day a week at lunch and discuss a chapter from a certification guide. If that's too basic how about springing for a copy of Design Patterns for everyone and go through it a pattern a week over lunch? Everybody down with patterns, then think about something similar with Martin Fowler's Refactoring or whatever strikes the group's fancy. Learn javadoc and how to exploit it effectively. Do code reviews and pair programming. Think about what you do and how you do it rather than ask "Gee, what tool can I go buy to do my work for me."

    In short figure out the actual tool (the Java language) and the ways to use it effectively rather (patterns and best practices) rather than waste the time and money learning to use a tool which may do "something" for you but ultimately rests between you and the tool you are working with, Java. Besides, you've got at least person that department that is using either vim or emacs and there's gonna be a fight when you come for their editor.
  • Re:Together (Score:2, Interesting)

    by matt[0] ( 12351 ) on Wednesday November 07, 2001 @10:42PM (#2535972) Homepage Journal
    Well....I dunno. It does round-tripping between code and diagrams, so it is useful when refactoring code. That alone would encourage me to buy it. Having it really helps when you are dealing with > 400 classes that you didn't write.
  • by Lord_Covenant ( 105707 ) on Wednesday November 07, 2001 @10:56PM (#2536034) Homepage
    I use EditPlus for general programming & text editing - it has syntax coloring files for everything (httpd.conf files even).

    I have used Together, and I usually dump new lumps of code in to get a handle on them. I don't use it for day-to-day editing.

    For straight Java that winds up being packaged as a JAR, I use VisualCafe. The JAR packaging tool is very nice. I'm a "real coder" and don't use the debugger really, so I can't comment for those who have had problems.

    I have been investigating NetBeans and believe that for machines that are 650MHz+ it's fine.

    Finally, the most revolutionary tool we use, which has radically improved our development is Macromedia DreamWeaver UltraDev. For our JSP work, I can't say enough nice things. It does an amazing job of parsing existing code and adding new code without reformatting or destroying custom tweaks. We have done a few things, like standardizing on a JDBC-driver level connection pooling mechanism, and it works great.

    Regardless of your tools, I cannot recommend adding memory to your development machine enough. No matter what you are doing, it's a lot more productive to be an alt-tab away from your other tool than having to go through a disk grind to load another app. 256MB would be a minimum. And before you squawk, it's cheap! Damn cheap!

    As a final note, we use CVS for version control. We mostly do development on Win2K and deploy to Linux and Solaris. Finally, we are really looking at Mac OS X closely as MySQL, Postgres and Apache look better there than on Win2K.

    All in all, it's a bunch of tools, but I feel about as productive as I have since THINK Pascal (bonus points if you remember that one).
  • Re:Who needs an IDE? (Score:2, Interesting)

    by boudreau ( 78766 ) on Wednesday November 07, 2001 @11:04PM (#2536070)
    Who needs one???

    Anyone on a large scale project does. Let's throw out some useful buzzwords: distributed, scalable, flexible, etc, etc.

    Projects that have those types of requirements and have a lot of developers should be using a good IDE, that contains an excellent debugger. My view is that the debugging feature is what adds the most value to any IDE so long as the IDE does not skimp out on all the basic (and advanced) text editing features.

    Just my $0.02
  • Re:Debuggers (Score:3, Interesting)

    by Reality Master 101 ( 179095 ) <RealityMaster101@gmail. c o m> on Wednesday November 07, 2001 @11:32PM (#2536176) Homepage Journal

    than a good IDE should have good debugger support...

    I'm not saying that there shouldn't be a debugger at all. In fact, I think I said that occasionally one is useful (particularly for analyzing core dumps). I'm mostly taking issue with the AC who ignores the advice anyone who doesn't use a debugger, which is absurd.

    I know I'll never convince people who use debuggers, because it sounds so counter-intuitive, but I have to put out the seed every now and then. I used to go through it with my employees all the time. It used to drive me crazy watching them stare blindly at the debugger, when all they had to do was put in some printf statements and then analyze the program flow to see the problem.

    And that's the big advantage of printf-style debugging. It lets you see the flow of your program at a higher level, rather than micro-watching it at the line-by-line level. It lets you selectively output what's important, rather than having to deal with all the trivial details. Also, when you leave in all the tracing, you get a debug log everytime you run it to see what happened when something else blows up.

    Oh well, I know from experience that this is one of those debates that you can't win. :)

  • by Anonymous Coward on Thursday November 08, 2001 @12:05AM (#2536296)
    If you're not doing GUI work, then your choices are significantly different from those of us who need to do graphical work. I've used JBuilder, Visual Cafe, jEdit, emacs, codewarrior (very little) and I've written programs in simpletext as well. For GUIs, go with JBuilder if you've got the money and maybe check out codewarrior. Visual Cafe has the worst habits concerning rendering objects that I could imagine in an IDE put on market - if you write perfect code but in between their markers it can no longer render, even if you just make simple changes method calls. Therefore everything you write in Vis. Cafe has to have exactly the same organization to the code, which would be cool if you could pick what it was (and turn it off) or okay if it was a "good" organization, but no.

    JBuilder is much better, it doesn't force moronic structures into your code, other than always having a try-catch block around it's jbInit() methods - unlike Cafe, though, you can remove or rename the without problem and they only come up for GUI objects (and aren't a nuisance). It does "real time" rendering rather well with rare exceptions such as with code that has static blocks, interfaces in some situations, or if you have no empty constructor. Code lookup is good, macros, you can write plug ins for it. Overall pretty nice and it isn't particularly slow, at least on machines from the past couple years with decent RAM. Also, it's written in Java so it runs on Windows, Linux and Mac, although the Mac version isn't useable yet because the Apple vm anti-aliases the text so it looks like the text is drawn by crayon - that's Apple's fault, actually. Last year when I tried it, Codewarrior wasn't quite up to speed but I would take a look at it now just because their Apple IDEs are pretty high up there.

    As far as non-GUI work, well, that, to me, is mainly just personal preference, not so much based on feature sets, because most people recommending things like jEdit and such aren't working on large scale applications, or if they are (and are at the point where it can really be considered large scale) they must have a unique way of managing their different projects and packages. Anymore I'm used to using a system consisting of CVS, ANT and JBuilder for file, package and version management and I haven't seen anything else easier for a group environment.

    Given my GUI oriented job, I'm used to using jBuilder and am relatively happy with it. It has struck me that I haven't heard of an open source Java IDE (writ in Java) yet, though I honestly haven't looked much, which I happened to have been thinking about recently. Personally I'd love to see something out there to make borland fix what bugs remain and I'd be interested in how something like jBuilder is made, since there are definite memory and speed hurdles to overcome - which jBuilder does rather impressively (though I use a PIII 850 with 368MB RAM).

  • Java IDEs (Score:1, Interesting)

    by Anonymous Coward on Thursday November 08, 2001 @12:21AM (#2536338)
    I actually have used several in my career as a professional java developer, and here are my picks:

    If your machine has the resources (fast processor, and at LEAST 256MB of RAM, preferrably 512MB then I would suggest Sun Forte or Netbeans. Netbeans usually has the latest stuff since it's the open source version. The latest version, 3.3 beta2 has support for XML, JSP, XSL, servlets, and has integrated ant, junit, cvs, etc... very cool

    JBuilder is good, but never been my favorite.

    If resources are limited, then I usually use either vim 6.0 or xemacs with the JDE package installed. Xemacs with JDE is nice because it's not a resource hog, and comes with a nice class browser.

    Another good one, if you're not an vi or emacs person, and prefer the newer IDE type editors, is Visual Slickedit. This has a VERY integrated class browser that supports several languages including java and C++, and even supports C symbol browsing which can make finding functions very nice. The only thing I don't like about Visual Slickedit is the way it integrades version control systems and it's lack of support for XML.
  • by lsd ( 36021 ) on Thursday November 08, 2001 @01:08AM (#2536463) Homepage
    Because my Java work is almost exclusively centred around servlets, I don't need anything too fancy GUI-wise. In fact, I find the best way to work is the same way I've worked with other languages for years - with a text editor and a build tool. Vim [vim.org] is IMHO still the best source-code editor around, but what is there to use as a build tool when it comes to Java?

    Ant [apache.org], of course :) Ant's a very powerful build tool that combines an XML-based build-script markup with the power to write your own custom tasks in Java, and in my environment it makes building/testing/deploying a breeze. Simple, powerful and effective - great stuff :)
  • Re:Together (Score:2, Interesting)

    by qapla ( 25141 ) on Thursday November 08, 2001 @01:58AM (#2536625)
    Together is an amazing program.

    The best version in my opinion is 3.0 (I don't know if you can still buy it, but it is reasonably fast and does everything that it needs to do... later versions are somewhat buggy it seems).

    Also... it is made with Swing which is a huge drawback... it runs just as slow on my dual 1.5 GHz Athlon box as it does on my 550Mhz PIII... so something must be wrong with the code...

    But overall, what Together does is so amazingly useful that I can ignore the sluggishness. The way it keeps the model in sync with the code is worth a fortune in enhanced productivity. It's the best development environment I've ever used... If only they could re-implement it in C :)
  • by Mr Thinly Sliced ( 73041 ) on Thursday November 08, 2001 @02:49AM (#2536737) Journal
    > Most importantly, what I really STRONGLY don't recommend is forcing everyone in the
    > company to use the same IDE.

    It's interesting to note how many dev shops force their developers to use a particular operating system too - this is gradually changing but what I really want to do is develop in the way I am most productive and making me use windows + JBuilder cos everyone there does is pants at best, unproductive and expensive at worst. It's got to the stage now that I take my laptop with me. (Linux/emacs watch me alt-meta-shift-cokebottle [houghi.org] those naughty windows boys)

  • by SuperKendall ( 25149 ) on Thursday November 08, 2001 @02:58AM (#2536756)
    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).

    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)

    .bashrc (defines environemnt variables needed to run ant along with ant shortcut alias)

    setEnv.sh.default (keep this one in source control and people can modify it locally once for odd setups - called by .bashrc under name setenv.sh)

    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.)
  • Visual Age for Java (Score:3, Interesting)

    by under_score ( 65824 ) <mishkin@be[ ]ig.com ['rte' in gap]> on Thursday November 08, 2001 @07:56AM (#2537196) Homepage
    Most of the highly moderated comments have consisted of info about IDE's that are quite traditional: development is editing .java files. Visual Age for Java is significantly different. It is an incremental compiler which means that every change you make is immediately compiled when it is saved: you immediately know Everywhere you have made a mistake. As well, instead of working at a class level, you work at a method level. You edit methods not .java files. It has support for some basic refactorings. The really amazing thing is the debugger: you can change the code while debugging! If you find a mistake, you don't need to stop the process, you just change the code, save, and continue. The debugger, appropriately unrolls the stack (and whatever else it needs to do), and continues as if the change you made had always been there. Talk about making the code-compile-run-debug cycle efficient!!! IBM has a free trial download (its only a little crippled - limit of 700 classes). I strongly recommend trying it out. You have to work with it a little bit to see just how powerful these things are. I can't stand using anything else now. JBuilder sucks in comparison!
  • Some IDE Experience (Score:2, Interesting)

    by YottaMatt ( 535195 ) <mhilliard@yottay ... .com minus berry> on Thursday November 08, 2001 @01:25PM (#2538394)
    Over the past 4 years I've used numerous IDE's spanning a mulititude of versions and platforms.
    Here's a few notes about each one I've used:

    Emacs.
    It's emacs. If you don't know about what emacs can do, you'll be just as happy NOT knowing what emacs can do.

    Visual J++.
    It doesn't suck as hard as you'd expect, but it does suck. It has the standard "auto-complete" functionality you'd expect from any stadard IDE, integrates with Visual Source Save (which DOES suck, but still beats no source control tree at all) And promotes the MS JVM (Java 1.1) which does GUI reasonably well becasue it wraps MFC. Adding numerous JAR files and generating JAR files in as akward as tyiping this sort of info in a CLI. It chokes horribly if you change windows associations for .java and .class files to some other IDE, and follows that same IDE functionality as anything else in Visual Studio.

    Codewarrior (v3.0)
    I found this IDE at about the same par as VJ++. If you want to run Java on a classic MacOS however, you DO want this in a repitoire of IDEs to use. It may have gotten better over the last 2 years.

    Forte (v1.0, 2.0, 3.0, all Community Edition)
    Wow. If your standard desktop has MHz and RAM to burn--and lets face it that stuff is cheap these days--This is the most versatile and comprehensive IDE I've used. It has half decent XML generation/integration tools, auto-complete, standard library integration, multiple JVM integration, GUI-generation tools, JSP syntax parser and JSP/servlet engine, debugger, CVS integration, a javadoc parser, to enforce proper documentation, multiple filesystems support and its package management is second to none. Rational makes an integrated UML tool. And NetBeans makes this easily upgradeable and enhanceable in any number of ways. There's other good stuff too, but this is the stuff I really look for in an IDE. On the downside, it has a steeper than average learning curve because it offers SO MUCH, and this thing is a resource PIG (It occupies 90MB of RAM on an empty project, just idling).

    JBuilder ( v3.0, 3.5, 4.0, 5.0, All Editions)
    JBuilder is awesome. If provides MOST of the usefulness of Forte (see my list of cool Forte stuff) without all the bloat. Its faster, lighter, and more intuative in general, and is the one I use, whenever able. It has a few uniqe features, like an-auto implementation for children of abstract classes or implementing any number of interfaces. Its free version is ample for any small project, but to integrate this thing with CVS, you have to fork over thousands for the enterprise edition (not that you can't use CVS from the CLI itself, we're talking about the IDE doing it for you).

    Visual Age (v3.0)
    Its written in smalltalk. Who knew? I never took to Visual Age, though I know people who swear by it. It seems to provide all the standard stuff, but for me it has one fatal flaw--It doesn't work with flat files. It does all of it's persistance without flat files (forcing all Visual Age projects to have revision control), and this makes working with multiple IDEs (3rd party tools) vitually impossible. Again, this may have changed in the interem, but I'm already hooked on JBuilder.

    In general I use JBuilder, because I like it the most, but on occasion, I load Forte to get some functionality JBuilder doesn't provide. Both support dynamic file loading, so changes done by one and saved are instantly noticed (option to reload) by the other. JBuilder is the best IDE for working on entirely separate projects in parallel, or for creating a new one based on an old one (you can switch projects using a single menu).

    I reccomend both of them, and USING both of them.
    If you have to pick one over the other, make sure you've done at least a weeks work with each.
    I would model any new IDE's after both of them. JBuilder is fast, and light, and has the best editor and a well thought out interface. But it does lack some common usefluness, like code auto-formating or Forte's javadoc parser or XML/DTD tools.

    Just me $0.02

What is research but a blind date with knowledge? -- Will Harvey

Working...