Slashdot Mirror


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?

124 of 679 comments (clear)

  1. Together by wintahmoot · · Score: 4, Informative

    You should definitely have a look at Together Controlcenter from TogetherSoft. It's not really an editor, but great for modelling Java applications.

    http://www.togethersoft.com/

    Hope you like it...

    1. Re:Together by igrek · · Score: 5, Informative

      Together is nice, but last time I checked it was very expensive. Something like $7000 for single-user/single-computer license or $11000 for floating license.

      I don't mind paying for good software, but 4-5 digit figures... it's too much, IMHO.

    2. Re:Together by matt[0] · · Score: 2, Informative

      We bought one license of Together 4.2, and premium subscription to get the upgrades (now running 5.5), I use it as I am our "chief architect". It is just too pricy to outfit a whole shop with, unless you are insanely successful and can afford 7G for software.

      It is also a bit slow for general use (I run it on a P3-1000/512MB Ram/IBM A22p), I usually design in Together and code in VIM.

      --
      --------- Matt
    3. Re:Together by matt[0] · · Score: 2, Interesting

      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.

      --
      --------- Matt
    4. Re:Together by qapla · · Score: 2, Interesting

      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 :)

    5. Re:Together by togethergod · · Score: 2

      Memory is cheep, what you can't talk IT into a little extra RAM? Even if you have to buy it yourself, on salary that is that much more time to spend doing something besides work. Michael

  2. JCreator by Qui-Gon · · Score: 4, Informative

    Its has a simple interface. Does syntax highlighting,projects,etc. check it out. The only downer is it only for Windows. :(

    www.jcreator.com

    --

    We are blind to the Worlds within us
    waiting to be born...
  3. Who needs an IDE? by tapin · · Score: 2, Insightful
    cc-mode.el

    Syntax highlighting, data dictionary, easy compilation and debugging... what else do you want?

    1. Re:Who needs an IDE? by boudreau · · Score: 2, Interesting

      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

    2. Re:Who needs an IDE? by Mandrias · · Score: 2, Informative

      Forte is wonderful. But it's akin to netscape is to mozilla...

      I prefer mozilla over the branded netscape browser... and with java IDE's, I prefer Netbeans over the branded version Forte.

      check it out at http://www.netbeans.org

      Same exact thing as forte, yet always ahead of forte in the development cycle.

      --
      Use the Z-modem protocol between Information Superhighway routers to compress the plaintext. ~LordOfYourPants
  4. Blech. Most of them are pretty bad. by sylvester · · Score: 5, Informative

    I've worked extensively in both Jbuilder (2.0, 3.0, 3.5, 4.0 and 5.0) and more recently Netbeans (an offshoot of Forte).

    Every version of JBuilder, I hope that it gets faster. It never did. And they changed their licencing for their free version, so i moved away from it.

    Netbeans is dog slow, too.

    If I were building a java IDE, it would be slim and trim. I don't use debuggers - proper logging and the occasional use of system.out.println()'s is enough for me. I want syntax highlighting, PROPERLY FLEXIBLE code reformatting, and name-completion. And I want it fast. I guess the problem with most Java IDEs are that they're written in Java (which makes sense) but without enough attention to writing fast java (which _is_ possible.)

    Netbeans has some really nice simple features like abbreviations (Think autocorrect in MS-Word) so impj expands to "import java." and "psf" expands to "private static final" (how many times have you typed _that_?) but it doesn't have much for code reformatting. And it's stupidly huge.

    And no, I don't like emacs. I'm a GUI guy, and emacs (or xemacs or whatever) doesn't cut it for me.

  5. File Linking by basking2 · · Score: 2, Interesting

    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. :-)

    --
    Sam
  6. IDE - Editor or round trip engineering tool? by Mr+Thinly+Sliced · · Score: 5, Informative

    Well, as always, the text editor itself is really up to you - I use the ubiquitous emacs along with the fantastic jdee IDE that installs inside emacs for syntax highlighting, quick toolbar access to your classes, and easy creation of class from templates.

    If you are serious about writing good OO componentised java though, its almost essential now to use a decent UML tool during the design stages and further like rational rose / together.

    One of the nice things about together is that it works by placing javadoc comments inside your java - so your design documentation is never out of step with your source. Invaluable.

    I don't work for together - but I do find their tool helps me visualise the workings of complex systems without remembering all the methods and stuff.

    So if I had to put a finger on it - let developers choose their editor/IDE themselves, but get all developers to use a UML tool independant of the IDE.


    Mr Thinly Sliced
    1. Re:IDE - Editor or round trip engineering tool? by burner · · Score: 3, Interesting

      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.

      --
      MRSH-Recording device, corned beef sandwich with kraut, seafaring bird, and the foamy top of a beverage.
    2. Re:IDE - Editor or round trip engineering tool? by landtuna · · Score: 2, Informative
      I agree that jdee over emacs is a great solution for Java development. The original poster also asked about JSPs.

      Support for JSPs in emacs isn't there automatically with JDEE, but the mmm-mode module works great. It deals with the problem of having both HTML formatted code and Java code in the same buffer.

    3. Re:IDE - Editor or round trip engineering tool? by Dief_76 · · Score: 2, Funny

      Hell, why not do it the easy way?

      Write the code, get it up and running, and then reverse engineer it into UML via the Rational Rose tools. Satisfies the Architect-types, and makes you look as though you've stuck to the design outlined by those pretty UML pictures.

      Err.. not that I've ever done it that way. Nu-uh, not me.

    4. Re:IDE - Editor or round trip engineering tool? by mj6798 · · Score: 3, Insightful
      Using an automatic tool to generate/maintain UML is a bad idea. UML should represent stuff in your head, stuff that you consider important. The exercise of drawing it by hand is an important part of the UML design process (you are supposed to remember all those methods; if you can't, your system should probably be simplified). And too much detail is just as bad as too little detail.

      In practice, I have also found the various "enhanced" IDEs (with support for roundtrip UML or refactoring) to be too sluggish. I prefer a fast editor, a fast compiler, and some simple linking between error messages and source code any time

    5. Re:IDE - Editor or round trip engineering tool? by mj6798 · · Score: 2
      By generating UML a developer can quickly and efficiently offload a whole heap of information in a way other developers can pick up quickly even if the original designer isn't about.

      But generated UML is not the same as hand-crafted UML. Generated UML is a complete representation of the system, like a circuit diagram that shows every transistor; it doesn't contain any information about what the designer had in mind and it contains huge amounts of irrelevant detail. Hand-crafted UML, on the other hand, is deliberately incomplete and focusses on the important stuff. It expresses what the designer actually was trying to do without the distraction of unimportant low-level detail.

      In my experience, hand-crafted UML is more useful to the reader. It's also more useful to the designer because the exercise of creating it forces some useful introspection that is well worth the time and effort.

  7. Look into Eclipse! by gmjohnston · · Score: 5, Informative

    IBM just announced (in the past day or so) the release to the open source community of Eclipse (http://www.eclipse.org/). Not only is it a great Java IDE, it's also designed for extensibility from the ground up.

  8. visual cafe, forte by 3am · · Score: 2, Interesting

    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.

    --

    A: None. The Universe spins the bulb, and the Zen master merely stays out of the way.
  9. jedit by ocipio · · Score: 2, Informative

    use jEdit.

    Written in Java. Its not an IDE, but its an excellent editor.

  10. lots out there by Anonymous Coward · · Score: 5, Interesting
    Well, most shops I've seen use Jbuilder. 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, 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.

    1. Re:lots out there by danox · · Score: 2, Informative

      I currently use Forte. This program definately requires some hardware thrown at it. It was just bearable on a 500mghz PII with 245MB RAM. I upgraded to a 1.7 Mghz P4 with 1GIG RAM, and it is very usable. I like forte becasue it is both simple and powerfull. It only does as much as you need it to do. I especially like the new method for creating .jar files in V3, two clicks and your jar file is recreated exactly the way you want. I also like how it can be used to browse the contents of a .properties file. And it's XML suport is cool as well. (XML files appear in the explorer as a node, and you expend the entire tree and change values from the propery window without ever editing the file directly). I use forte for programs that I am developing on my own. One drawback I have noticed with forte, is that since it lives on the JVM, if you crash the JVM while testing a program, you also take down forte, bummer.

      For team projects, my company uses IBM Visual Age for Java. Still resource hungry (though it doesn't touch FORTE) it has the best team based development model that I have found. The IDE connects directly to a server-based reposititory in which all code is kept. Anyone can alter any code they want, but they then have to version their code for it to be available to others. Each class, package and project has a manager, who is able to meld the different versions together and then release the official version of the code. It works well in a heighrachical structure, but can get messy when there is no clear line of ownership in the project.

      --
      "Me and my girl named bimbo . . . limbo . . . spam" - Captain Beefheart.
  11. NetBeans by Satai · · Score: 2

    NetBeans is an amazing IDE, although it was a bit slow on my 400 Celeron at work.

  12. Together by ajole · · Score: 2, Informative
    At Queen Mary and Westfield College in London we use TogetherJ by Together soft.
    With together you can make use cases, sequence charts, state charts, all the edu text-book stuff, but most of all are class diagrams. make us happy. works for c++, too.
    It's a hog, though, so get a fat machine. Forte isn't bad, though for a nice IDE.

    I gotta agree though, emacs is the shtuff.

    Patrick Kidd

    --
    -P ...and the boy pulled open his bleary eyes an discovered the python he always knew he was.
  13. CodeWarrior by MBCook · · Score: 3, Informative

    What about CodeWarrior by Metrowerks? I use it for C++ codeing and I think that it's great. It's got stanex highlighting, a debugger, etc. It can also do C and Java, so maybe that would be right up your alley.

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    1. Re:CodeWarrior by TWR · · Score: 2
      CodeWarrior doesn't generate code, unless you use its icky UI tools.

      It is simply the best damn text editor out there for Mac and PC, combined with a good compiler and project system. Its search (regexp compatible) and diff tools rock. I've been using CW almost exclusively for Java development since 1997.

      The biggest shame is that Metrowerks (now a subsidiary of Motorola) is focusing on J2ME and ending any sort of focus on J2SE and J2EE behind. The tools are now priced like microcontroler tools (i.e., not for individual professional programmers), and nice things like ejbc integration will never happen.

      CodeWarrior with ant integration would be my ideal Java IDE. -jon

      --

      Remember Amalek.

  14. Re:Blech. Most of them are pretty bad. by rfsayre · · Score: 5, Informative

    There is Eclipse, which I've never used, but it got good reviews from Netbeans users (I have used Netbeans). It appears promising as it as a natively implemented GUI (SWT), and a completely modular design. It also has refactoring and other neat stuff check out this recent article.

  15. Forte. by DGolden · · Score: 4, Insightful

    Um, I think Forte/NetBeans and IBM VisualAge/WebSphereStudio/Eclipse/Whatever have the serious Java IDE market pretty much sewn up between them. Borland used to be a player, but aren't now.

    It's been months since I've met anyone who doesn't use Forte/NetBeans, although people targetting IBM Websphere server tend to use VisualAge for Java.

    One feature I'd like to see is a "see-through" source pane, showing superclass code with a muted background in the same pane as the class you're editing, so that you don't have to hold so much state (remembering the superclass) in your head, perhaps with a configurable depth to which to walk back up the class hierarchy. This would make working with inheritance easier for dolts like me.

    --
    Choice of masters is not freedom.
  16. Debuggers by Reality+Master+101 · · Score: 2, Insightful

    I agree with him. Take a look at the top developers (Linus Torvalds for example); almost all the best programmers use printf's (or the equivalent) and only fire up the debugger if its absolutely necessary. It's very often the case that debuggers make programmers lazy. They will spend an hour single stepping through the code rather than actually looking at the code and figuring out where to put a few well-placed printf's.

    There are certainly top programmers who use debuggers (Carmack, for example, uses one I believe), but in my experience it's more the exception than the rule.

    And yes, I've developed both ways. I always end up returning to simple printf's because it ends up using much less aggregate time than using the debugger.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Debuggers by Reality+Master+101 · · Score: 3, Interesting

      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. :)

      --
      Sometimes it's best to just let stupid people be stupid.
    2. Re:Debuggers by Trepidity · · Score: 2

      I don't see *any* advantage to printf statements. If you take the line in the code you would've put the printf statement at, and instead set a breakpoint at that line, and then inspect the value of the variable you would've printed out, you have the *exact* same effect with no recompilation. And if that gives you useful information (perhaps reminds me of somewhere else to look for the bug), you can now investigate further without yet ANOTHER recompile.

      What could possibly be the advantage of using the printf instead of just inspecting the variable at that line?

    3. Re:Debuggers by MSBob · · Score: 2
      If I had to do that with a breakpoint I would have to press 'continue' too often and only get the results I want one line at a time.

      Ever heard of conditional breakpoints? Even gdb supports them. Learn your tools well before using obsolete debugging methods (like printf).

      --
      Your pizza just the way you ought to have it.
    4. Re:Debuggers by greenrd · · Score: 2
      I hadn't. I wish jdb supported them, that would be really handy.

  17. Kawa by benb · · Score: 2, Informative

    Kawa was a nice IDE a few years ago. (But not open-source.)

    I didn't track it, but it seems like it got pushed around between several companies and has finally been dumped by Macromedia. Morons.

    1. Re:Kawa by Fnkmaster · · Score: 2
      That practically makes me cry. Things like this make me so thankful for Free Software. Why the hell would you ever kill off a product that people DO want and use? I suppose a large piece of enterprise software junk that nobody is going to use does the world no good if open sourced, but something like a nice Java IDE could make so many people happy and create such a positive net effect on so many.


      Bastards.

  18. I use by nebby · · Score: 5, Insightful

    Slickedit, hands down the best balance between Notepad and a full fledged IDE I've seen. Think emacs, but with a better GUI and without all the extra crap and ridiculous key combos.

    I've cranked out many lines of Java code with it, so it's lasted the long haul for me.

    --
    --
    1. Re:I use by hattig · · Score: 3, Insightful
      Is that you, Roy? :)

      Seriously, SlickEdit appears to be amazing, but I am an emacs man, and I like my mode of operation: [edit stuff]
      ctrl-x v v [cvs comment] ctrl-c ctrl-c

      SlickEdit doesn't do CVS, but it does other code repositories.

      It also has emacs emulation.

      It is a lot for an editor. And I have only seen badly formatted code generated using it - sure programmer disfunction, but annoying.

      You have to get comfortable with your editing environment. Once comfortable (say, a few weeks regular use) then you can evaluate it.

      One thing - I hate editors that restrict you to Courier. That is a crap editing font.

      kate (KDE editor) is also nice as well, and configurable. Built in console option, and multiple files open at the same time in a good GUI. Multiple highlighting modes (not as advanced as the 'old' KDE Advanced Editor though), not restricted to a fixed-width font, etc. I like it.

      I used to like the old Amiga editors as well. BED. GoldED. CygnusEd. They were solid and good as well. Not relevant to the topic, but interesting anyway.

    2. Re:I use by richieb · · Score: 2
      it can emulate EMACS

      Oh, yea! Can you do M-x tetris ???

      ...richie

      --
      ...richie - It is a good day to code.
    3. Re:I use by MemRaven · · Score: 3, Informative
      I use slickedit on a regular basis. And we use P4 at our shop (i.e. not one of the "default" source control systems). If you go to Tools->VersionControl->Setup you can actually specify all the commands with keyword replacement to put in any other command-line based source control system. So you can integrate with CVS using it if you just type in a few commands. So in that case Visual SlickEdit does do CVS.

      Visual SlickEdit also allows you to pick all your fonts (great for me who loves lucida sans in 9 point).

      I've seen badly formatted code with Visual SlickEdit, but it's probably programmer error. If you know how to set up your autoformatting stuff (just how it does open and close braces when it does it automatically, and yes, you can turn it off) then you can get it to happen just how you like it. It doesn't look exactly like emacs-default, but I personally hate most of hte emacs-defaults, so there you go.

      One thing that I haven't seen yet is the tags support. While in ctags you have to do something (like hit a key) to see a tag, in visual slickedit you just over over a keyword and it shows you in another pane all the references or the source of any local or class or global variable. And of course it does the drop-down listbox for all the member variables and methods and suchlike. That's the feature that really got me hooked on it, and I find it difficult to live without it at this point.

  19. Personal Experiences (Netbeans) by Angry+Black+Man · · Score: 2

    Personally I have only used Netbeans (an open source IDE writte entirely in, you guessed it, java) and Forte. I've heard of some people who like a Tek-tools product but I don't know much about it.

    The thing I like about Netbeans is that it runs on Linux AND Windows. Again, personally, I've only used the Linux version. I think they also have maybe a Mac OS, OS/2, and Unix (?) version of the product. The difference between Netbeans and Forte is that development builds come out often with new features that I can't deny loving.

    Of course, no product is without bugs. Fortre has bugs. Netbeans has bugs. The only major problem I've found using Netbeans is that when you request an inexistent branch during checkout the program crashes. There are a few other petty problems, but, again there are builds that come out all the time and bugfixes almost daily. Hope this helps!

    --
    the byproduct of years of oppression by the white man
  20. Netbeans by illusion_2K · · Score: 5, Informative

    During the whole discussion of Eclipse the other day, I wrote about how it differs from Netbeans.

    For me it meets pretty much all of my needs:

    Open source

    Decent interface (although some people disagree), which you can configure to appear as a single window or multiple windows (great for those multi-monitor setups)

    Support for CVS

    Ability to mount FTP directories as a filesystem so that I can store projects on the servers at school

    Support for a whole wack of Java standards which I don't use at all - JINI, JSP, beans, etc...

    ANT build scipts

    Plenty of other stuff I won't bother to mention.

    In fact the only real minus to it is that it is kind of a memory hog and takes a bit to load up (probably because it's written all in Java). Either way though, it's worth a look.

  21. use the emacs JDE by phranking · · Score: 2, Insightful

    Its what I use, a bunch of (I think) lisp modules that plug into emacs and keybind all sorts of whiz bang keystroke saving nonsense (ex. "bo" auto-expands to "boolean" and M-/ scroll completes variable and method names ala bash's tab key). I had massive wrist problems, and got a kinesis and installed the ide and I'd estimate my total number of keystrokes is down to maybe a third of what it used to be without JDE's code completion functionality. Not to mention the built in debugger, which shows all variables in scope in a particular instance of a class (which also kind of sucks when the stack gets really huge, or you've got a really meaty instance, but hey). As far as GUI building - I've always found that I've better luck with swing when I get in there and lay stuff out explicitly.

  22. What makes a good IDE, aka: Netbeans is real close by mactari · · Score: 3, Interesting

    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.

    --

    It's all 0s and 1s. Or it's not.
  23. NetBeans / JDeveloper by Xofer+D · · Score: 2
    I like the idea of NetBeans, a free and Open Source (Mozilla-esque license) Java-based Java IDE. Uh, looks like the site isn't responding, so here's the Google cache. I like its UI design, too. However, my experience with it has been that it's really really slow. I suspect misconfiguration on my part, since I haven't heard more general revulsion towards it. 30 seconds to build "Hello, World!" would cause revulsion, I figure. Still, having an IDE that runs on all platforms is nice.

    On Windows, I've used Oracle JDeveloper, which is Free(beer) software and can be downloaded from the Oracle Tech Network site if you register. I've mainly used the older version (3.1) for doing JSP work, but it contains some native code and is thus faster. I think Jdeveloper was based on Borland Jbuilder, but I'm not familiar with the new version.

    --
    The Signal/Noise ratio can be improved in two ways. Remaining silent is the OTHER way.
  24. Forte for Java by Josuah · · Score: 2, Interesting

    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.

  25. Plugins, plugins, plugins by Pedrito · · Score: 2

    I haven't written an IDE, but I use one (Is that kind of like, IANAD but I play one on TV?). Start simple. Make a basic editor with color coding for keywords, maybe even variables and other things. Most importantly, make it extensible via plugins. If you're going to go open-source, this means that you don't have to write all the functionality. Other people will write coold stuff to plug into it.

    I don't do Java, but I've played with it and the lack of a good IDE is a problem. Make it possible to plugin new functionality (code-snippet libraries, integrated CVS, regular expression/text search tools, etc) and people will add to it.

    The current project I'm in involves a very component-based system. One of the best things we ever did was to add a "plugin" capability to our system. We now support one executeable (with very limited functionality), but we have a bunch of different options, in the form of plugins, that we can ship to different customers to fit their needs. If there's a bug in the primary code, then we fix it and all of our customers get it, no matter what customizations they have.

    Granted, I'm the architect of the product, so I've got a little pride in the fact that it works so well for us (not that plugins were my idea, but for our product, it's original). But after seeing it work so well, I'm sold on the idea of creating component-based, extensible products. I think it's something that would work especially well in the open-source environment.

    1. Re:Plugins, plugins, plugins by Wawazuzu · · Score: 3, Informative

      You should have a look at jedit it is not a complete IDE but rather a very powerful text editor with _tons_ of plugins (anything from a java class browser to a full featured irc client). And it's open source also.

  26. Try CodeGuide by Anonymous Coward · · Score: 2, Insightful

    CodeGuide by OmniCore (www.omnicore.com) is pretty inexpensive, performs really well, and has a bunch of useful features, including very good code introspection and completion. It doesn't do GUI form editing, purely code editing, but that's all I need it for since I do exclusively server side work.

  27. IntelliJ IDEA: the best IDE around! by Kablooie!! · · Score: 5, Informative
    I don't work for intellij: I'm just a very satisfied customer.

    Check out IntelliJ IDEA at http://www.intellij.com.

    IDEA is an excellent fully-integrated IDE. It supports (among many other things):

    • Full syntax highlighting of Java and JSPs
    • All the smart editor functions you would ever want
    • Configurable coding style pretty-printer
    • Integrated debugger, CVS, ANT, and extensible with an "External Tools" interface
    • Shortcuts galore- you can do everything with the keyboard if you choose.
    • The big thing: Built-in support for a whole mess of Refactorings
    • And a whole lot more

    IDEA is written in Java, so it works on the main platforms (I personally use it on Solaris, Linux, and occasionally Win NT/2000). Despite this, performace is good.

    It costs something like $400US and I think it is worth every penny.

    Grant

    --
    Shop Smart. Shop S-Mart.
    1. Re:IntelliJ IDEA: the best IDE around! by dubl-u · · Score: 3, Informative

      Yep! I've been using it for the last couple of months, and it's the first IDE that I thought was worth the bother.

      Before IDEA, I used things like vi or nedit. Every IDE I tried seemed to be mainly an interface annoyance coupled with a bunch of code generations tools (which personally I think are for dolts). Or instead it turned out to be something that insisted on a particular way of development that had very little to do with how I worked (hello, TogetherJ and VisualAge).

      But IDEA has excellent attention to UI: it does what I want about 90% of the time; JBuilder is more like 30%. And its automated refactorings are the bees knees; being able to safely and quickly rename a method across a 1000-class project is alone worth the money. And that sez nothing about the other refactorings or the many other handy tools.

      And like the previous poster, I'm not affiliated with IntelliJ; I just think their products kick enough ass that I coughed up my own personal dough for a copy to use at work.

  28. VIMIDE by matt[0] · · Score: 2, Interesting

    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.

    --
    --------- Matt
  29. Re:Java IDEs by KyleCordes · · Score: 4, Interesting

    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.

  30. Have a look at Kawa by imrdkl · · Score: 2
    It's minimalist although the company was recently sold, and it seems to be growing in alliances with other vendors. Especially good for beginners, imho. The recent integration with CodeWright makes it very flexible for the advanced user as well.

    Lately, I've also tried using ctags(1), with the newer options for parsing java code:

    $ ctags --lang=java
    then combining the tag files with Vim(1) using Vim's syntax highlighting and the tags to hop around. ctags and vim dont really give you a visual class browser... but they're free.
    1. Re:Have a look at Kawa by imrdkl · · Score: 2

      Aak, bad link. Sorry. Kawa is here. I actually wasn't gonna even give a link. But since I gave it wrong, I'll fix it.

  31. Java based IDE by updatelee · · Score: 2, Informative

    I would love to use an IDE, a great editor with debugging eatures like stack trace and step by step variable windows. that would be great. I use ultraedit for coding php, Ive use ZendIDE a java based IDE, dont like it, the editor just isnt as powerull as ultraedit.

    Chris Lee
    lee@mediawaveonline.com

  32. Omnicore CodeGuide by rodbegbie · · Score: 3, Insightful

    Codeguide from Omnicore is absolutely outstanding. Its automatic code help feature is incredible. You can see the errors in your code before trying a compile.

    I use Forte, and find it painfully slow, but its Swing forms designer tool is superb (it's a piece of cake to do GridBag layouts!)

    CodeGuide is the best I've used in terms of quick, easy code development.

    rOD.

    --
    Rod Begbie done this, and he's not
  33. I use Idea, personally. by mrAgreeable · · Score: 5, Informative

    I've tried several. Here's a rundown of what I've experienced. All of these have syntax highlighting, code completion, popup parameter help, can jump to the place a class or variable was defined. The all have a debugger.

    Codeguide This was my first java IDE. I used it for a while. For a java IDE it's not so slow. Real-time compilation shows any code mistakes (it underlines them red), even stuff that others miss. Free evaluation version. Not terribly expensive. Relatively poor debugger. Nice autoindenting and code formatting. Virtually nonexistant CVS integration. Closed source.

    JBuilder : Slow. Does a lot. Has excellent plugin support, so it can be extended a lot. Nice project management. The Enterprise version has excellent CVS integration. Has a visual editor if you do a lot of Swing programming. Fairly poor real-time error detecting. The best "enterprise" tools of these I mention. If you're doing j2ee stuff maybe you can use that stuff. Nice debugger. Library support for editing classpath is great. Autoindenting and code formatting a little weaker. Frustrating memory leak under linux has been plaguing it for years. There is a free version, closed source.

    NetBeans SLOW. Reall, really slow. Has a ton of plugins. Ant integration is cool. Project management is a little hard to get used to. Etrememly flexible.I gave this one a real chance but the speed and bugs finally drove me away. Weak CVS integration. This is whas Sun's Forte is based on. (Think Mozilla/Netscape.) Open source.

    Idea Excellent IDE. The refactoring support is 2nd to none in any IDE for any language I've ever seen. Code formatting is excellent, I've never seen so many options for how to format code. Code templates are cool. Library support is a little weaker than jbuilder and codeguide - that's one of its few weaknesses. Decent CVS integration. (Not as good as JBuilder, nothing I've seen is.) I code faster with this IDE than any I've used. UI to override methods, implement interfaces, move methods (and fix all the dependencies in your project), rename methods/classes. Lots more. Try it. Closed source.

  34. Here is a whole slew IDE's by crafty_barnardo · · Score: 2, Informative

    I found this site while searching Google for Java IDE's - here is the link. Hope it helps. It appears to have a listing of a whole bunch of different Java IDE's - some commercial, some not..so.

  35. Re:Comments on Java by matt[0] · · Score: 2, Interesting
    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.

    --
    --------- Matt
  36. lxr may help... once your code is in CVS, at least by jabbo · · Score: 3, Interesting

    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)

    --
    Remember that what's inside of you doesn't matter because nobody can see it.
  37. Try this.... by jheath · · Score: 2, Interesting

    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.

  38. Some decent advice here... by Fnkmaster · · Score: 5, Informative
    Actually, the advice of the other posters here is decent. I have tried most of the IDEs and Java-aware editors out there. Let me preface this by saying that I have both used these tools and managed development organizations that have used them in heterogeneous environments at my company. In the end, I still use emacs about 95% of the time for editing Java source code. As far as using UML tools, others have recommended Together Control Center and in my opinion this is a superior product to Rational Rose, but this really only comes into play in the design phase of a project with sufficient complexity to merit it, and doesn't really speak to your question (though I think proper use of UML and design documentation do improve developer productivity in the long term).


    Lemme give a quick run down of what Java IDEs I have knowledge of:


    • Kawa: A nice, relatively clean IDE, syntax highlighting, add-on modules for stuff like EJB/servlet debugging and nice things like that. It may have a different name these days, I tried it over a year ago for a while.

    • JBuilder: This is old faithful amongst Java IDEs. It's not that fast, but it has a lot of features, and a lot of nice modules (I like the JxBeauty plug in, makes quick reformatting really easy). Also has great JSP editing support, with dual mode syntax highlighting (a MUST if you are doing serious JSP work, i.e. HTML and Java syntax highlighting in the same file). I've never seen it do autoindenting, which I can't stand (nothing else I've seen does as good a job at this as Emacs). But as an IDE is the best package I know of. Has improved a lot since 3.0, but I've only tried each successive version a few times. 5.0 is installed on my box and I used it for JSP editing for a while, but not much else, and I don't do JSP work anymore.

    • Netbeans/Forte: I have seen people who swore by this. Actually, only one guy, and I fired him (not because he swore by Netbeans, which I consider a slow bloated piece of dog turd, but because he was incompetent). I really disliked it and found that I had uninstalled it within a day. YMMV depending on your tolerance for REALLY slow REALLY laggy Swing apps (and this was on a PIII 750 with 256 megs of RAM)

    I've also tried some editors that are nicely Java-aware but don't include the other IDE features. jEdit, Textpad and Emacs are my favorites. Nothing beats a nice, well configured emacs, IMHO. It actually can be configured as more or less a full IDE with automatic compiler and debugger invocation, but I just use it for the slick editing capabilities and the nice color configurable syntax highlighting, auto-indenting, etc. Only weakness is that the dual-major-mode JSP highlighting hacks I've seen out there are all pretty weak and annoying to use. JBuilder is easier on the eyes and brain if you are doing JSP work.


    That's about it for my experience. I have come back to emacs every time, since ultimately it's more work than it's worth in terms of any productivity I'd gain to use an IDE. The reality is that if you know the command line tools for your development platform (i.e. javac, jdb if you need to debug, and java for the VM) and you have a good build tool (I HIGHLY recommend Ant for pure Java apps, then using emacs and the command line, you are just as productive if not more so than the dude down the hall with the IDE. Once the stuff you are working on has become part of a large application with its own build structure, etc. making your build system and your IDE work together is really not feasible.


    Most importantly, what I really STRONGLY don't recommend is forcing everyone in the company to use the same IDE. This will have a hugely negative impact on developer productivity if you have people who like and prefer to use emacs and command line tools. Offer official training and support for a "preferred" environment if you want, whatever that environment may be, but don't force it on people who are comfortable and productive in a different environment, unless you really want to piss them off AND you can afford the several weeks of down time while they familiarize themselves with the new environment.


    On the subject of integrated debuggers, etc., sometimes they are useful, sometimes they are not. Occasionally I have to turn to the debugger, but as apps get more complicated, if you have threaded anything, etc. it becomes difficult and poor practice to rely too much on the debugger. It's a tool, know when it's appropriate, whether you use one on the command line or embedded in your IDE of choice.


    And if you are building GUI apps, I highly recommend getting an IDE with some decent RAD tools in it (the IBM Java IDE as I recall had better tools than JBuilder). If you are just hacking JSPs and Servlets, productivity is primarily limited by developer competence and coordination between development and design staff (that's the hugest one in my experience), not by anything fundamental to the IDE or editor you are using.


    Again, YMMV and these are just my opinions.

    1. Re:Some decent advice here... by Mr+Thinly+Sliced · · Score: 2, Interesting
      > 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 those naughty windows boys)

  39. Big Blue's Open Source Java IDE (slashdot link) by ejbst25 · · Score: 2

    Check out IBM's Eclipse and/or Slashdot's post about it a couple days ago here.

  40. a long-term committment? by Animats · · Score: 2

    I own four orphaned Java IDEs, two from Sun, one from Microsoft, and one from Symantec. Grrr.

  41. Re:Try FreeBuilder by cr0sh · · Score: 2

    Not anymore - whoa - popup hell on a porn site - ack!

    WARNING - DON'T GO TO THAT LINK!!!

    Yes, there used to be a freebuilder IDE - I know, I was on a dev list at one time - but where it is at now, who knows...

    --
    Reason is the Path to God - Anon
  42. Why I like Forte... by cr0sh · · Score: 4, Informative

    When I first saw Forte (and prior to that, NetBeans) - I knew there was something good there. The main reason I like it: It make Java almost as easy to code in as VB.

    Drag and Drop controls, property settings, code linking - very, very easy - and Java! Don't get me wrong, I know how to code Java using a text editor, etc (NEdit is my favorite) - but it is a bitch to do Swing "by hand" - Forte takes the pain away (for the most part - some of the more custom stuff you still have to do by hand, and it has its glitches - but it still beats hand coding to whip out a quick app).

    What I hate about Forte: It is a resource intense HAWG!!! In order to be able to use it at all, you need at least a 300-350 MHz machine, and at least 256 MB of RAM - the faster you go and the more memory, the better it is (my first experience with Forte was on a P200pro w/ 64 MB RAM - don't try it unless you like watching your disk grind away)...

    --
    Reason is the Path to God - Anon
  43. Borland JBuilder by JohnZed · · Score: 3, Informative

    JBuilder is still the best that I've found. The Pro edition will run you about $999 and enterprise around $3000 per seat, but it's incredibly usable, fast, powerful, etc.
    Most importantly, it has an amazing OpenTools API for customization. Check out codecentral.borland.com and you can find dozens of (usually open-source) plug-ins that really increase the utilty of the IDE.
    Oh, and there's a rumor on the JBuilder newsgroups that version 6 will come out at the end of the year. You might want to check into that if you're making a big purchase and at least get a guarantee of a free upgrade (Borland often gives upgrades to people who bought within the last month or two, but after that it's big $$$).
    --JRZ

  44. Re:IntelliJ IDEA by richieb · · Score: 2
    I use Emacs, and I've used Jbuilder for debugging, but I started to play with IntelliJ IDEA few days ago and I find it amazingly good.

    For example, I had to change a class name in a system of 400 classes and 35,000 LOC. IDEA did it in about 5 seconds. I haven't yet tried the other refactoring features - but they look amazing.

    I also like the remote debugging (IDE on my machine, debugged program on another server in another city).

    ...richie

    P.S. I played with Netbeans and Forte, but IDEA seems much easier to use.

    --
    ...richie - It is a good day to code.
  45. recent experience with Forte by ragnar · · Score: 2

    I have just recently started using Forte, which is Java based and produced by Sun. I think it is based off of their purchase of NetBeans some time back. The editor is quite nice, but it has far more features than I want. Personally I just edit with vi and use makefiles, but I'm required to find a development environment for multiple developers, and they aren't so keen on the old school methods.

    --
    -- Solaris Central - http://w
  46. Older article by harmonica · · Score: 2

    In this article there is an overview of integrated development environments for Java. As Java virtual machines and computers have become faster, the speed issue is less problematic (but not entirely gone).

  47. Re:Don't forget Ant! by richieb · · Score: 2
    Couple of IDE's have support for Ant. Netbeans and IntelliJ IDEA support it. I think you can add it to JBuilder too.

    ...richie

    --
    ...richie - It is a good day to code.
  48. IDEs & tools I have used... by Lord_Covenant · · Score: 3, Interesting

    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).

  49. If you don't like Forte, try version 3.0 by FastT · · Score: 3, Informative

    The latest version of Forte for Java 3.0 is actually surprisingly good. I tried to use previous version of Forte and they were just terrible. If you tried Forte before and didn't like it, try it again now.

    Version 3.0 seems to have fixed the major shortfallings and improved responsiveness tremendously. I run 3.0 on my 650 MHz laptop with only an occasional garbage collection pause, but it runs flawlessly on my 2x1 GHz machine. I've not switched to using it full time and haven't had any significant regrets.

    --

    The only certainty is entropy.
  50. Faster on a fast machine by KarmaBlackballed · · Score: 2

    I've used ForteCE (SUN) and VisualAge (IBM) and liked things about both of them. They both have quirks, but the quirks are overshadowed by the price (FREE).

    Something both of these products have in common is that they are resource hogs that bog your machine down and require very fast CPUs to be usable. If you have a fast machine, try them.

    --

    --- -- - -
    Give me LIBERTY, or give me a check.
  51. Re:Blech. Most of them are pretty bad. by nebby · · Score: 2

    Holy shit, that was harsh. Plus you used the word "shitbag" twice.

    Anyway, when coding in Java the debuggers are usually broken or really slow. The ones out there usually force you to turn off JIT and other speedups for stepping and watching. That basically translates to impractical for all but the most hard-to-fix bugs.

    That was the case when debugging servlets at least, there might be other options for applications, like shared memory or something.

    Hence, I've been somewhat forced to use printouts and log files for debugging. Not that I like it, but I've gotten used to it and have found that it's not much of a difference than back when I was using the debugger in VC++.

    So, I'd guess your "company" probably is developing shit a lot slower than it could be in Java using the shitty ass debuggers that are out there.

    --
    --
  52. Re:JBuilder is OK... VAJ sucks! by the+eric+conspiracy · · Score: 2

    I could not find that damned file anywhere!

    VAJ uses a repository to store code.

  53. Re:Blech. Most of them are pretty bad. by Gen.+Ho+Lee+Phuc · · Score: 5, Funny

    Did you just recommend emacs because it isn't bloated and doesn't try to do everything?

    Dear god...

  54. Evaluated several IDEs, decided for JB4 by jalagl · · Score: 5, Informative

    I work at a consulting company, and about 1 year ago I was in charge of evaluating several IDEs in order to standarize the development environment. Before that, there were people using vim, emacs, Editplus (my favorite - I still keep it around) and whatever-editor-you-can-think-of. I considered the following IDEs during the evaluation:

    • Forte for Java
    • Netbeans
    • JBuilder
    • Visual Age
    • Kawa
    Most of the applications we build are web-based J2EE applications. The requirements for the IDEs were:
    • Code completition (obviously)
    • Ability to remotely debug JSPs and servlets running in Tomcat, JRun, Weblogic, and iPlanet web server.
    • Ability to remotely debug EJBs in Weblogic, and iPlanet app server.
    • Facilitate the creation and deployment of EJBs and Javabeans components, including the xml deployment descriptors and the creation of .war and .jar files.
    • Extensibility. (we like to build our own tools)
    • HTML attribute completition on the JSP pages (like Homesite does).
    • To a lesser extent, the performance of the IDE.
    • Some others I can't remember right now...

    In the end my recommendation was to purchase several licenses for JBuilder 4 Enterprise for the EJB programmers and to have the rest of the team use JBuilder 4 Foundation. The main reasons were:

    • very nice and easy to use OpenTools API (we already have about 50 or more tools that greatly simplify our work)
    • some very nice EJB features and wizards, like automatic deployment descriptors, automatic creation of the archive files, etc.
    • Deploys to Weblogic 5.1 (what we used at the time)
    • Allows us to debug JSPs and servlets in Tomcat, Weblogic, JRun and iPlanetWS (with some work).
    • Allows us to debug EJBs in WebLogic.
    • Integrates with Visual SourceSafe through some readily available opentools

    The only ugly part was the price, but the Enterprise Edition, along with our own inhouse OpenTools, boosted our productivity quite a bit, so we could say that it more than paid for itself. It also doesn't support HTML, but since then we also bought Macromedia's Ultradev, and the graphics designers take care of most of that part.

    Right now I'm looking at the latest version of JBuilder 5 Enterprise Studio, which also contains Rational Rose. It might be in our upgrade path in the future for the JB4 Enterprise users, but there doesn't seem to be any replacement for JBuilder 4 Foundation, since the JB5 Personal Edition has a more restrictive license.

    As a side note, recently I've been using the latest version of NetBeans (3.2.1) quite bit in my house and it seems pretty nice. It handles remote debugging quite well, and it does understand HTML.

    ------
    Me

    --
    -.
  55. Re:The best IDE by Eric+Smith · · Score: 2
    VI [...] has been around for as long as... [...] and dare I say longer even than "EMACS"
    Well, you can dare say it if you like, but it's false. Emacs was first available in 1976 (or possibly in late 1975). Vi was first available in 1977.
  56. Re:What makes a good IDE, aka: Netbeans is real cl by jvmatthe · · Score: 2, Funny

    I hate this guy as much as all of you combined ;^), but why moderate him as a troll? That's just silly.

  57. Re:Blech. Most of them are pretty bad. by bkocik · · Score: 2, Informative
    Netbeans (an offshoot of Forte).

    NetBeans isn't an offshoot of Forte. NetBeans is the open source project that Forte is based upon. Saying NetBeans is an offshoot of Forte is like saying Mozilla is an offshoot of Netscape Navigator.

    Netbeans is dog slow, too.

    Might not be the fastest thing on earth, but it's not that slow. I mean, come on...it's an IDE, not a web server. How fast does it really need to be?

    I use NetBeans every day. I wouldn't try to run it on a 486 or anything, but I do run it on three different machines (a 400mhz/256mb Ultra 5, an 850mhz/256mb PC, and a 700mhz/384mb PC), and on all of them it's a bit slow starting up, but after that it's pretty responsive. Again, not greased lightning or anything...

    I've tried VisualAge for Java (IBM), JBuilder, SGI's Jesse, and one or two others I can't recall right now. NetBeans is one of the best I've ever seen, even before you consider that it's completely free (beer). JBuilder is nice, too, if you have the cash to pay for it.

  58. Re:So the Linux kernel is not engineering ... by Mr+Thinly+Sliced · · Score: 2, Informative
    > Linus "just hacked" Linux. He didn't use UML.

    Linus isn't going to dissapear from the project in 3 months cos he got offered a higher salary somewhere else. People come and go in business. You need a robust mechanism for documenting systems.

    The open source model is great, as developers will spend a lot of time and energy at no cost getting up to speed on code.Business can't afford that.

  59. Best FREE Java IDE's: by gururise · · Score: 2, Informative
    In order of preference:

    1) TogetherSoft allows for UML->Source and Source->UML. Try the Community version of Togethersoft for FREE, only the print functionality has been disabled in this version. Has great syntax highlighting, and is fairly fast for a full blown java application.
    http://www.togethercommunity.com/community-edition .shtml

    2) Forte for Java CE the Community Edition of the popular Forte Software is what I personally use for my Java Development. While not having the UML features of the Togethersoft product, I find it suits my needs just fine. An integrated debugger, and syntax highlighting make for a friendly (and free) product!
    http://java.sun.com

    3) Glimmer for linux. While not a full blown IDE, for simple projects, I find myself using glimmer alot. It's quick, written in C, and supports syntax highlighting for a plethora of languages (php, c, c++, java, perl, and lots more!), and best of all.. it's GPL!
    http://glimmer.sourceforge.net

    Gene Ruebsamen
    Orange County Real Estate

  60. Re:IBM Visual Age for Java by jyellis · · Score: 2, Informative

    I work for IBM and have used Visual Age for a couple projects. I agree the auto-complete feature is an excellent tool for turning out code. Not only does it fill in Java core functions, it also fills in functions and members of the classes you have written. Keeps you from constantly referring to a constant file (no pun intended). Other great features of Visual Age include an easy to use debugger and the ability to graphically view the OO hierarchy of any class.

    However, the drawback to VAJ is its size makes it a cumbersome application. In addition, files must be imported and exported, meaning they cannot be edited by any other editor without being exported first. Not to mention, VAJ costs over $1000.

    Thankfully, IBM is coming out with an IDE that provides all the features listed above while eliminating the need to import or export files and reducing the size of the application. Even better the new IDE is free, Open-Source. Mentioned on slashdot a couple days ago, the new IDE is a part of the Eclipse Project. They just released version 1.0. You have to join the Eclipse community to download and but its a simple process.

  61. VisualAge for Java` by mchang · · Score: 4, Informative

    Personally, I'm a convert to VisualAge for Java from IBM. I've used JBuilder, Forte, Together/J, XEmacs, Notepad, VisualCafe, you name it.

    VisualAge has a rather steep learning curve associated with it compared to a lot of the IDEs, but it really is the first product that I can recommend for Java coding.

    Unique features that I find useful are:
    * No files -- just a big 'ol database repository that is managed by VisualAge. There really is no need for files in Java, really, and this makes things great for reorganizing your code and proper versioning.
    * Incremental compilation that works with the debugger -- breakpoint your app, change code, continue with new changes.
    * Method-atomic units of editing. You edit at the method level instead of the file level. Easier to conceptualize large OO systems as you don't spend time navigating lines and lines of code and various files. Just pick a package, class, and method from a nice hierarchical window system and start coding.
    * Semi-open plug-in interface. Write your own little applets to do things to your own code base (fancy search/replace, exporting your code, merging changes...) -- this also means you can download/buy cool add-ons (Instantiations' VA/Assist and JFactor come to mind).
    * Good Enterprise team coding system. That repository is pretty good for keeping versions around and keeping things straight between teams of coders. You can also use and SCCI? compliant version control system.

    It can be tricky to master at times, but worth it, IMHO. Best of all, you can get a copy for $60 with the book Effective Visualage for Java at your local Barnes and Noble.

    Not affiliated--just finally satisfied with an IDE.

    1. Re:VisualAge for Java` by its_me_ken_lai · · Score: 2, Insightful

      I like the way VAJ is designed. The project/package/class/method (and file-less) organization is logical. The repository might get one in trouble if it's not backed up frequently (though a third party source control tool could overcome that pretty easily). Incremental compilation is good as the project gets bigger and bigger. I still haven't tried writing event-driven systems with it but based on what I read it seems to have pretty good support for event-driven coding.

      My only concern are its steep learning curve, difficult to use different version of jdk and pretty slow response. As with other IDEs it requires you to work in a certain way.

      On a side note, I think a good IDE should have a good documentation system that integrates with other software design tools so that requirements can be reflected in the code/doc easily. It'd be a dream come true if I look at any part of a project (design/doc/code) and from there get to the other part of the project easily to allow me to view from the big picture all the way to the smallest detail real quick. Then again I don't have experience designing big enough system to really have an idea of how the doc should be integrated with the design. If anyone here has a good idea of how it should work I'd like to hear about it.

      --
      Ken Lai
  62. Turing-completeness (slightly OT) by man_ls · · Score: 2

    I am unclear on something about Java. It seems that as it requries a VM to run, which is in essence an (emulator/interpreter), sort of like the types of "compilers" used for BASIC, it isn't turing-complete. Are there any Java compilers written in Java, without some other type of programming language existing in the back end? Pascal is written in Pascal, C++ is written in C++, and so on. HOW they do that confounds me, but I've never understood if Java is a real "programming language" or just a sort of compiled very powerful scripting engine.

    My $.02 and some lint.

    1. Re:Turing-completeness (slightly OT) by jacobm · · Score: 3, Insightful

      1. Java is Turing-complete. As is every programming language you're ever likely to run into. Rule of thumb. How the implementation happens to run the code (VM, compiled to assembly, hand-evaluated with pencil and paper) is irrelevant.

      2. Sun's Java compiler is written in Java.

      --
      -jacob
    2. Re:Turing-completeness (slightly OT) by JamieF · · Score: 2, Informative

      Yes, javac is written in Java, and that's why it's hella slow. Try putting it in a Makefile sometime. Ugh. That's why IBM's Jikes compiler is written in C++... much faster startup and compilation. In my tests Jikes is 7-20 times faster. I haven't tried Jikes on any of the new Java 1.4 stuff (assertions) so it may not be an option in that case.

    3. Re:Turing-completeness (slightly OT) by The+Cookie+Monster · · Score: 2

      It's not so hard, imagine you wanted to write a BASIC compiler in BASIC, but no BASIC compiler existed (BASIC compilers do exist, but pretend for now they don't):

      A) Obtain an existing BASIC interpretter, or whip one up with lex/yacc - the BASIC interpreter does not need to be written with BASIC (as I said, lex/yacc will do fine), nor does it have to be able to compile BASIC, it just has to be able to run it.

      B) Write your BASIC compiler in BASIC

      C) Run your BASIC compiler with your interpretter and feed it it's own source code.

      Voilla - you now have a standalone BASIC compiler written 100% in BASIC, which is a good thing to do - not only is it more likely that if you were writing a BASIC compiler, BASIC would be your language of choice and hense the language you'd want to be writing the compiler in, but it will also help you identify shortfalls in your implementation of the language, and bugs in your compiler (taste your own medicine so to speak).

      Now that you see how it's done you'll probably realise that there's not really any difference between a compiled language and an interpretted one - they are both "real languages" and both turing complete.

      (Pragmatically however, since interpretters are a bit more flexible, languages that take advantage of this (for instance, providing an eval() function, or being excessively dynamic) can end up being restricted to interpretters (or interpretter/compiler hybrids) because it's too damn hard to try and fit them into the machines native architecture)

  63. Re:Even better than an IDE by man_ls · · Score: 2

    I think they mean "just plain dumb" but it's not a mod option...Nice attempt at humor but didn't quite make it.

  64. How bout this: by SomeOtherGuy · · Score: 2


    For all things text related I use the VI(de). Others may be more robust, have better features, cost more money -- but damnit I spent 23 1/2 years learning VI , and 1 day without using it may well indeed set me back 10 years in the study of VI. And those $10 a minute calls to the VI helpline can get a bit costly.

    --
    (+1 Funny) only if I laugh out loud.
  65. Information About Eclipse by ekrout · · Score: 5, Informative

    Eclipse is an IDE framework written in Java. It is very extensible; all support for editors, compilers, debuggers, and other tools, etc is provided as plugins.

    Although it's written in Java, it can be used to develop programs written in other languages; there are already proof-of-concept plugins for C (using gcc) and make.

    It is being developed by OTI, an IBM subsidiary who did Visual Age Smalltalk and Visual Age Java. These people have a lot of experience building IDEs.

    Currently you can download the basic framework and a set of plugins that let you edit, compile and debug Java applications --- a pretty decent Java IDE. (The very-context-sensitive code-completion is pretty nice. It also has a great feature where it compiles the code every time you save and puts unobtrusive error icons at every line with an error --- an excellent way to keep your source error-free as you go, without getting in your face.) You get the source but currently not under a true open source license. The OTI people promise that they will be moving to a true open source license soon.

    This is a big initiative within IBM. The WebSphere Workbench product is already based on Eclipse. Lots of people within IBM, including IBM Research, and several other companies are building new development tools as Eclipse plugins.

    One slightly weird thing about Eclipse is that it doesn't use Swing. Instead it has its own toolkit called SWT, which is designed to expose a single cross-platform API but is reimplemented using native widgets on each platform. You can download versions for Win32 and Motif but in the newsgroups some OTI people said that they're working on a Gtk port.

    More information at http://www.eclipse.org.

    --

    If you celebrate Xmas, befriend me (538
    1. Re:Information About Eclipse by Nyarly · · Score: 2
      One slightly weird thing about Eclipse is that it doesn't use Swing. Instead it has its own toolkit called SWT,

      Not to overstep, but I think you mean "One slightly cool thing." I'd been wondering a little about the SWT thing, but then I saw that Eclipse was a Java based IDE, and I sort of panned it.

      I spent a lot of time recently looking for a free/inexpensive Java IDE, because I still have issues with emacs and JDE, even if it does work nicely. Finally a broke down and learned to use it smoothly, because, unfortunately, it's the closest thing to useable for Java.

      All the other inexpensive IDEs were either feature-sparse (and let me echo the complaints of "all it does is have some code templates") or dog slow (a fact I attribute to their use of Swing, which blows for editoring stuff) or both (and my opinion of /.er's is improved by the fact that none of the IDEs on that list have been so much as mentioned.)

      If Eclipse is using a non-Swing environment, I'd expect a much better performance from it, and would be much more willing to give it a shot. Especially when the Transmogrify is designed to be integrated with any IDE that accepts Java plugins.

      --
      IP is just rude.
      Is there any torture so subl
  66. Java the UNIX way: Ant and vim by lsd · · Score: 2, Interesting

    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 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, 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 :)

  67. Do you mean instaties an interface? by SuperKendall · · Score: 2

    I wasn't quite sure what you meant here, but it seems like there are a few solutions to things you might have meant:

    1) Way to find classes that implement a particular interface. Just do a JavaDoc run in JDK 1.2 or higher, the page presenting the interface you are interested in will list all of the implementing classes with links to those JavaDoc pages (true, it's not built into the editor - but I find myself switching between the editor and JavaDoc anyway).

    2) Ability to go to the class that your current variable is a type of - many IDE's have symbol browsing built in that will let you hover over your variable "foo", and jusp to FooImpl.java.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  68. Use what the developers like. by SuperKendall · · Score: 5, Interesting

    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.)

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  69. Re:Blech. Most of them are pretty bad. by chabotc · · Score: 2

    NetBeans isn't an offshoot of Forte. NetBeans is the open source project that Forte is based upon. Saying NetBeans is an offshoot of Forte is like saying Mozilla is an offshoot of Netscape Navigator.

    Heh, thats pretty funny! Mozilla _is_ an offshoot of Netscape Navigator (4.x code base), rewritten a few times, and then recycled back into netscape 6.x.
    However, it is still an offshoot of netscape navigator

  70. Kawa by tpv · · Score: 2, Informative
    Kawa: A nice, relatively clean IDE, syntax highlighting, add-on modules for stuff like EJB/servlet debugging and nice things like that. It may have a different name these days, I tried it over a year ago for a while

    Tek-Tools made Kawa.
    They sold it to Allaire (for $9 mill!).

    Macromedia bought^H^H^H merged with Alliare.

    Macromedia killed off Kawa.

    The tek-tools version of Kawa was quite nice, by all reports it was destroyed somewhere between Allaire + Macromedia.

    --
    Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
  71. Java is not C, it can be more like Smalltalk. by carlfish · · Score: 2

    I'm with Kent Beck on this one:

    When partnering with Kent Beck, most everyone has this experience:
    Something goes wrong. The code doesn't work. You start to think: "What could cause that to happen?" Kent doesn't think about what the problem is. He just sets a halt in the system and lets Smalltalk tell him what the problem is.
    Sometimes you're right about what the problem is. If you're really quick you'll be able to tell Kent what to edit in the window he's already looking at. If you're really quick.
    Sometimes you're not right about what the problem is. Forget it, he has already fixed it.
    Train yourself to think about where to put the halt, not to think about what the problem is. Of course it's a great feeling when you can reason to the problem. But we're not here to make our brains feel good, we're here to get the code working as quickly as possible. Setting the halt and letting Smalltalk tell you will help you build working code faster.

    I develop Java using IBM's VisualAge for Java. Here's what I do when I find a bug:

    I don't try to work out precisely where the bug is. I just set a breakpoint in its general vicinity.

    I step through until I find what's going wrong. I make liberal use of my ability to inspect any variable in scope, to highlight pieces of code and evaluate them while the program is halted, or to write random code snippets in the evaluation area, and inspect their results as they execute in the context of the halted program. The big problem with writing printfs is you have to guess (out of everything that's in scope, and every method you're calling) which ones are giving you bogus results. If you knew what the problem is, you wouldn't need the printfs. If you're wrong, you have to write a new batch of printfs and run the whole test again. If you're in the debugger, you can just go through them one by one, from most to least likely.

    When I locate the bad code, I fix it from the debugger, save (which drops the stack frame back to the beginning of the method), and let it run. The test then goes green.

    I guarantee, using this method, 90% of the time I'll have fixed the bug while you're still writing printfs and scratching your head.

    --
    The more I learn about the Internet, the more amazed I am that it works at all.
  72. IBM's Eclipse by Tal+Cohen · · Score: 5, Informative

    (Disclaimer: I am an IBM Research employee but this is my own personal opinion; I do not speak for IBM).

    Here at IBM's Haifa Research Lab, each one is allowed to choose his own tools. Many choose powerful editors with the ability to run JDK tools, and find it sufficient. That's what I did, up until a few weeks ago.

    I'm now using the soon-to-be-publicly-available (as open source) Eclipse, and it is downright amazing.

    The current version (1.0) has some shortcomings, but they are all minor, and the next version is already in advanced stages. Here are a few of the key features that are rather unique and available in 1.0:

    • Import management - a simple menu choice arranges your 'import' statements -- and adds missing ones, too.
    • Refactoring framework - easily rename methods, variables, and classes; move classes across packages; etc., and all the relevant source files (including those that use the rename/moved elements) are updated. Future refactoring support will include moving methods or fields up/down the hierarchy tree, and more.
    • Color-coded stdout - lets you easily tell System.out from System.err output.
    • History management - made a bad change? Choose 'Compare with -> Local history' (or 'Compare with -> CVS version', etc.) to see a fantastic visual diff between the versions, and undo changes. History is kept for each Save you do.
    • Does not use Swing - Eclipse is based on SWT/JFace, IBM's GUI frameworks for Java that are much snappier than Swing and look good, too. Of course, you can still use it to develop Swing applications.
    • Platform intergration - the Windows version of Eclipse supports OLE and allows you to edit (e.g.) Word documents from inside the IDE, if they are part of your project.
    • Configurable IDE - the various internal windows are easily configurable into tabbed noteboooks - the format of the notebooks (tabs available in each) is not preset and can be changed easily.

    I probably forgot a few more things. Plus, the whole thing is plugin-based and additional plugins are already available (from IBM and soon others). This includes database management, XML editors and more.

    --
    - Tal Cohen
  73. JBuilder for me by radish · · Score: 2


    We all use JBuilder here, out of preference rather than any compulsion. It is a swing app, so needs decent machines (runs sweet on a dual P3-800) but the interface is pretty nice, and it has lots of syntax highlighting & auto completion features. There is a cheap/free basic "personal" version, but the license says you can't use it commercially. The standard version is a couple of hundred, well worth it. If you want to get flashy then the Enterprise version has some fantastic features for supporting teamworking and EJB development. Trials are available from their website for all versions.

    Other than that, I have heard many bad things about Visual Age, mainly around it's use of a repository rather than the filesystem - while there are some advantages, it has a habit of rewriting your code for you, losing comments etc in the process. Also, unless your whole team are working in VA, it's a royal pain in the butt.

    --

    ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  74. Comments / CVS by slim · · Score: 2

    I'll back up what others have said about offering each individual a choice: I may prefer to code in Vim; my colleague may prefer Windows Notepad. That's fine by me. The most productive mode for an individual is to find their preferred working environment, and stick with it. For me, that's code in one window, compile and execute in another (debugger in another, sometimes).

    That said, I've never got beyond spending an hour or so boggling at an IDE, since they tend to be so feature-packed I don't know where to begin.

    If you really want to increase developer productivity, I have to sing CVS's praises from the rooftops! The ability to run diffs against arbitary revisions makes it wonderfully easy to measure and evaluate your work. (Do any of the IDEs discussed here have an integrated CVS interface? That would be.. neat...)

  75. Features for a Java IDE by Trinition · · Score: 2
    I personally use JBuilder, but sdome of my peers use Forte/Netbeans or VisualCafe. Yet others still use plain text editors with syntax highlighting. So, here's some of the points from our fun 'discussions' between the two camps:

    • Text editors have a much smaller footprint than an IDE
    • You can extend a text editor with macros
    • I've never text editor seen a macro for code insight
    • In an IDE, all of the 'macros' are pre-built, saving you the time of developing them.
    • IDEs tend to offer you more debugging power than simple log printous.


    Code Insight, from JBuilder, and its counterparts in others is extremely powerful. When you type a '.' after a class or variable, you get a popup listing the various methods, properties, innter classes, etc. that you can use. Same thing for packages, parameter names and types, etc. I know it sounds trivial, but here's how it helps... You have to refer to API documentation MUCH MUCH less and type fewer characters. There is no need to lookup what the proper case conversion method is on a String ("toLower" or "toLowerCase"?) because when you type ".toL...", the popup shows you "toLowerCase()". Its subtle, but powerful. Its sort of like the power you gain by having keyboard shortcuts or underline accelerators for those shortcuts.

    Debugging:Is another feature I've not seen in text editors. This doesn't mean using System.out.println at strategic points. This is setting breakpoints, breaking on exceptions, inspecting values while a program is pauses, etc. If you've never debugged like this, it is hard to understand its power. But once you have, you'll never go back!

  76. Visual Age for Java by under_score · · Score: 3, Interesting

    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!

  77. Borland JBuilder by Snootch · · Score: 2

    The subject line says it all - it *rocks*. There's not a lot more to say...oh yeah, the Personal version's free from borland's website to try before you buy (there's a no-commercial-use clause). It's all written in Java, so lovely and cross-platform, and the interface just blows AnyJ and Forte out of the water.

  78. Re:UltraEdit by Pfhreakaz0id · · Score: 2

    another satisfied UltraEdit user here. Wish I had some mod points. It's a tool you can do so many things with: HTML, ASP, Java, scripts, batch files, .... I love it.

  79. NetBeans by Capt_Troy · · Score: 2

    I normally use vi, but in the past I have used both Visual Age and Netbeans, both of which I really liked. Visual Age has a high cost and thus when I use an IDE I use netbeans which is free and open source. Check it out, it is very nice and does all the things your standard IDE does.

    Troy

  80. Editors/Debuggers only go so far... by acroyear · · Score: 2
    The two aspects of development that sped up my coding time (albeit, more than 50% of my time is research and design, still), are automated testing (using junit) and the concept of refactoring.

    Automated testing allows developers to let the software decide what's broken and what isn't, so the developer isn't spending 75% of the coding time staring at 20meg log files looking for the line that is wrong, on every run. It also improves design because it requires the programmer to have already decided what the "right" answer for an algorithm should be, thus the algorithm is properly designed to completion.

    Refactoring became very important -- its critical for developers to learn how to change and improve what's already working to create code and designs that are cleaner and easier to work with for extensions and new features. I've found refactoring can do wonders in solving problems that would otherwise have had to have been dealt with by Brooks' philosophy of "Throw the first version out". With refactoring, you can save much of the code / algorithms of the first version while still throwing away the faulty architecture that is making extensions difficult; you can learn to not be afraid of changing code that works.

    I'd love to give the book to every graduating CS major looking into a programming job, since the first thing they're given is a "hey, fix up this code" job, usually.

    I use emacs and JDE (discussed in other comments here) for my own work, including on Windows platforms, but if you go for a commercial IDE, there are plugin extensions for some IDEs (including Borland's JBuilder) that are made to embed JUnit and refactorings into the IDE; you'll see pointers to them on the web pages.

    --
    "But remember, most lynch mobs aren't this nice." (H.Simpson)
    -- Joe
    1. Re:Editors/Debuggers only go so far... by acroyear · · Score: 2

      To summarize: you can't get dramatically more productive by changing how you do something you do. You get dramatically more productive by changing what you do. How your developers approach software development is far more important than the tools they use; how the tools they use suppport the approach they take is far more important than the tools themselves (and how many other people use those tools).

      --
      "But remember, most lynch mobs aren't this nice." (H.Simpson)
      -- Joe
  81. Good UML tool by LarsWestergren · · Score: 2

    Try Poseidon from Gentleware, a German company. It's based on ArgoUML but they have developed it further. Reverse engineering, code/documentation generation etc. The community edition is free. If you pay you can get some nifty plugins as well. I haven't tried them though.

    www.gentleware.com

    --

    Being bitter is drinking poison and hoping someone else will die

  82. Forgot to mention... by LarsWestergren · · Score: 2

    It's also based on Netbeans, so you can install it as a module in Forte, which is pretty neat. I've done that for the project I'm currently doing (Servlet/JSP based), so I can use Forte for Java, Poseidon for UML and Tomcat for Servlets; all in one program.

    All free, all platform independent. But as others have pointed out, its an incredible resource hog.

    --

    Being bitter is drinking poison and hoping someone else will die

  83. Why just Java? by HiThere · · Score: 2

    An ide should be able to recognize the syntax of the language. To parse strings. To validate syntax.

    And additional very nice feature is the ability to create dialogs, etc. with editable code and active links. I favor the use of comments to set off code that is specific to the gui-builder, and consider that for reasonable ease of construction that the actual design of the gui be kept in a separate file, with the code regenerated automatically (meaning if you change the code between the markers, your changes will be lost when the code is regenerated).

    Another nice feature would be a report writer with similar features.

    Also a menu builder.

    Generally, anything that is a graphic element is better designed graphically, even though how it will act needs to be handled with hand code. (For extra credit include some standard functions as chunks, e.g., File-open/save dialogs, ok and cancel buttons, etc.)

    A good online reference manual is a good help. Especially if the syntax checker can display a link to an appropriate page in the manual when an error is detected.

    Project files are a real help, though you can use directories for this. But you must be able to optionally include sub-directories and disjoint directories (links would work for this).

    How fancy were you thinking of getting? Most commercial products don't offer all of these features, and there are more that would be useful (partial compilation? alternate compilers? bnf & bison & etc. specified language syntaxes? The ability to handle multiple string formats (think Perl here, or Ruby). Pattern recognition? Pattern based search and replace? The ability to handle multiple files simultaneously (in a search and replace... I was assuming that for the editor). Etc.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  84. IntelliJ Features... Positively Ill. by kinesis · · Score: 2

    I've used JBuilder, JDeveloper, Together and taken a keen look at Java modules for Emacs... IntelliJ is miles ahead of these and by far the best IDE I've ever seen in my career.

    Ctrl-Q puts the javadocs for method at the cursor in a little tool-tip pop-up

    Alt-F7 finds all the callers of a method, implementors of an interface, descendants of a class, users of a class, reads of a variable or writes of a variable depending on the context and what you select.

    Shift-F6 allows you to rename a variable, method or class and have ALL references to it throughout your entire project be updated.

    The auto-complete feature is also the best I've seen. I start typing a variable name and then just hit Ctrl-Space and it will complete it for me, giving me a choice if there's more than one variable name with that prefix defined in the current scope. This works with methods and classes as well.

    When I type a class name that hasn't been imported into the current file, IntelliJ underlines it in red and gives me the option to automatically add it to the imports by hitting Alt-Enter.

    The "live templates" feature is incredible. I have mine set up so that when I type "log" and then hit tab, it prints...

    getLog().debug("currentMethod: ")

    ...and puts the cursor just after the colon. The kicker is that it can figure out the current class and method and include it in my live template.

    It's integrated with Ant and CVS. It's got a great debugger. It's lightning fast compared to the hog that is JBuilder.

    If you program in Java, try this IDE. You will never go back.

  85. THE most important feature of any IDE! by Quixadhal · · Score: 2, Funny

    Any programmer knows the most important feature any development environment should have is the free soda fountain, stocked with a variety of caffinated beverages in unending supply.

    A nice modular addition is the freezer with various frozen mexican foods, but that isn't as mission critical.

  86. I tried 4 by rakerman · · Score: 2

    *IBM VisualAge for Java 3.02
    *Sun Forte for Java
    *Borland/Inprise JBuilder 3
    *Visual Cafe 3 and 4.1a

    I found the environment with the best combination of features for me was Visual Cafe 4.1a Standard Edition from WebGain. Its main drawback is the very high RAM and CPU requirements. It used to be free, I don't know if it is anymore.

  87. Some IDE Experience by YottaMatt · · Score: 2, Interesting

    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

  88. Re:Visual Age by HiThere · · Score: 2

    Last time I tried the Linux version one not only had to install it as root, one also needed to use it as root. Not ideal.

    And it was pretty big. And it was difficult to see an entire class (all methods). Otherwise it was pretty good.

    (On Win95 it ate so much environment space that the system became very noticibly less stable. Than Win95 normally was.)

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  89. It depends on what you are doing. by HiThere · · Score: 2

    If a large part of what you are doing involves designing graphic elements (screen layouts, etc.) then you need a good IDE with good GUI design capability.

    If you need to be able to look up language features, then you need a good interactive help. Many IDEs include such things.

    If you need a good syntax checker, and incremental debugger, then a good IDE can help a lot.

    Otherwise a color highlighting editor will handle most of your needs.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  90. Re:Try out Metrowerks by HiThere · · Score: 2

    Code Warrior was nice on the Mac. But the Linux version never seems to support the version that I have installed on my system. I've looked into getting it three or four times, and it's always been spec'd for a version that came out last year. As if they don't start development on a system until after the OS version is marked final. They are currently selling a version that claims to support, e.g., Red Had 6.1 and 7.0. I have 7.1 installed, and Red Hat is shipping 7.2 (and working on 8.0, probably).

    I would try it out anyway, but when I tried that with the Corel products, there wasn't any way to adapt them to run with an even slightly modified system. So I'm skeptical about proprietary products that only claim to run with certain versions of the OS.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  91. Re: Don't Look into Eclipse! by KlomDark · · Score: 2
    I spent half the night downloading Eclipse at 3.6K per second (On a cable modem even), after seeing people talk about it here. What a waste of time, what a pile of shit. Running on a 800 Mhz machine with 640 Megs of memory, it took nearly 30 seconds just to resize the window. WTF?

    And their help documentation - it brings up a tree of all kind of interesting-looking documents, but how the hell do you actually open the document? No left click, no right click, nothing in the menus I can find.

    I was hoping for the ultimate Java IDE, not even close. Old versions of Forte are far better, and old versions of Forte were horrible.

  92. Re:No Silver Bullet.... by FatRatBastard · · Score: 2

    Someone else also mentioned this and its a very good point: software engineering doesn't quite have the discipline of other engineering fields. You *need* to do all of the prepwork up front if you want to have control over costs and schedule. I used to work in a company that measured capital projects in the oil and gas industry. The amount of time and effort you skip on the up front / higher up stuff manifests itself in longer schedules, higher costs and crappier operability.

    The IT industry is really lacking in such discipline (although it is getting better). Now I code for a living I hate doing all the upfront work (I just wanna code code code) but I realize that it is incredibly important.