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?

16 of 679 comments (clear)

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

  2. 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
  3. 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.

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

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

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

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

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

  9. 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.
  10. 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.

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

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

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

    --
    -.
  14. 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
  15. 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
  16. 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