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?
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...
Martin May
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...
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.
-Rob Ewaschuk
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
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.
use jEdit.
Written in Java. Its not an IDE, but its an excellent editor.
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
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.
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.
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.
I've tried Visual Cafe, JBuilder, Forte, Together, JDeveloper, Visual J++--pretty much every damn IDE you can think of. The best out of all of them is Idea from IntelliJ. It's fast, has a great interface, and tons of features.
Check it out. http://www.intellij.com
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.
Check out IntelliJ IDEA at http://www.intellij.com.
IDEA is an excellent fully-integrated IDE. It supports (among many other things):
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.
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
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.
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.
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.
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.
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
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
Hands down - Visual SlickEdit. Linux, Windows, Solaris - works on all of them in EXACTLY the same manner. Context sensitive help for many languages (this is a godsend in Perl) etc. It can function as an ide through predefined and customizable shell commands and interactivity, it has its own scripting language for extended functionality, it can emulate Vi, BREIF, CUA, EMACS and others.. really, can't think of anything it can't do. Hell even the ugly code most people write can be "beautified" with the click of a button to match any predefined and customizable look.
pGina, http://www.xpasystems.com - Making the big boys play nice.
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.
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: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:
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
-.
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.
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.
-BK
Chemical Blog
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.
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.
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.n .shtml
http://www.togethercommunity.com/community-editio
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
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.
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.
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
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.
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.
(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:
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
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
I will _never ever_ use an Java IDE without codeinsight,
you know you write System.out. and all the accessible
variables and method pops up. And System.out.println(
and all the types and parameters to the method
(including ofcourse all overloaded methods) pop up.
Nice things are support for various version control systems. Autogenerate javadoc comments.
Syntax coloring. All 'usual' IDE features - manage
projects, click to compile/run et.c.
Having a quick overview of all the methods/variables
in the class you edit.
A JAR packager, pack the compiled project in a jar.
A Designer - for designing GUI's, atleast Swing.
But everything is useless if there are no CodeInsight - which is an easy thing to make
using the Reflection API in Java, more advanced
features could be accompished if you parsed the source, to atleast get method parameter names..