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?
Looks like a bug in Slashcode 2.2 :)
Must be the new slashcode! (As I happily wait 20 seconds).
I dunno.....maybe it has to do with the new Slashcode announcement from today. :-)
But yeah....it's definittely broken right now.
-Vic
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
it says like 232 Comments... :-)
Unfortunately, I can't seem to read any of them except this one.
Hey, it takes balls to apply changes to the 'production' server... if I were them, I'd wait until the umpteen clone slash sites try it first and report all the bugs...
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...
Syntax highlighting, data dictionary, easy compilation and debugging... what else do you want?
The weird thing is that about an hour ago this story appeared on the front page of slashdot for a moment. As I attempted my first post, I got the slashdot invalid story message 'nothing to see here...' error. Then as I went to reload the main page again, this java IDE story disappeared! Oh well, I guess taco decided to use that new slashcode without testing again.
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
I use Visual Cafe. Its not that great but it happens to be what I've been using and hasn't screwed anything up yet. Great praise and all . . .
1Alpha7
Live to be Moderated
I would like a Jave IDE that saves my files in a persistant format. (The opposite of how Slashdot handles Java IDE comments.)
Perhaps Sun thought it an infringement to mention Java(tm) without mentioning that Java is a trademark of Sun Microsystems, Inc.
bug.gd: error search engine. Humanity working together to solve all errors.
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
Note to self. Ignore development opinions of people who don't use debuggers.
Thats like saying I would like a car with no exhaust pipe.
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.
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.
use jEdit.
Written in Java. Its not an IDE, but its an excellent editor.
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.
Visual Cafe for Java by WebGain. It's for Windows but useful if you prefer visual application development.
http://www.webgain.com/products/visual_cafe/
Now the counter is right again, which will of course make us all like like morons. Maybe its there to break peoples first post bots? (If numreplies 10, pretend like its too late) Of course, having 10-20 comments about "what is wrong with slashcode" is so much better than a few bits of noise...
As I sit here cursing JBuilder, I look forward to the end of the current project so I can try out IDEA
NetBeans is an amazing IDE, although it was a bit slow on my 400 Celeron at work.
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
i haven't seen a Java IDE better than ahref="Sun's Forte. its use of EJBs to quickly develop J2EE apps is unmatched, IMHO, and its grasp of XML is a Really Good Thing (tm) to have in a development environment. the ESP toolkit is rad too.
too bad it's not Open Source, but hey, $20 for media is a really good price.
We use Borland JBuilder around here, and I like it alot. Color coding editor, debugger, visual GUI designer, and database controls and classes are all built in. If you ever lusted after the RAD capabilities of Visual Basic, JBuilder has all that too.
Borland also has a free JBuilder personal (previously called Foundation), for tryout and personal use.
Be aware: software development in general, and Java software in general will each eat your computer for lunch. You're doing both, so make sure your machines are up to date.
-B
Not that this wasn't entirely predictable.
If I was building an IDE it would look like vi.
Back in my Java days I used Visual Cafe and it was crap. Not only did I have to bother with the language itself, but I had to watch and code JUST LIKE Visual Cafe coded or it would screw up the GUI builder. Also, it - like most IDE's - had a whole slew of buttons and strange configuration options that had to be learned.
When I went back to vi my code time was cut in half.
On Windows, its all about textpad. Open up the api documentation in a browser- what more do you need? You can compile and run directly from Textpad.
"The defense of freedom requires the advance of freedom" - George W Bush
I use GWD, I found it one day one tucows and have never looked back. fortran! well it does that too, I actualy work with alot of fortran.
UltraEdit.
Fast, easy to use, feature rich.
But it's a shareware and not really an IDE.
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.
The last time I have seen the benchmarks, the numbers were abysmal for all OSes besides Windows and Solaris. In fact, if you think benchmarks don't matter, try running Forte, my Java IDE of choice, on say... Linux. Please don't flame me for that, I really did try, but Windows 2000 Pro did not lag when clicking on the menu bar. (I have a PIII/850.)
Now perhaps this is a major weakness in write-once, run-everywhere Java, but Sun or IBM developers seriously need to concentrate on optimizing JDK/JRE for all platforms. Otherwise, if I can get best performance on Windows, why don't I use C#? I really hope they fix this problem.
In the mean time, my recommendation is Windows 2000 Pro/Forte for Java.
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.
We tried to use forte for cs125 at uiuc in the fall of 00. It was a real mistake. Very buggy, very slow...terrible terrible program.
:)
I think I may have just been trolled
Mike
Slashdot 's editors are dickheads
IDE's are crap, except when debugging. For editing, get the editor that lets you type quickly and accurately. Make certain your build system (ant) is set up to delete files because java compilers don't follow cross-file dependencies reliably.
JDEE is an Emacs IDE for Java. Emacs means that you rarely, if ever, have to remove your fingers from the keyboard. IMHO, this is a good thing.
Later,
Ross
www.netbeans.org
'nuff said. Check it out, it thoroughly impressed me, as I was tired of JBuilder.
but its based on netbeans so that might work nicely as well.
:-). One key compile and your classes are dropped in the right place . . .
Great thing with it is you can just mount directories correctly and you don't have to f#$k with your classpath
Listen to Reality!
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.
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.
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.
--
Since IDEs are very subjective to a person's preference, it's hard to pick "the best" solution for a group of people. My personal preference is HomeSite/ColdFusion Studio from Allaire. Neither of them have much in the way of java support, but they're extensible to the Nth degree. I wrote a little java/javac/appletviewer wrapper app and bound it to my F-keys to perform my basic compile/debugging. If you want to check it out, it's at my html site. If not, no biggie. It's pretty simple, but works for me. I've tried IDEA, JCreator, NetBeans, Forte, and a ton of others, but i'm so hard-wired into the Allaire environment, and i don't do enough java to make much use of the big tools, so i stuck with what i'm used to. All the above are great apps, very well done. I don't like how slow the java-based ones are from a UI standpoint (i.e. Forte and it's Swing backing, i had to get out and push)
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
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.
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.
What does a Java IDE need?
/. waiting for Netbeans to download updates as I wrote this.
;^D Without a 1.8 GHz machine, it's still a little slow.
* 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
Only drawback -- I sure wish this was written in assembler.
It's all 0s and 1s. Or it's not.
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.
* Nice (customizable) code formatting, syntax coloring, with little niceties like showing you the first bracket when you end one.
* Great debugger, be able to step through code and graphically watch variables change, as well have a command mode for full 'probing' beyond what the GUI should reasonably do.
* Library knowledge. When you hit the '.' to access the members of an object, should pull up a list of all members of that object. Should also display method prototypes when you hit '('. Saves many a doc lookup!
Now I know I'm going to get flamed for this, but really the best editor I've found with all of these features is MS Visual Studio. Especially the last one (MS calls it Intellisense). Live with it for a while, and then try living without it. I've yet to find any comparable one in Linux or Java.
Although please prove me wrong - I'd love to have a Java IDE with all of this stuff!
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.
My recommendation is IDEA from Intellij.
http://www.intellij.com/
There is an early access edition of the next release, so download it and give it a go. You'll be pleased you did. Among its fans are Martin Fowler (author of well regarded books on UML and code refactoring)
I use Domestos myself. VIM doesn't clean the floor good enough.
Yep. The editor market for Java is already taken by Borland (primarily). And realistically, the product is good enough that most people don't want to switch.
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.
Try JCreator. They have one free version and one professional version.
============
Mathematics will always come back to hunt you down, in so many ways
These two programs play well together. Together Control Center is a complete UML modeler with a built in color syntax highlighted editor. Comes bundled with JCVS and Tomcat. Has an integrated debugger and allows for live debugging of servlets. Models Java or C++ and also provides code auditing and metrics. Together has an open API so you can modify the tool to suit your needs.
I use Borland primarily to build the GUI and then do everything else in Together.
Setting his threshold to 5, Sparky eliminated most of the trolls on /.
good call.
In case some people don't know it exists, there is a free (as in speech) Java IDE over at www.freebuilder.org
.
Two main reasons I won't use IDE's is that they don't have pluggable editors. If you could have vi, emacs, and a plain old window-ish editor, you'd attract a lot more folks.
:-)
Related, is the ability to do everything from the keyboard. As a developer, I type a lot, and fast. Being forced to use the mouse to develop is a significant productivity issue for me. (Same reason I like vi, is that I can do everything with my fingers in the home position; no escape-meta-alt-control-shift contortions, no reaching for the mouse to simply move around).
Oh yeah, another key feature is that any code produced by the IDE should work perfectly well outside the ide, and vice-versa. IDE's that insert their own chunks of code, and put in comments a la "don't modify this", suck, in my opinion. The IDE should be an optional tool to make your life more efficient, not something your code becomes dependant upon.
Nobody's accomplished those that I've seen, which is why it's still vi/javac for me
-me
Love many, trust a few, do harm to none.
If you're going to make use of the big, powerful editors, the main reason is to make use of rapid application development - building the guis on the fly, and then adding the code (or visa versa). Its the reason that the big, powerful development tools are big. Otherwise, you might as well use a text editor.
Most of the applications have a huge problem: for the parts of the code that they write, you can't edit it, unless you don't want to use the RAD tool for creating gui's anymore (their parsers often only work with their templates - especially J++). The big exception to this is JBuilder. You can write code, change it with the RAD tool, and then change it more. Not only that, but the code that is produced by JBuilder isn't half bad, unlike most of the other GUI's I've tried, which produce horrible looking code.
Of course, there are a few other features I particularly like - it can keep track of the classes you've created so that you can easily figure out what methods to call, but those are just icing.
As to the speed - most of the GUIs are written in Java, which makes them very portable, but about half the speed they would otherwise be. However, its a constant speed slowdown, not an exponential one. Just use a fast enough computer, and you won't notice the difference.
Mod me down and I will become more powerful than you can possibly imagine!
I too use SlickEdit quite heavily .. VERY customizable, supports aliases ('spr' becomes System.out.println), and if you implement or extend another class, it will auto-add method prototypes for you to override.
-B
Not that this wasn't entirely predictable.
IntelliJ IDEA is the best IDE for Java that I've used. The code completion and refactoring are incredible, especialy the automatic package import. Large feature list, features that actually work and work well. Project setup is simple and unobtrusive and does not force a bunch of configuration files into the codebase. Ant integration is also helpful. I switched after trying Jbuilder and VisualCafe. I was never an IDE fan before this product. (I am still a bit of an EditPlus fan)
I am especially fond of highlighting a block of code and choosing "suround with->try/catch" to auto generate a catch statement for each checked exception generated by that code. very nice.
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.
Together Control Center is a great product including UML and all that and a reasonably good editor. Pricey.
Borland JBuilder is a great editor and it is nice for debugging servlets. Somewhat pricey but good. No UML diagrams.
Ultraedit is a nice text editor, inexpensive, color coding of java and somewhat stupid command completion.
XEmacs (latest version) has color coding of java, smart command completion, etc. You do want to learn emacs to take full use of it which may be somewhat steep if you haven't used emacs before. Debugging doesn't equal TogetherCC or JBuilder but much cheaper.
Get the demos, try them all.
I'm a senior CS major, and i've used differend IDEs for Java over the past four years. Jext is a very good enhanced text editor. A couple of nice Java IDEs are Forte, which is available at Sun, and Kawa, which you can find at download.com.
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 use Java builder 4, its nice enough. A lot
of the time, I still do simple bugfixing and
rebuilds using xedit and make script.
Jarkata Ant is nice "make" replacement for building
java apps. And can be integrated into jbuilder,
and other IDEs, if your project gets completed
enough to need one.
This ought to have been a slashdot poll rather
than an Ask slashdot.
AnyJ is also a good one to use. It supports Windows, Mac and Linux.
============
Mathematics will always come back to hunt you down, in so many ways
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
Lately, I've also tried using ctags(1), with the newer options for parsing java code:
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.Ant is akin to Make, but with an XML control script. Our script compiles, builds javadocs, runs the ObjectStore post-processor on the classes, and builds the .jar files for us.
-B
Not that this wasn't entirely predictable.
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
... hmm, I'd like to think I've tried them all and I have to say that NetBeans is by FAR the BEST.
www.netbeans.org +++++ IT"S OPEN SOURCE!
I've tried a number of Java IDEs, and Forte has proven to be the best at enhancing my productivity while not imposing too many restrictions on how I develop. For no cost, the Community Edition provides significant support for developing a subset of J2EE apps (JSP/Servlets, JDBC, etc.) right from the start.
Forte's IDE is extemely modular and extensible, with 3rd party modules becoming increasingly popular, and providing built-in support for developing your own Forte modules.
The downside? It is extremely heavyweight. Make sure you have gobs of memory if you really want to get any value out of using Forte.
It is combined with a UML designer.
Forte is great--I love the editor especially. All the bracket and parenthesis matching, auto smart indention, keyword highlighting, code completion, argument reminders, etc... Unfortunately the entire thing is done in swing and is major bloatware. Swing is a major heiffer.
Makes a great timer for popcorn. Put a bag in the microwave as it starts, four minutes later you have perfectly-popped kernels.
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
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.
[user@host]$ vi filename
Just my take on the matter
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
My company uses IBM Visual Age for Java and I got to say it rocks. It has color coding, central repositroy, built-in versioning and every time you save your code it checks to make sure there are no errors and will make suggestions to fix it. One feature I really like is the auto-complete. You just type the first few letters of a function and it will give you a list, even functions you created get put into the list.
(vi||nedit) && ddd && jdk && documentation && mozilla Thats all I need ...
"We all know Linux is great...it does infinite loops in 5 seconds." -- Linus
My kind of Java IDE should be:
1. Not written in Java, but written in native toolkit like QT/GTK.
2. Editing mode should have the choice of vi mode.
3. Syntax highlighting, auto tabbing and paranthesis matching like in vim.
4. Debugging interface to jdb, with an optional gdb mode where you can use your favourite gdb commands in jdb and/or a complete visual debugging mode like in DDD.
6. CVS/Clearcase hookup for version control.
7. Project build management with make/autoconf and/or with ANT from apache.
The Eclipse project from IBM seems very promising.
If your into Object Oriented programming and design (OO) then you want VisualAge! Unlike most IDEs you can view the object hierarchy and brows things like references to objects, methods and fields.
IVJ is the OO programmer's IDE!!!
If Slashdot is where the spelling-challenged go when they die, I'm in heaven.
I agree: most Java IDEs I have tried are much too slow. I would like a good native IDE, not written in Java -- they're just too slow and cumbersome (swing's responsive on my box can be downright horrible at times).
I am currently using kate (one of the editors that comes with KDE), as I can turn on the filelist to get a list of open files, use the projectmanager plugin (comes with it) to easily load sets of files, and the java highlighting is good. Ant is great for my compilation needs, and I just use konsole's "tabbed" multiple-shells-in-one-window interface to handle the various parts of my projects (kate also allows you to have a shell built into your editing window, but I find konsole to be easier).
If you want something with some more features, but isn't as slow as Netbeans/Forte, I was using Jedit before I switched to kate. It is a really good Java-based editor with a great set of plugins so that you can basically build your own customized IDE. In fact, I find Jedit's features, with appropriate plugins installed, to be superior to Forte's.
I've tried Cafe 3.x, JBuilder 4.x, Visual Age 3.5 and 4.0, Netbeans 3.2 and 3.3beta, and Forte 3.0 ce.
The only one that has decent support for web applications is Forte. It has support for creating and debugging JSP, Servlets, WAR files, TagLibs. The problem is that it only supports Tomcat 3.x right now.
Really, all the IDEs suck for web dev, but right now Forte sucks a little less.
review
free personnal version
Triple-Cross-Platform development - with new support for three leading application servers (Borland AppServer, WebLogic and WebSphere), three version control systems (ClearCase, Visual SourceSafe and CVS) and three development platforms (Windows, Linux and Solaris).
Bringing Java and XML together - take advantage of the latest technology for data exchange and presentation. JBuilder includes fully-integrated and comprehensive XML development support for the entire development cycle including creation, manipulation, transformation/presentation and integration.
Enhanced enterprise development and deployment to J2EE application servers - including new support for WebLogic 6, WebSphere and new Borland AppServer 4.5. Plus easily create enterprise deployment archives (EAR).
Improved team productivity - with new integration with three leading version control systems Rational ClearCase and Microsoft Visual SourceSafe.
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:
;-). (actually I'm using Galeon and kind of like it better than IE, so scratch my bitching about Mozilla)
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
Remember that what's inside of you doesn't matter because nobody can see it.
* 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.
Now here I have to disagree. Most GUI RAD tools let you build your prototype real quickly - but suck when it comes to making UIs that internationalize... Any that results in code that puts component X at location Y,Z and size A,B is going to fall over if you want a global app. BewareInstead 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.
Netbeans also is not too shabby for JSP testing, given it's integrated servlet/jsp arch, which i think is tomcat (either that or it was real smart about working with the tomcat I had installed previously).
I find that netbeans depends really more on physical memory size than processor speed for how well it performs. I run it on a 450Mhz machine and it does fine (cel 300a->450), the kicker is I hav 256Mb of ram. I saw about a 40-60% performance improvement when I went from 128Mb to 256Mb. This is on win2k, so I'm sure it'd probably work even better on a Unix. ;-)
Oh, and let me second what another poster said about ArgoUML being a decent free UML tool. It's pretty mem hungry too, but you can't beat the price...
Happy hacking!
News for Geeks in Austin, TX
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.
Although I haven't used it recently, I used to regularly own and love the Metrowerks IDE, called Codewarrior. It is a very nice IDE that support Jave, C, and C++. The debugger is quite good. I used it on the Mac for C and C++, and I haven't used it in two major revisions. So possibly my experiences won't reflect yours. But I do think it's worth checking out. Codewarrior runs on a bunch of platforms, including Mac, Windows, Solaris, and Linux. I only have experience with the Mac and Windows version, personally.
Check out IBM's Eclipse and/or Slashdot's post about it a couple days ago here.
#8==> this is my penis
:)
#8===============|> ~o ~o
this is my penis on amyl nitrate
It contains everything you would think if in an editor, including CVS support, support for debugging, selection of JDK per project, javadoc integration.
The things that I find set it apart are:
If you are after a visual GUI editor, IDEA isn't for you - but I find that most editors produce crap GUI code anyway.
Like Netbeans, it is also written in java.
Intellij don't provide screenshots, but there is a tutorial provided here
I own four orphaned Java IDEs, two from Sun, one from Microsoft, and one from Symantec. Grrr.
We use Borland's JBuilder at our startup company for the past year and a half and most everyone has been very happy with it. It's a pure Java environment and will work on Linux (I ran JBuild exclusively on a SuSE Linux-ified Dell laptop at my last job) and runs very quickly, unlike Netbeans from what I've seen. There's an API for creating add-ons to the IDE and people have created many free ones out there (that one has a few and one that was hosted on Angelfire had a lot but is gone now).
My favorite is jVi which changes the editor to act like VI/VIM. I think JBuilder comes with an emacs editor option out of the box (zip file) as well. There's also Clearcase opentool that I used for a while but I've found it too slow for my taste in the long run.
A lot of Developers here use EditPlus for editing XML, XSL and JSP and they can't say enough good things about it. Personally I love VIM, it's good for what ails ya.
I wear pants.
Just because you don't know how to set breakpoints, doesn't mean other people don't. I, too, can take a good look at the code a set a couple of breakpoints. I won't have to worry about leaving those in in a release build (nor would I need to use DEBUG guards around them).
Kernel programming obviously is a little different. I have no experience, but I'm guessing it would be a lot harder to catch a interrupt before the kernel does. You'll probably relegated to hardware debuggers, the user mode linux port, maybe that one computer - many virtual server thing, or printk.
Jext
- Written in 100% Java
- Open Source (hosted on Sourceforge)
- Syntax Highlighting
- virtual workspaces/(switch between projects)
- Auto code macros
- Filemanager, so you can add your current files to be easily opened
- tabbed pages
- fast
- FREE
This breaks the 2 out of 3 rule:-
Fast, Cheap, Good (choose 2)
-Ope
I use x-based gvim with its syntax highlighting for "pure" Java coding.
I just got a copy of DreamWeaver and Fireworks today. Its supposed to be used for JSP coding. I'll let you know tomorrow how good it is.
"You cannot find out which view is the right one by science in the ordinary sense." - C.S. Lewis on Intelligent Design
We've been using it for quite a while and it's been by far the best IDE for Java I've seen. After you get used to it, you only end up writing about half the code you typically write, and the refactoring support is the best I've ever seen. It also has built-in support for CVS. If only it were free... (It's a little pricey for hobby Java programmers, but something a company can easily afford.)
http://www.intellij.com/
A startup who doesn't even know what IDE's there are.....This one's going to be around A LONG TIME....
www.fuckedcom....whoops wrong window
It does the basic stuff, syntax highlighting, auto-complete etc. It does auto indent (when you type } it lines it up with the matching {). Block indent. It also has some cool stuff, templates for instance. I hit CTRL-J then type 'fori' and it puts in a for(i=0;i<|;i++){} with the cursor at the pipe. You can also define your own templates, there are probably 60 like that default (for try/catch, loops, main method etc.) You can right-click a variable and go to the sourcefile for that class (or a generated header of it if the source is not found).
Down side, their EJB stuff in 5.x is kinda junky. I also wish it integrated with SourceSafe (it claims to integrate w/ CVS, never tried though). The user interface is a bit clunky, you have to install an (included) add-in for wheel mouse support etc.
All in all, like I said, it ain't perfect but once you get used to it, its good.
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
It's pretty easy to argue for Together at the high level. When it comes down to filling out the code though, there is little that can beat a developer being comfortable with his or her environment. Much of my office uses IntelliJ, I use Emacs, some people use Vi. Putting me on Vi, or someone who is most comfortable with a GUI IDE on Emacs would sacrifice more productivity than could be gained by having a unified environment.
Stop-Prism.org: Opt Out of Surveillance
VA releases proprietary software version
By Stephen Shankland
Special to ZDNet News
November 7, 2001 6:26 AM PT
VA Linux Systems on Tuesday announced a new proprietary version of SourceForge, the collaborative programming software that now is the centerpiece of the company's survival strategy.
SourceForge was launched as an open-source project, meaning that anyone could see, modify and redistribute the underlying programming blueprints of the package. The new SourceForge Enterprise Edition 3.0, however, is a proprietary product, said spokeswoman Marla Kramer.
The new version, scheduled to ship Nov. 16, integrates better with Oracle databases, makes it easier to keep track of different software versions, has better search capability, and lets administrators monitor the system better, VA said. The company announced its new proprietary direction in August, but said it will continue to improve the open-source SourceForge site as well.
Fremont, Calif.-based VA, which is seeking to change its name to VA Software, left the Linux server business earlier this year after riding the Linux hype to a stellar initial public offering in 1999.
VA is running into some concern about the longevity of its Open Source Developer Network, the flagship of which is a version of SourceForge used to house countless open-source projects. "Those of us who depend on SourceForge for development are, or should be, getting worried," one open-source advocate wrote recently, suggesting as one alternative the Savannah project hosted by the Free Software Foundation.
As a business, SourceForge competes with San Francisco-based CollabNet.
VA also is trying to boost revenue from its other operations. It's promoting more heavily its Thinkgeek site for retail sales. And its Slashdot "news for nerds" site plans to sell subscriptions for ad-free reading.
my second choice would be sun's forte because:
..p
I was always one of those people that insisted on using vi and only vi for my Java projects.
That changed when I started a new project with ~100k lines of code. Without an IDE you waste too much time hunting down parts of your project.
I researched many different IDEs, but I decided to go with CodeGuide. There is a trial version available.
For God sakes please stay away from JBuilder. It is the biggest piece of crap i have ever used to program. It is very slow and you have to learn all of the stupid path system and coding that they want you to use. The best way to go with Java is to just use an editor with the JDK.
Now here I have to disagree. Most GUI RAD tools let you build your prototype real quickly - but suck when it comes to making UIs that internationalize... Any that results in code that puts component X at location Y,Z and size A,B is going to fall over if you want a global app. Beware ...
:) That all depends on the Layout managers you use. If you use a null layout, which is sort of what Visual Basic (yuck) does, you have things posistion at exact locations which is very bad. If you use something like a grid bag layout, things resize correctly so the gui looks nice when the user maximizes the app or changes the language of a label. Coding complex layout managers is not rocket science, but it can quickly become monotanous. If you were paying developers to make a complex GUI, you wouldn't exactly want them spending 90 percent of there time with a simple text editor writing gridbag constraints.
Now here I have to disagree
I really like Simplicity for Java, myself. It's really a good tool.
--
If I actually could spell I'd have spelled it right in the first place.
Personally, I don't use an IDE. I just use emacs. Using LOG4J as a logger in my servlets and JSP have really helped me out in development and deployment in understanding whats really going on under the hood.
But if it's a PRESIDENT asking about developer productivity, tell her that really understanding the problem your trying to solve and thinking the solution through will increase productivity more than any tool.
It does syntax highlighting, macros, and LOTS MORE! You can use it in conjunction with Borland C++ compiler and it shows errors and line numbers with errors. It is quite an amazing program and I highly recommend it!!!!
i typically use a text editor and jikes. i just moved over from windows so i'm looking for a new editor. but i used to use ultraedit and added jikes as my tool. i debug generally with printfs but when i need a debugger i use forte. borland used to have good debugger but i found jbuilder's debugger to be horrible.
ironically the poster said that he wanted to increase his productivity but i find myself ten times more productive than my ide-using counterparts. some didn't even understand the concept of packaging! i kid you not! i personally feel that ides draw you away from the core features of the language.
If you are on Windows, you should try JCreator. I like it better than every other (graphical) Java IDE that I've tried. It isn't open source, but it is reasonably priced at only $30 or $40. (Note that there is a free version, but it lacks some of the most useful features like code completion and a bean wizard that fills in the setters and getters for you)
Does all your hilighting code, syntax, links to the compiler,1 press preview, code lib,macros,unlimited undos
:)
everything i could want in an editor
oh and really cheap too
get it , got it , good
My experience with Java is that anything AWT is far faster on Windows than on any UNIX for the same box. (IE, if I run an AWT app when booted to Linux, it'll run slower than when the machine is booted into Windows - including 9x.)
Likewise, assuming you can find an equivilent Solaris box, AWT apps will run faster under Windows than Solaris. It's just that AWT apps (especially Swing apps) take so much time up fiddling with drawing code and translating between architectures that the Windows code winds up being faster.
(I think this also might be due to the inherent speed hit the X11 architecture forces too. Face it, calling a function directly is faster than sending a command for that function across a pipe - at the very least, you add an encode -> decode step. Be interesting to benchmark Win32 GTK+ against X11 GTK+. 'Course, then again, the drivers would need to be made the same, and...)
Once you move from GUIs into server-land, then yes, UNIX's strengths help Java. But when it comes to using Java for a GUI, Windows Java is faster (assuming that everything is user-driven - i.e., no actions take place until the user initiates them, i.e., a text editor).
You are in a maze of twisty little relative jumps, all alike.
If I were to build one from the ground up, slim and componentized would be my keywords. I'd like to be able to use diffrent compilers, diffrent editors, diffrent project managers, etc etc, all communicating across a network or on a local computer. This way any editor that implements this protocol can interoperate with any project manager. By componetizing it this way, I can edit source code with out having to start the entire IDE (that is an anoyance in IDEs like netBeans and VisualStudio). So I want an environment that is not so integrated that it is all in one program, but an environment that integrates seperate applications to work better together, allowing these applications to communicate with each other with out having to be the same program.
disclaimer : My views do not represent those of every one else in slashdot.
I use multiple instances of Elvis (a light-weight vi clone w/ syntax highlighting) in different X/E/GNOME-terms. You may laugh, but it's one of the fasters ways of working... No overhead and I can open up as many terms as I want for all my 'cat'ing, debugging, or './build'ing purposes (my company works with Tomcat and Ant).
You might want to reconsider emacs/xemacs. I moved from NT and MSVC to Linux, emacs, and Java and, for a time, I thought that emacs was horribly backwards. But so many people I worked with that were very bright used emacs, so I gave it a try. Now, after some time using emacs/xemacs, the idea of moving back to an IDE is now replusive to me.
The speed at which one can work in emacs just can't be matched by bloated IDEs that try to do everything but have an even longer learning curve than emacs and require heavy use of a mouse. I never want to go back.
Keep it open. Allow engineers to use whatever they
want with the one exception that an IDE that
would preclude other's or editors is disallowed.
.
As a coding environment goes, JBuilder is the best I've found. It supports all the editing features you'd like in a good editor (color highlighting, identifier completion, window splitting, key remapping, window splitting, browse to identifier definition, ...). The project management features take a little while to get use to for most people, but their solid once you figure them out. It also integrates with version control with the enterprise version. But if that is too expensive, there is always the Professional and Personal editions for 500$~ish and Free respectively.
And as an extra bonus, the IDE is open to expansion through little plug-ins (I think) called OpenTools.
Anm
I quite like Kawa - my university uses it to teach Java to first year CS students. It is a simple program that is good to learn with. I use it for all my Java coding, because I just want a lightweight, simple IDE - no bloated fancy features for me.
I haven't been working in Java for a while, but when I was, SlickEdit was the best.
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
would ask me roughly what the project should do,
send out agents to gather domain knowledge and business rules, come up with the correct design patterns, and complete a working prototype.
While I'm gone fishing,
-- Another senseless waste of fine bytes.
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).
you didn't say what platform but code crusader does java i believe and i liked it when i used it for c++ development.
Unfortunately, too many people think a simple text editor with the ability to compile and run code can be considered an IDE. However, that is no where near the truth.
For me (and I think most people) and IDE has certain requirements. Here is my "short list":
- Debugger
- Repository of some sort
- "Hooks" to Version Control
- Some type of GUI builder
- Color highlighting (yeah, this is a text editing thing, but IDE's should not be without this one)
- Auto Formatting of Code
I am most experience with IBM's Visual Age for Java (VAJ), so I will only speak on it. I believe that VAJ goes over and beyond the basic requirements into a top-notch IDE that cannot be ignored. Here are some awesome features of VAJ:
- Changing code while running/debugging and having it reflected during runtime. TOTALLY COOL!
- Being able to pause and resume any thread within the debugger and inspect whatever you want.
- Connections to External Version Control, such as M$'s Visual SourceSafe and Rational's ClearCase. Not sure about CVS and others.
- Plugins... I can run a mini-instance of WebSphere or Tomcat to execute Servlets and JSPs within VAJ's debugger.
I am not going to go on and on about every feature; however, I know it supports all the required IDE features and more. It also is very good at keeping the developer "thinking" in an Object-Oriented fashion by the way it organizes the methods and fields (and allows full Source View too). I personally think the strongest selling point that VAJ has is its debugger. It is so solid and so feature-filled, that it demands respect.
And yes, there are Winblows versions and Linux versions of VAJ.
That's all I wanted to say.... if you reply, please be intelligent. There are too many lame posts nowadays on slashdot.
It's free, available on every platform, medium
learning curve, and _extremely_ powerful and
customizable.
People who drag and drop everything never
get to know their own code, so when a big
problem rears it's head, they have no idea
where to look.
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).
Not a full blown IDE, but it is really, really good as a code editor. Free and for-cost versions are available, I use the free one and it works just fine. The only drawback is its winblows only :(. I want to try jEdit - the last time I used it was a bit rough around the edges, maybe its improved since then, plus it is pure java...
It's based on the open source Eclipse system, and it gives you a customizable multi-pane view, allowing :
1. Is developer productivity really a problem? Most shops I've seen, bad requirements or project management are a problem. Developers code on or a head of schedule. When the lines between coder, designer, and production deisgner are blurred, productivity goes down. Read "The Inmates Are Running the Asylum : Why High Tech Products Drive Us Crazy and How To Restore The Sanity", ISBN: 0672316498 .
2. You should be coding to standards. IDE shouldn't matter. Let each developer choose one's own, but support one for the inexperienced (any IDE, they all do the same thing).
Joe
Joe Batt Solid Design
I use JBuilder most of the time. Otherwise, I use a programmer's text editor, like Nedit, Ultraedit, or whatever.
.java file with JBuilder. But I couldn't even find where the damned file was stored, so I had to copy and paste it in! It's embarassing! I could not find that damned file anywhere!
JBuilder is definately slow- I bought a faster computer just to run it. It's still no speed demon, but 5 is a big improvement, speed wise. I'm running it on a 700MHz machine with 384MB now, and it's OK.
I tried VAJ, which is a huge industry standard. Most of the smarter people I know who program Java seem to use it (yes, this sentence was worded carefully). However, I couldn't make heads or tails of it. It has too many layers of stuff that are too hard to weed through, and too many weird new approaches and paradigms to learn and remember. Learning the program is more work than learning Java itself! So what's the point?
I tried writing a little program with VAJ last night. I couldn't get the debugger to work, so I tried opening my
I suspect this is why many people don't like IDEs in general. Personally, I don't even use the visual tools in JBuilder- I just like the integrated compiler/debugger that snaps the cursor to where the problem is. I know it sounds silly, but that's what I like, and it's really all I ask for. Really.
I'm inclined to not bother trying Forte, since it's probably just more of the same, but with Sun's gobbledygook instead.
I've used JCreator, and it's OK, but it isn't much of an IDE.
Maybe I'll try Codewarrior, if someone can give me a compelling reason.
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.
That someone would even write this statement somewhat reflects a failure on the part of compiler writers, but I feel the need to respond anyway. Fast JAVA is by necessity crappy JAVA in that it underuses the feature of the language that make JAVA best: good OOP, which leads to easy maintnance and extensibility. The performance of JAVA is improving, though some of the things that could best improve it (Class specialization, Object inlining) technically break the JAVA spec and are underimplemented.
The author of Jext abandoned development at the start of this year, and the current version has many bugs. I suggest you use j or Jedit instead.
What do I want in an IDE? First, I want to see everything made faster. VC has been getting slower with every version.
I would love to have the ability to toggle on superclass code in my current class's window. That would be helpful -- particularly the next two levels up. (make it colour-coded, huh?)
I would like to see code-completion. I want that completion to not get confused by classes and methods in the package and the imported classes and methods. What a pain!
I want textfields in the dialog to resize! I want to be able to see and read the listing of classes in the project-add column without a lot of mess.
I want a more intelligent layout of the path-display. VC has one long line of path, and i can't take it all in when i am scrolling back and forth trying to visually parse out the ";"s!
I would love a more intelligent check-in/check-out process with CVS than what i have seen in VC.
I would like it if the keybd shortcuts were'nt overlaid with the debugger on [F5] and the execution on [CTRL]+[F5]. The crumbs on this keybd have simply made execute almost unreachable. And the debugger is simply too slow for me to use it frequently. I can only shake it out so often.
mouse shortcuts with options. VC does this as cut&paste, but I copy more frequently than cut. (ie, when i add debug code)
colour-coding is nice and i like being able to use italics or bold as needed.
"help" that helps, and doesn't get in the way.
I like to be able to go directly to the function i want. VC does this (in an okay design) with a drop-down list of all methods in the current-class. If there are private classes in the file, then methods are not visible. It usually beats a general find-text because if you cannot remember the method name (is that a "saveFile()" or "writeFile()"?) your search won't bring results quickly, if at all. Being able to include private classes' methods might be a nice addition.
a few extra ideas. VC does a lot of things nicely, but it does have some drawbacks. Here are a few of both. Does it help answer the question??
When I was bored this summer I tried out every Java IDE I could find with Google. The best by far was Simplicity for Java. Check it out, its written in Java, very fast, and very intuitive. The only thing that sucks is the license. You can't save code unless you purchase a license ($150) which makes it pretty useless to me.
void theoremProver(){
print "this product is correct"
}
If I were doing much heavy programming in Java, I'd be using Netbeans . It's high-power and open-source. I'm not doing much heavy programming in Java though.
At the university I use Metrowerk's Codewarrior . It's very good, although both features and speed seem sub-par compared to Netbeans. It's closed-source, coincidently.
My personal favorite, though, is Arachnophilia . I don't need an IDE with gobs of features for the light programming I do; Arachnophilia is a multifaceted IDE that does Java, HTML, C++ and a few other common languages (albeit in small portions). It's fast enough for my work, too.
I've heard that Metrowerks CodeWarrior has a good Java IDE with great GUI dev tools and is availiable for windows and macintosh
Nothing beats an open source IDE written in Java ;) It is pretty nice and has most of the good features found in other worthy IDEs.
I've read a lot about the varous IDEs out there, and it seems to me that most of them have skimmed over the best and most widely used one: VI.
VI is a very mature piece of software. has been around for as long as... well, let's just say it has been around longer than notepad, and dare I say longer even than "EMACS".
Have you considered VI?
Right on bro!!
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.
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.
--
I could not find that damned file anywhere!
VAJ uses a repository to store code.
Put your Java in a scuzzy. I don't mean drink Java out of an old SCSI mug, I mean like the other one. You know. HDD. Not HDD like the floppy disks, I mean hard drive. Not a hard drive like a difficult trip, but the other one of that. You know?
"Is it just a coincidence that the acronym for the National Science Foundation is the same as that in the banking community for Not Sufficient Funds? Kinda make you wonder."
Did you just recommend emacs because it isn't bloated and doesn't try to do everything?
Dear god...
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
-.
While we're discussing Java IDEs, you might want to look at DrJava, a graphical IDE in development at Rice University. It's the only Java IDE I've ever heard of that has a read-eval-print loop built in (that is, a little prompt where you can type in Java expressions and see the results immediately), and it looks like it's modelled after another Rice software product, DrScheme. Though it's limited now, it looks like DrJava aims to be for Java what DrScheme is for Scheme, which would be cool.
JCreator is a text editor plus; it supports project groupings quite nicely, and its interface is lightweight so you can get access to your code.
Borland's JBuilder, on the other hand, is an IDE in the fullest sense of the word. I've had very limited experience with it, but it looks quite suitable. I don't particularly like its heavier interface, but it's a matter of personal preference.
Take my advice with a grain of salt, however -- I'm using JCreater for CompSci programming assignments, and these so far have been pretty lightweight.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
Visual Age is what I use. It hasnt done me wrong, one of the best things I like about it is its de-bugging tool .. none of the other IDE's I have tried have one that is quite as usable.
another handy feature is it's Team respository, that makes collaboration easy.
Dave
Slow is all in how you define slow...i've used jbuilder 5 and it's plenty fast for me! My friend is a developer at a company called Mapics (offshoot from IBM actually if I recall correctly...) and they are switching from smalltalk to java (in the middle of some projects no less..my friend had to help writea converter to convert as much smalltalk code to java as possible via automation, and they'd do what it didnt get right by hand...he said it was fun with a nice touch of sarcasm :-) but anyways ) they tried visual j++, jbuilder and several others and jbuilder was there developers choice for speed, ease of use et cetera.
Derek Greene
I hardly ever use a full fledge IDEs. They all seem to be to bloated and to difficult to use.
I use GRASP ( http://www.eng.auburn.edu/grasp ), jedit, and vim/vi.
It's true that using a debugger can substitute for *thinking* about the code you are looking at; I've been guilty of that at times. But there are a lot of things you can do with a debugger that you can't easily do with printf()s. For one thing, stepping through code is a good way to prove your code is doing what you think it is. For another, you can browse through datastructures (especially with a good debugging environment like DDD) and learn a lot about how the code works. And I have solved some extremely obscure and difficult bugs with patient and creative use of the debugger; setting a variety of conditional breakpoints until the problem was found. Asking each equivalent question about the code would have involved a tedious recompile.
Unfortunately, you have experienced what everyone new to VAJ does....
VAJ is not friendly to newcomers and I dont think anyone will debate you on this. What people (included myself) would argue with is whether or not VAJ sucks. The debugging is some of the best I've seen (i.e. changing code at runtime and having it reflected at runtime, pausing/resuming any thread you wish and inspecting it).
I would say to give it another chance; however, IBM is moving towards WebSphere Studio Application Developer (WSAD). I think WSAD helps to alleviate much of the newcomer drawbacks of VAJ. I just hope that it contains the same strength in the debugger.
I guess the only last thing I can think to say is that no product sucks just because you have a hard time figuring it out. You can say that the developers did a crappy job laying things out or documenting their product, but its functionality cannot be equated with its usability. That is like saying that Linux sux because when I installed it the first time, I didn't know what to do at the command prompt after install! hehe.... I think you understand what I am getting at.
The ide really depends on the platform you are using. Jbuilder can hook into cvs for source control. VAJ has it's own source control and has tons of hooks for websphere. If your platform includes a lot of EJB that use container managed beans, and websphere, VAJ is probably your best bet. On the otherhand, if you want a full featured IDE that is mature and stable Jbuilder is a good choice. If you're into UML style of OOD, then TogetherJ is a good choice.
Apple's Project Builder, which comes as part of the free Developer tools for Mac OS X is excellent. It has great Swing drag and drop interface creation plus all the other standard IDE tools. And did I mention it's free?
Check out Roaming Studio. Full J2EE development including EJB, JSP, JSP Custom Tags and Servlets. Also supports Design Patterns and Apache Struts development.
IDEA cut our development time in half, no lie. Its only $400.. and umm, you need at LEAST 128 megs of RAM to run it. Stupid memory hungry swing apps.. but check it out, defiently.
The price is right.
-=Maggie Leber=-
I know this sounds like bullshit but using IDEA will generally save you about an hour a day. You'll also probably end up with better code thanks to how quick and easy it is to refactor (move or rename methods/classes/variables/packages, etc.) with IDEA. I'm sure there are some IDEA users on here that'll back me up on those seemingly outrageous claims.
Other people have already listed some of IDEA's features so I won't bother enumerating them. The only real downsides to IDEA are that it's a memory/cpu hog and it doesn't have wizards and drag-n-drop GUI designers (I never used 'em anyway). What it has instead are tons of features that actually save you time while you're coding and navigating your code.
I've used several major IDE's and eventually settled on JBuilder until recently when I finally decided to give IDEA a try. It's the only IDE I've ever used that felt like it was designed by programmers instead of a marketing department.
Check it out at http://www.intellij.com .
Brien
JBuilder is easily the best Java IDE I've seen. Fast, stable, supports plugins (like Jakarta Ant), supported by a commercial company, etc. Don't do anything before at least checking out the free version at www.borland.com.
I use Textpad. No debugger, but that's what System.out is for, right? Fully configurable syntax highlighting for every Java, JSP and every other language you could ever think of, and then some. Integrated compiler, and extensible tools. It's cheap ($30 I think). I use WinCVS, of cvs integration. I've tried Visual Slickedit, and it was too slow for me and I didn't need it's additional functionality. My company decided both of the Java programmer were going to use Visual Age for Java and spent $2500 on two licenses. I struggled with it for two weeks... It's a buggy, bloated piece of crap.
I was using Homesite around the time that Allaire it, and I remember that it had a code snippet feature that would let you drop in a snippet or even cooler, highlight code and drop in a snippet around it. What I wouldn't give to not have to type all of my try/catch and loop blocks every time! Is there a Java IDE that has that?
I join the others here who lament the bloated, memory-hogging, unstable, weird-metaphor-using IDEs that we have to deal with.
I hate this guy as much as all of you combined ;^), but why moderate him as a troll? That's just silly.
Curmudgeon Gamer: Not happy
You haven't seen modern IDEs. NetBeans, for example, makes emacs look like vi.
Just use "mc" for directories, "vim" to edit text files, and a shell to run "ant" in. Everything is golden.
Simple is better.
-nate
An IDE has a higher learning curve than emacs? Are you insane? Okay, first off emacs is definitely bloated and definitely tries to do everything. Second, IDE=integrated development enviroment. Keyword there is integrated. Emacs...hmm text editor with prorgammer's extension's no? Third, heavy use of a mouse? maybe you have heard of this new concept called keyboard shortcuts, they'll save your life man! Fourth, I gave up learning Emacs, IDE's make much more sense to me and they're all similar enough that there is very little learning curve form one IDE to another in most cases. Took me just a few moments to figure out mos tof the stuff I needed to know in the first palce the first time I stepped into an IDE.
Derek Greene
It won't be released for another month, but Oracle's JDeveloper 9i is very good. Written in Java, I've used the beta on win2K, linux, and solaris.
l
Download the beta from:
http://otn.oracle.com/products/jdev/content.htm
I also work in a Java shop, developing J2EE apps (EJBs, JSPs, the whole bit). We use JBuilder, and I must admit that it's a pretty nice IDE. On the other hand, it's kind of bloatware. It seems to freeze up my computer for several seconds every so often during a window minimize or maximize (this is on a 1Ghz, 512 MB RAM Windows NT 4 machine). I attribute this to the spiffy whiz bang interface builder. My perfect IDE would be focused on programming, without any built-in interface development tools. That's what makes Metrowerk's Codewarrior nice - it was my IDE of choice at home, before Mac OS X came out. It was a pretty straight-forward, hard core, code-producing environment. Now that I've got one of those new iBooks, I've become pretty attached to Apple's PowerBuilder. Streamlined IDE, but with nice hooks into InterfaceBuilder (which was Codewarrior's big problem - no tools provided for interface programming). If my co-workers and I have our way, replacing VSS with CVS, then I'll be doing my java development in Mac OS X. Along the same lines as jEdit is MightyJ (http://www.mightyj.com/) - I haven't used it myself, but I've heard good things about it. One last note - even the best IDE is not a replacement for a good text editor. The two compliment each other, in my opinion. Good luck on increasing the productivity.
You'll never find a better editor than Source Insight.
But, you are right, if one's interpretted java is fast, then they probably aren't using it correctly.
Derek Greene
Whatever IDE you pick ... I recommend that it's not one written in Java itself. You will suffer.
--
Violators will be prosecuted and prosecutors will be violated.
I agree with the folks recommending IDEA from IntelliJ. I can't say I've had decades of experience, but I used Microsoft tools (VB, Visual C++, Visual J++) for 6 years, and was generally impressed by them. I started shopping around for a new Java IDE when Microsoft made it clear that it was not going to stay in the Java world. I tried IntelliJ IDEA, and only now realize how limited the Microsoft tools were. I've been using almost a year now, and it's easy to use, powerful, and not that expensive. Check it out at www.intellij.com
Linus "just hacked" Linux. He didn't use
UML.
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
Don't forget ProjectBuilder for MacOS X. It's a complete Java 2 IDE (for OOC as well), powerful, slick as hell and easy to use...it's also free with Mac OS X.
Simple. Look at Visual Studio.Net
Feature rich, incredibly efficient, innovative,
fully integrated. The best of its kind.
Meanwhile, it's from Microsoft.
Like I said, though, I really *do* use vim, mc and ant. And that's it. jode if you need to do some decompiling, and everything is great under Linux.
It's been called "The Bronze Age IDE" by my colleagues, but it's fast and stable. Run a couple windows in each virtual desktop and you can edit 20 files at once easily. Vim has everything I want in an editor -- color syntax hilighting, auto-indenting, quickie macros, horizontal and vertical split, block copy and indent, etc. And ten million other little features.
No matter what IDE you use, ant is by far the best Java-based build system. Everyone should be using it.
-nate
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
Dont forget 'BlueJ', I use it all the time, developed by the University of Washington, open-source, written in java. everything I would ever need...
Your new president wants to increase developer productivity. She probably doesn't care how you guys do it.
I have tried several IDEs, and I still use emacs most of the time, because that's what works best for me. I have been a technical team leader on several projects over the years, and along with my teammates we've tried to settle on an IDE, only to come to the conclusion that some guys are happy and productive with JBuilder, and others are more comfortable with Visual Age, and some others are happiest with Textpad or UltraEdit.
I have found no correlation whatsoever between the most productive developers and the tools they use. I've seen code of coutstanding quality written using TextPad, and I've seen horrible code that was written using JBuilder (and vice-versa).
So I've come to agree with Henri Fayol's philosophy. Henri Fayol (1841-1925) has been one of the most influential figures in modern management.
Fayol's philosophy applied to computer science would state that developers are much more than just coders, and in order to increase productivity, administrators should just give them the freedom to choose their tools and provide them with an environment where they will be able to exploit their full potential.
The most productive developers that I've worked with are the ones who do something right the first time around. The first thing these guys do is think the problem over and plan things out instead of heading straight to a coding binge. And they take the time necessary to write good quality code (commented, formatted, toroughly tested, etc.). These guys take 25% longer than others to write their code, but they save lots of code refactoring and debugging time over the long run.
I wish you the best of luck in your endeavour.
Pascal Forget
Montreal, Canada
JBuilder is much better, it doesn't force moronic structures into your code, other than always having a try-catch block around it's jbInit() methods - unlike Cafe, though, you can remove or rename the without problem and they only come up for GUI objects (and aren't a nuisance). It does "real time" rendering rather well with rare exceptions such as with code that has static blocks, interfaces in some situations, or if you have no empty constructor. Code lookup is good, macros, you can write plug ins for it. Overall pretty nice and it isn't particularly slow, at least on machines from the past couple years with decent RAM. Also, it's written in Java so it runs on Windows, Linux and Mac, although the Mac version isn't useable yet because the Apple vm anti-aliases the text so it looks like the text is drawn by crayon - that's Apple's fault, actually. Last year when I tried it, Codewarrior wasn't quite up to speed but I would take a look at it now just because their Apple IDEs are pretty high up there.
As far as non-GUI work, well, that, to me, is mainly just personal preference, not so much based on feature sets, because most people recommending things like jEdit and such aren't working on large scale applications, or if they are (and are at the point where it can really be considered large scale) they must have a unique way of managing their different projects and packages. Anymore I'm used to using a system consisting of CVS, ANT and JBuilder for file, package and version management and I haven't seen anything else easier for a group environment.
Given my GUI oriented job, I'm used to using jBuilder and am relatively happy with it. It has struck me that I haven't heard of an open source Java IDE (writ in Java) yet, though I honestly haven't looked much, which I happened to have been thinking about recently. Personally I'd love to see something out there to make borland fix what bugs remain and I'd be interested in how something like jBuilder is made, since there are definite memory and speed hurdles to overcome - which jBuilder does rather impressively (though I use a PIII 850 with 368MB RAM).
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.
You can configure the "Tools" menu to launch any application you want. Just create a new menu item called whatever you want, and set it run "javac" (if its already in your path). Set its argument to "current file" and dump the output (errors really) to a subwindow at the bottom of Editplus (i forget what that check-box is called now)
This is how i got through my Java class 2 semesters ago, Editplus can also save/open to ftp sites.
May you be touched by His Noodly Appendage. RAmen.
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.
I actually have used several in my career as a professional java developer, and here are my picks:
If your machine has the resources (fast processor, and at LEAST 256MB of RAM, preferrably 512MB then I would suggest Sun Forte or Netbeans. Netbeans usually has the latest stuff since it's the open source version. The latest version, 3.3 beta2 has support for XML, JSP, XSL, servlets, and has integrated ant, junit, cvs, etc... very cool
JBuilder is good, but never been my favorite.
If resources are limited, then I usually use either vim 6.0 or xemacs with the JDE package installed. Xemacs with JDE is nice because it's not a resource hog, and comes with a nice class browser.
Another good one, if you're not an vi or emacs person, and prefer the newer IDE type editors, is Visual Slickedit. This has a VERY integrated class browser that supports several languages including java and C++, and even supports C symbol browsing which can make finding functions very nice. The only thing I don't like about Visual Slickedit is the way it integrades version control systems and it's lack of support for XML.
It's not an IDE, but I really like Visual SlickEdit. It has command completion, syntax highlighting, and a lot of other really cool features.
Also, if you want it to do something that it doesn't already do, you can write a macro for it in slick-c.
The one thing it's missing is a good debugger. I like JBuilder's debugger for that purpose, but that's about all I use JBuilder for.
I've used the Netbeans.
It's written in Java and very slow. It uses memory too much.
And the UI is not well organized.
Jbuilder is faster then Netbeans and runs well on my Pentium 333Mhz machine.
It doesn't look like written in C/C++, though.
I like its options for setting { } style, event adapter style, etc.
I think the JBuilder is good and easy to use.
Features I want?
Java Applet Debugger
Faster speed
I think development env. should not be written in Java. Because it's too slow. It means that if you do something wrong or right, and want to check the result, you can't figure it out quickly.
Sometimes, the change is not reflected although you do right. Then the slow respone of the IDE can give you confusion.
Also, in lieu of printfs, I've set up zillions of watchpoints and breakpoints-with-actions that print out values of variables and now it's time to quit the debugging session. Save state? Good luck! Assuming the debugger even claims to be capable of saving state, when you come back in to the debugger and attempt to reload that state (assuming that even works), what used to be line 584 is now line 592 and all your actionpoints are off (and useless). If I had done it with printfs and "if" stmts, the line number changes wouldn't be screwing me up.
Debuggers are great for getting stack traces and analyzing core dumps and looking at program state at the time of failure, but after that, it's back to studying code and inserting judicious printfs.
John.
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.
I guess I'd include versioning, superior editing capabilities, the ability to instantly launch and debug a servlet, an EJB environment that breaks out the home and remote interfaces, provides for class and EJB inheritance, includes an EJB container and datasource capabilities.
Wait a sec... VisualAge for Java has had that stuff for almost two years! VAJava kicks!
If emacs is just a text editor with extensions, then it obviously doesn't try to do everything an IDE does, so you're argument is self contraditory.
.emacs file. If you're using an IDE now I think you'll find that emacs is fairly lightweight in comparison.
I didn't find emacs hard to learn. This may be due to my superior mental abilities or it may be because I didn't approach it with the debilitating prejudice that it is hard, as so many other people do.
Additionally, once you've learned emacs you don't need to re-learn it when you switch languages, build tools, or version control software. IDEs are getting more versitle recently, but it's still likely if you suddenly move from a C++ project to a Java project you will likely have to find a new IDE.
I'm not sure I undertand the "bloatware" objection to emacs. Nobody says you have to use the optional libraries that come with emacs. They don't add to the startup time if you don't add them to your
I've me been reading threw some of the comments about IDE's but I hear no one mention IBM VisualAge for Java. What is wrong with it? What is good with it?
I have not personally used it but I have heard that it takes an object oriented approach when dealing with projects. Sounds like a good idea to me!
I'm just wondering what you opions are on it.
---- Don't worry about signing me up... I'm already on all the spam lists.
A fast editor would be great, but an editor with an intuitive UI designer (a-la-vstudio) would be great. Being a visual studio guy, I haven't ever felt at home designing user interfaces in Java.
;>
Yep, that's my top vote.. easy UI design without having to deal with the intricacies of a layout manager.
-some anonymous coward
Kawa has been killed off by Macromedia.
http://www.macromedia.com/software/kawa/
It's a shame, I haven't found a decent replacement yet.
Steve
Linus doesn't use debuggers.
We use BlueJ at out institution, it was developed for the "purpose of teaching object orientation with Java".
I believe it's great because you can write a class and instanciate an object of that class without having to write any other classes.
Also comes with a handy debugger.
http://www.bluej.org/
Obviously not suited to develop huge projects, but it can be done.
I have found that just like editors a question like this really comes down to individual taste.
With the above paragraph in mind I would recommend SourceInsight as a good development tool. Unfortuanetly it lacks integrated compilation or debugging options (and thus might not truly be considered an IDE).
Some of its highlights are dynamic type resolution, syntax formating, a dynamic context window, team programming support, fast access to large projects etc. etc.
The only downside is that it is a Windows only program. But if you find yourself doing much work on a windows system it is worth taking a look at:
SourceInsight homepage
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
JBuilder, cowboy. No question about it. Hands down the best Java IDE out there.
EMACS
I've been using Glimmer for the last few projects.. It's been a good syntax highlighting editor for the java and bash/perl stuff I've been working on.. check it out at
http://glimmer.sourceforge.net
By downloading jEdit and plugins that will do project exploration, Java compilation, Java output console, CVS access, and error messages that allow you to jump to the offensive line of code -- all within their own dockable windows, you've got yourself a good and free IDE, mister!
"Love heals scars love left." -- Henry Rollins
If Java isn't good enough to make an IDE, then why is it good enough for the project that you want the IDE *FOR*?
My benchmark for when it's time to switch to Java is when the Java tool developers feel that the language is good enough to actually use.
Due to the insulting nature of your remarks I won't even dignify you with a further response than this.
Derek Greene
NetBeans... opensource, free and cross-platform... http://www.netbeans.org -Aron
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'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 :)
Ant, of course
Totally agree on avoiding debuggers. Knowing you can't just crack open a debugger and single step through your code completely changes the way you design and develop code. You're forced to design, develop, and test in very small increments, and encouraged to leverage that well-tested code. The end result is a higher quality product in less time. Yeah, that's the XP credo, but you will find very few XP'ers who don't use debuggers. I'd hire the developer who prefers a good editor and the command line over the guru of the IDE du jour every time.
Besides, if you're working with heavily multi-threaded code, there's no debugger in the world that will save you. Period.
I started using it after Visual Cafe drove me nearly insane. I've also tried JBuilder, Visual J++ (which is pretty well dead now), and JEdit (which is a simplish editor written in Java that plugs into the JDK for compiling and running your apps). Before I started using Codewarrior I had decided that the available Java IDEs were so bad that it was less trouble to use a simple text editor and run the JDK from the command line.
Something that I consider a plus with CW is that it uses Sun's JDK rather than it's own compiler (which was kind of an annoyance with VCafe, being tied to them for updates), so it is more or less just their IDE set up to use Sun's compiler and VM. I ended up liking CW so much for Java that I've also started doing my C/C++ programming with it, although the fact that I now work for a company that uses CW for Mac and PC C++ developent has encouraged me to become familiar with it. One of the biggest plusses for me is that you can choose to turn off MDI (multiple document interface), which I consider to be one of the worst and most frustrating GUI concepts ever, especially when you have a Big Ass Monitor.
It also has RAD GUI tools but I have not used them so I cannot comment on their usefullness.
Nick
I've come to the conclusion that VI --> www.vim.org is my editor of choice. Sure it dosen't function the sames as DOS EDIT or notepad in the respect of navigation (it does in insert mode) but if you give it a shot for a few days and print out the 2 million page user manual (ok.. about 5 of those pages will give you the basics) you may find that you like it.
It does have it's perks. It's open source, it's free and it runs on ANYTHING (unix, linux, dos, windoze, os/2, macintosh, beos, etc...)
I found it to be a great, well written (it's been in development for years and years and years) editor for programmers, mainly because, well, it was written by programmers. (you know it's well written when it's only on version 6.0 and it's been around for 12+ years)
Give it a wirl.
and lets not even GET into the emacs discussion here...
<end/>
I love my TextPad 4.5 - but the first thing I have to do is reset the search commands to the Microsoft Windows standard CTRL-F/F3 combo.
Just go to Configure->Preferences, click editor, and select "Microsoft Applications" under Keystroke Compatibility.
TextPad comes with the ability to run command line tools (such as java and javac) on the current file, and also does syntax highlighting for Java, HTML, and about 50 other languages.
Check it out at www.textpad.com
I use BBEdit Lite and Project Builder on my Mac OS X machine for Java work.
Tips and Tricks for Mozilla
"If you're on Unix, you already have an IDE -- Unix itself. This powerful IDE derives from its interoperability, flexibility, and configurability. If you really want to get a feel for Unix-qua-IDE, the best thing to do is to find some high-powered programmer whose native language is Unix. Find someone who has been at this for many years, and just sit back and watch them at work. They have created their own IDE, one that suits their own tastes and aptitudes. Quietly observe them edit files, move them around, compile them, debug them, test them, etc. The entire development *is* integrated, like a top-of-the-line German sports car: functional, powerful, and elegant. You will be absolutely astonished at the speed and ease exhibited by the native speaker of Unix in his home territory. The art and skill of a virtuoso can only be seen to be believed. That is the path to mastery -- all these cobbled little IDEs are expensive toys designed to sell a flashy demo using cheap tricks, and being optimized for immediate but shallow understanding rather than enduring use, are but a dim palimpsest of real tools. In short, you just have to learn the toolbox. However, if you're not on Unix, then your vendor probably didn't bother to provide you with a proper toolbox on the so- called complete system that you forked out your hard-earned cash on."
I use a good text editor called Ultra Edit (assuming I'm working in Windows (cough) at the time). It features nice syntax highlighting for a number of languages, and is easy to expand the highlighting for any language you use. It has an optional integrated spell checker, and allows for binding of hotkeys and menus to run programs and perform tasks. I have mine set up so that I have a menu which allows me to compile my programs, with different sets of optimizations, capture output to a new file (usefull for checking for erros), preview webpages I'm writing in my browser, and other things. It integrates with any CLI develment software, and any other program you need to one. The one piece of software works as my HTML editor, C editor, and general text editor, highlights seperately for each, and can preview webpages, or compile programs right from the window it's in. It works well for me! Downside: it's not free, upside: www.astalavista.com (*wink*)
PowerJ from sybase is the absolute worst IDE for java. All I can say if that nothing works the way it should and it has an amazing ability to just erase the last method you wrote for no apperent or avoidable reason, with no way to get it back. Plus it's integration with easerver (sybases's ejb server) does not work... at least not as well as they advertise. It is also slow and uses propriatary file formats so that all your java code is hidden in non *.java files that cant be grep'd or javac'd or diff'd. Man I hate this program! Notepad and the jdk for windows is far superior.
Personaly I have used a few (Visual Cafe, JBuilder, J++, plus an array of text editors) I have found that the best one that I've tried is JCreator Pro from It has a really nice GUI that sort of remindes me of VC++, it integrates with any version of JDK and provides help straight out of that documentation. The debugger isnt the best, it is just jdb in a section of the JCreator window. It has realy good auto compleetand overall it is a great tool.
I'm waiting to see what this eclipse project is like, I would really like to add features in to most IDE so an open source plugable one sounds good especially since it can be used for more than just java. alphaWorks has released a c/c++ plugin for it.
If you are after a really good text editor though you should go no further than TextPad it is the best text editor I've ever used. Good syntax highlighting with hundreds of extra syntax definitions avaliable from their web site. You can also compile and run java from within text pad. Before I found JCreator this is the only thing I'd use. I prefered Text pad over Visual cafe and the other IDEs ive used. What ever IDE you deside on I'd sugest you get JCreator anyway.
Haven't had much luck finding a decent IDE for my environment (servlets->EJB->JDBC, etc, etc). What I have found that works well is a good text editor: gvim. Syntax highlighting, and my fingers know vi. CVS for source control and ant for build/distribution. Also have had good luck with optimizeit for profiling java apps. Profilier is especially nice because it lets me attach to an application server and filter out application server specific classes (which can be many). This allows me to really see what my beans are doing. Also fond of jprobe for debugging. Using many different apps for different aspects of development can be a pain in the ass, but I've found that after a little meddling around, it works quite well. Anyhow, just my 2 cents.
ummm...forbidden doughnut
The fact you're assuming fast Java is by necessity poor Java and underuses the language's features reflects your lack of understanding about really improving Java performance.
Fast Java means understanding design issues to improve performance by not creating too many objects, lazy initialization, controlling class loading, and so on. Folks, most Java performance issues nowadays has less to do with executing bytecodes than it does with poor coding.
Most Swing programs have performance issues to a handful of the above issues. Eliminating them usually makes quite speedy Swing programs.
Try Kawa, it's simple, yet powerful.
A clever person solves a problem. A wise person avoids it. -- Einstein
luser 1: "editor xyz rulez."
luser2: "No, edition xyz sucks goats."
Look, every 4 or 5 rated post here has said _nothing_ maybe I'll try harder, but since I always post AC, nobody ever comes down here to the cellar anyway, so you'll never see this post (bastard moderators!)
Anyway, your question (which nobody read apparently) asked about more than just products, it asked about FEATURES.
Since you are doing java development, I'll keep that in mind...
1) Speed. Your software tool should feel like an extention of your body, like a chisel to the sculptor. Make sure it responds to you and compiles fast.
2) Integration with version control. It is pretty darn nice to have the ide hook into version control, rather than having to go to another tool. Seems pretty silly, but it will save you a few seconds here and there.
3) Integration with application server. Since you are doing java, this is a MAJOR time saver. Imagine if you could click a magic deploy button and be able to test your code more or less without leaving the ide. Very cool.
4) Relates to 3, but... ejb deployment too. Some tools just go so far as tie ins for servlet development. If you are doing ejb's, go all out.
5) Wizards. Let's face it, writing getter/setter beans all day long sucks. Writing simple entity ejb's all day long sucks too. Get a tool that does it for you and knock off a bunch of time.
Things that are overated:
1) Remote debugging. Most of the time it is too slow and cumbersome to actually help you.
What's my choice? JBuilder. I've used it since version 2. It has gotten better, and personally I don't find it to be that slow. I have been through three ide evaluation processes, and each time JBuilder comes out on top. Let's face it, vi or is nice, but as a professional developer, I'm looking for tools that will save time. JBuilder does that. When you look at other professional tools, there each get cancelled out for good reasons - Visual Age is too tied to other IBM products, Visual Cafe is a quirky beast, Forte has never felt refined, etc. etc.
While you are thinking about tools, especially with regard to $$ and time, take a look at www.gentleware.com and the open source uml tool they have on the market. Free community edition tool. I'm not affiliated with them, but I find that their tool fit well with my needs when doing the same kind of evaluation you are doing right now.
Posted AC - because unlike the
Do you have some pointers for writing fast Java Swing UIs? While server-side Java is almost always fast enough, I am not sure that writing a responsive UI in Swing is possible.
When I used to program in Java, way back in 1997, I used to use the fabulous MS product called Notepad. After banging my head in frustration I was introduced to Symantec Visual Cafe. What a revelation!
A visual Java RAD tool that could create much of a program with drag and drop procedures, this saved so much time for me and created *nice* looking stuff. Its greatest strength at the time were the "interactions", you could create logic operations on form elements by just clicking away!
Since I stopped being a programmer I dont really know what happened to it, is it still knocking around??
Thing was though I happened to chance across MS Visual J++ and *cough* it was actually quite nice. Their Virtual Machine was rapid!!!
Po
I was being facetious
I'll use JBuilder as the example, but hopefully other tools have similar features...
JBuilder constantly compiles your code in the background, and tells you if you have errors (at least syntactic ones). This is a time saver.
Likewise, the CodeInsight feature really helps. This is where if you begin to type a line, the background auto-compiler will attempt to figure out what you are about to type. This auto-completion feature is a big time saver as that way I don't have to try to remember what a particular method name was, or what arguements a method needed. Likewise, it saves keystrokes because I don't have to type the whole thing.
AC.
I'll use JBuilder as the example, but hopefully other tools have similar features...
JBuilder constantly compiles your code in the background, and tells you if you have errors (at least syntactic ones). This is a time saver.
Likewise, the CodeInsight feature really helps. This is where if you begin to type a line, the background auto-compiler will attempt to figure out what you are about to type. This auto-completion feature is a big time saver as that way I don't have to try to remember what a particular method name was, or what arguements a method needed. Likewise, it saves keystrokes because I don't have to type the whole thing.
AC.
- Syntax highlighting
- Visual form/frame editing
- Javadoc support
- Robust wizards for creating new classes, applications, swing applets, etc
- Class explorer
- Ability to construct visual forms, etc directly from Java source code
- Variable name completion
- Written entirely in Java - No OS dependant code
These are the ones that come to mind immediately. I would certainly expect to be able to do no less with a new Java IDE than one can do with forte, so an examination of forte's feature set may not be a bad place to start, and work from there.File under 'M' for 'Manic ranting'
Some of the best features include:
- add an object that is on your classpath, but not in the "import" statement at the top of your file, and it will ask you if you want to add that import, and if you say Yes, do it automatically. You can also configure how many imports from a package before it goes to the "import *" for all classes from a packages.
- Select a bunch of code, hit CTRL-ALT-T, and it will ask if you want to wrap with an if-then, while, try-catch, try-catch-finally, etc. If you pick a try-catch wrapper, it will figure out what exceptions get thrown by the code, and add those exceptions. If it can't figure it out, it just uses the generic Exception.
- the interface is wonderful - lots of info available via sliding bars that disappear when you are done, maximizing the amount of space for writing code.
- great refactoring. Change a method signature or variable name, and it will help you convert all uses of that method/member to match the new signature/name/type
- good debugger
- written in Java (but fairly quick), and Linux is supported.
- very good code-completion (fast and accurate)
I have used Forte, JBuilder, Kawa, Visual Cafe and evaluated IBM's Visual Age. Intellij is the best I've come across. The amount of time an experienced developer can save is phenomenal. And unlike most automated bells and whisles of other products, the time-savers in Intellij do actually save you time.
David.
Boats.com
Check out Project Builder if you have access to a box running MacOS 10.1. Apple includes the very latest JVM and Java tools from sun with OS X and their IDE is very good. I used it all summer to develop server side java stuff using webobjects that was targeted to run on Solaris.
If all you are looking for is good code visualization and compilation, you might try jGRASP http://www.eng.auburn.edu/grasp It's free and it does visualization for Java, C, Objective C, C++, VHDL, and Ada. In addition, there has been the recent addition of a UML modeler.
-Ben Hale If I have seen further it is by standing on ye shoulders of Giants. -Sir Issac Newton
From Macromedia:
Effective October 31, 2001 Macromedia will discontinue the sale and future development of Kawa.
Macromedia strives to meet the needs of its customers and takes pride in creating market-leading products that span servers, authoring environments and media players.
In order to keep up with our customers' changing needs and focus on maintaining our status as a market-leader in Web development, servers and media players we are transitioning to a partnership strategy in the Java IDE market, and we have several partners that we feel are better suited to serving our customers' needs.
Macromedia values your support and understanding of this decision, and while there is no need to stop using Kawa, we wanted to make sure our Kawa customers were well taken care of. We realize you may have many questions; this FAQ was created to answer them.
----
Kawa was my favorite. Now Intellij IDEA (which I raved about in an earlier post).
I've seen Kawa mentioned a few times. Was a light, fast IDE that allowed you to compile with multiple JDKs.
But, alas, Macromedia has said, "Effective October 31, 2001 Macromedia will discontinue the sale and future development of Kawa."
Because they use Codewright for editing code, I have a hard time believing it will be Open-Sourced. Another product tossed into the dustbin.
Your fearless leader was actually asking how to speed up development, and standardising on a new tool is not likely to help.
Real coders don't need IDEs (though IDEA does look nice). Actually, I use J++, but only as a text editor, Ant is my development environment.
When I get an upgrade to my machine, I might try switching to one of the slower IDEs and hope I don't notice, and then I will be able to make variables called Delegate and Multicast again.
if I were building a new IDE, I would add things like a multiple select option, say select and copy only lines 5 and 10. That would be cool
Well, Suns own Swing examples are dog slow so if they can't make it right then why would you expect others to make it better ?
Visual Age for Java lets you click on a variable or type name and right_click->Open On Selection and viola you get a window with the code definition (if it's available)
IBM has provided us with a (IMHO) great Java IDE... Visual Age for Java. Syntax highlighting, nice autoformatting if you want to use it, versioning, autocompletion of method, class, and variable names... a great debugger, good test environment for servlets, JSP's and beans. Great environment. I use it everyday and it really helps productivity and has helped improve my coding style.
.02
Unfortunately it is Not free (of course) and they do not have a Java2 version for linux. They do have a Java 1.1.8 version for linux, and there is supposedly a Java2 version on the way.
My
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
Incremental Compilation is something I've found incredibly useful -- get a running app, add classes, change methods, have the app take advantage of it while it's running.
This is incredibly useful as a system grows and 5 minute startup times become normal. It's also something I became used to from my Lisp and Smalltalk days.
As far as I can tell, only VAJ and Eclipse can do this.
And in light of this, JBuilder, Forte, etc seem like glorified wrappers around jdk functionality. Might as well use emacs.
I work for a company that does a lot of Java development. I've got access to Jbuilder on my workstation but I still open files up in a text editor when I want to access them quickly. The only things that JBuilder and other IDEs do better than a good text editor are JavaBeans and JSPs.
IDEs are better at JavaBeans because you can manage your container and deloy your beans easily within the IDE.
JBuilder is better at JSP because you can debug them within it. (newer version of Jbuilder only)
The bottom line is that if you're not using EJBs or JavaBeans you can write things just as quickly in a good text editor.
But good luck to anyone who tries to manage his EJBs in notepad.
I work with similar technologies (jsp, servlets), and the real trick to gain productivity is not the IDE, but your tools setup.
Servlet + jsp has a huge turnaround time...coding, depolyment, testing...
I usuakky work with IBM Visual Age for Java. Using VAJ its possible to EMBED the excellent Jakarta Tomcat Server, enabling you to execute your code on your workstation...and even debug your servlet and jsp code...
I have done similar tricks with netbeans (embedding tomcat that is) and it works like a charm...
What I have found is that if you mandate one IDE, whatever it is someone will loose productivity. Personally the approach I've generally taken is that people are free to use whatever IDE they like, we have a good ANT setup for building and groups of people who use non-ant aware tools like JBuilder set up those configs which we also maintain in source control. I use Emacs, but other people on my team use Vim, SlickEdit, NetBeans (which I also use for debugging), JBuilder, and Textpad (sigh). The only way you can loose is that you can't buy many bundles usually, but most of the tools people like turn out to be free for the most part (except of course for JBuilder and TogetherJ, which is useful for design but can be hnady other times as well).
.bashrc (defines environemnt variables needed to run ant along with ant shortcut alias)
.bashrc under name setenv.sh)
What is good to standardize is directory structures and locations of projects, which helps you define the environment for the build a little easier.
The setup that seems to work well for us is something like this (some things are new elements I've not quite tries yet):
<DIR - project root>
build.xml (ant build script)
setEnv.sh.default (keep this one in source control and people can modify it locally once for odd setups - called by
runAnt.bat ( does all of the stuff the bashrc does, but in the way only a batch file can. Ick! Used by those poor souls without Cygwin)
<SUBDIR build> - generated by ANT (compiled class files go in here)
<SUBDIR source> - holds all source code
<SUBDIR other...> any other subdirs you might need (resource, deploy, etc.)
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Xemacs, DDD and CVSWeb is a killer combination. That's what I use for all my (academic, I admit) coding needs.
utter rubbish
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
- custom syntax highlighting. (plenty of filetypes are supported, and you can create your own syntax highlighting rules for files that aren't supported yet.)
- browser integration (unfortunately IE only)
- FTP integration for both text and binaries (which makes it a good candidate for web work)
- regular expression for search/replace
- built-in text manipulation capabilities (column select, sort column, trim trailing spaces, etc.)
- fast and stable app, unlimited undo/redo
Overall, well-designed, very user-oriented peice of work.I haven't seen one person talking about IBM's Visual Age. Like all IDEs it got it's good points and it's bad point's.
Lots of people don't like the fact that it kinda hides the Java code from the programmer by only displaying one method at a time. I hated this feature when I first used it.
After a while, you'll either really get to like this feature or simply get used to it.
One of the main reason I like Visual Age is because of its build in code repository. This repository is really usefully for team development (much easier/faster then cvs). Merging code that more then one person worked on couldn't be simpler.
It's debugger is far ahead of anyone elses.
You can also write your own code to automate tasks in VisualAge. We would a build script that would export all the code twice a day, build it, and email everyone if their was a problem! otherwise upload the new build to the test server.
It made our lives a lot easier.
what i sometimes look for an editor/ide is if it *doesn't* have the features i *don't* want. i really don't want an integrated java debugger, or code browser, or other things i consider bloat.
that's what i liked about EditPlus, it was configurable, bare-bones, and cheap.
i moved to jEdit earlier this year. it's highly configurable, the plugins are a brilliant concept (just get the components i want!) and something that most don't point out is: there's actually a major advantage to this editor being written in Java....
...and that advantage is BeanShell. beanshell is basically a java interpreter written in... java. it may sound silly at first, but this means you can script jEdit components at runtime without compiling. manipulate text, communicate with plugins, write your do-it-all ultimate macro, or just execute that java math expression you want to test out. it's also a great "scratchpad" for trying out code snippets to see if you get the results you expect, without having to create a class/static main method, compile, etc. just type in a few lines of code and go.
check out the jedit plugins here (i wish there was a cvs plugin! anyone care to do a port?)
see the jedit community page (experimental plugins, lots of beanshell macros, etc) here
Features critical to me (and maybe others) are:
* Syntax highlighting, yes that's important
* Project management, yes, I don't want to deal with all hundred files, just hit one button
* auto-completition, when typing java.net. I want to see a popup with all subclasses etc.
* API help, not only via F1, but also automatically when I type the ( I want a small thingy appear with correct syntax
As you see, a lot of things, and I'm sure I forgot some.
Try to look at MS Visual C++ and Borland (Inprise?) JBuilder/CBuilder for good things.
depending on whether I am using a fast machine or a slower one. Netbeans is really good (if a little slow), and the CVS module is excellent as long as you don't try to get too complicated...
It also integrates beautifully with ant.
JPadPro - pretty good extensible IDE, javascript as scriptin engine. has all features u can expect from a java ide. i like it, despite it's windoze only...
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.
I love how Java is still in the stone age as far as RAD tools. There really isn't any single solution that takes the cake... just a bunch of piss poor ones, and maybe an OK one thrown in here or there.
That's one thing that's good about developing for Windows... Visual Studio is hands down, the best IDE available.
Actually Forte uses Netbeans not the otherway around.
Here I'm doing pretty well with SciTE which is just a good (but very good) editor with syntax coloring, some code completion, building and running from the menu and that's pretty much it. (On Windows there's a friendly program which adds macros and some project management)
Then again I'm not doing any visuals. For that you might try Forte; that's what my coworkers seem to recommend.
I'm with Kent Beck on this one:
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.
(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
I've been considering getting a job as a programmer since I do so much programming in my own spare time. The only thing is, I'm horrified that I might take a job as a Java coder and be forced to work on a Windows NT box running Visual Age for Java or something like that.
Does anybody work as a Java programmer where you can choose the tools you want to use and control your own environment? The few programming workplaces I've seen in Minnesota are all homogenous, cubic hell holes.
If I managed a Java programming project, I'd use open-source development as my model. The IDE/text editor is strictly an implementation-level detail. Just use three spaces for a tab, and CVS as your version control system. Everything else is up to you.
Guyz, I use VIM for my editing ( I'm too lazy to use emacs ), I have a set of VIM scripts for converting some code like psvm = public static void main Also a bean builder for those dumb get set pairs , etc. Also in win32 I used Optima ( or Sybase PowerJ ), only problem with that is a set of classes you have to ship around
Quidquid latine dictum sit, altum videtur
It depends on your purpose. Java is not good to make an IDE because of the Swing library, but it may be (and actually is) good for the server applications.
Donate free food to the hungry at The Hunger site.
I'm looking for a good RAD tool to write front-ends to enterprise systems (crappy configuration screens, data-entry etc).
JSP is fine if I can do everything I need in HTML, but edit-masks, and input validation is pretty minimal there, so for a number of screens, it just isn't sensible.
We used to do a lot of powerbuilder, but (1) It sucks rocks. (2) No one really expects to see Sybase keep throwing money into it.
That basically leaves Delphi/C++/VB/Java.
I'd like to do it in Java but I need something to throw together nice screen easily.
My users all work in one or two buildings in Australia - they don't need internationalisation, and they sure as hell don't want to pay me to put it in.
Something that lets me drop some controls on a screen, validate the input and then send it off to a server/database gets my tick.
Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
I am currently a college student learning how to program Java. My professor introduced me to two programs which I use regularly. The first, is an IDE named Kawa, made by Macromedia who, as of Oct. 31, 2001, isn't selling it anymore. The other is a standard text editor called WinEdit. I prefer Kawa and suggest you try it(if you can get your hands on it), because of its usability. You have only to set the classpath once, and if you ever need to change it(for various reasons, one may need to), there is a really great user interface which aids you.
Emacs contains syntax colouring, etc. for other programming languages as well, so if you want to do some scripting for example (as I do regularly), you don't need another editor for that.
Emacs doesn't have a very nice UI and learning all these bleedin' keyboard shortcuts may be a pain, but once you're past that, nothing can beat it. But this is my personal and humble opinion of course...
On top of my wishlist:
* Kdevelop + KVim.
* Vim + a classbrowser.
And that's it.
Ahhh... suuuck it.
How about AnyJ? There's a free version for linux users. Windows version isn't too expensive. Wouldn't run on linux on my ppc tho...
The editor is fast (it more than keeps up with my typing even though it's doing real-time syntax coloring, structure analysis, and so on). The compiler is fast and it has a good dependency checking system. I can do a typical incremental make in about 10-20 seconds, and a full rebuild takes 190 seconds). Creating a new project is instantaneous.
The debugger is brilliant! You may not think you need one (I survived wth System.out.println for years), but once you have it your productivity will skyrocket, trust me.
That's the thing that impresses me most about JBuilder -- the features are all focused directly on making you more productive. The ability to browse the all of your classes plus java.* and anything else you happen to have in your classpath live in the editor is worth its weight in Jolt cola any day.
It's a little spendy (around $900 for the Pro edition, I believe), but the only thing scarier than the price tag is the productivity you get.
I've used Symantec Visual Cafe and Metrowerks CodeWarrior a ton -- they both suck. I've also toyed with IBM's VisualAge for Java, which goes the "all your source are belong to us" route, and is unbelievably annoying to use with a source control system that isn't theirs. I've also used emacs and javac/jikes for some little projects.
IMO, JBuilder5 is miles ahead of everything else. CodeWarrior is a distant second and has a reasonably nice daily working environment (good editor), but it's dog slow compiling or building archives, and the debugger is worthless. Visual Cafe is probably third, and the rest all down the list somewhere from there.
If you're working on anything of any size, I'd go for JBuilder in a heartbeat. Get a demo (or find someone who can get you access to the QuickTime of the the 60 minute demo Borland's Blake Stone did at the 2001 Apple WWDC). When you see all it can do, it'll blow you away.
is currently the best IDE I know. See www.intellij.com.
It doesn't have as many wizards as for example JBuilder, but it is more stable and supports refactoring and "real "code browsing.
If you use CVS, Eclipse might be a cheaper open source alternative.
I use at work PowerJ for development. Jaguar Middleware server as ORB and the Sybase database as backend.
It works, sorta.
<rant>
Issues I have at the moment are:
</rant>
Conclusion: want ide that gives me flexibility to design the way I want, with the possibility to override settings if necessary.
Maybe I am just nagging.
---
You don't need to see my
I developed CrushFTP. -plug- Its a full features server written entirely in JAVA. There are no real competitors to its features and tools.-/plug- http://www.crushftp.com/
I've used CodeWarrior 5 since I started development over 2 years ago. I've played with verson 6 and 7 a bit, but only own 5. I've been very happy with its features, and performance. Its text editor engine can only be matched by BBEdit. Even JBuilders text editor engine is annoying in comparison. The thing I wihs it had that JBuilder does is the popup menus when starting a code word. like text_field. and then a popup comes up with the possible functions.
There are issues with its GUI editing, and the fact that it sometimes can't generate the GUI code correctly, but that's my only gripe. THat and the GUI editing is SLOW when your frame starts to get complex.
Anyway, its cross platform...so I cast my vote for CodeWarrior.
--Ben
ben@crushftp.com
Emacs + JDE, nuff said.
Hear, hear!
As far as I know - Visual Age is the only tool allowing you to change the code while running. This way of doing it saves you a bunch of hours recompiling & restarting. As I see it - Visual Age is the ONLY real efficient prototyping/development tool for Java - the enterprise edition is a bit expensive - but it's worth it.
...what e-mail program should I use?...let me consult my magic 8ball! *slosh slosh* hmmm... "outlook not so good"
Same with JBuilder (cursor on type/ variable) and press ctrl-enter.
jeezuz you geeks.... fuckingz still replying to this trip... java is so fux0ring useless... USE PERL... NO use EXPECT
I'm not sure how big a project can be created with it, but then I only ever get time for small amounts of code (:-(
My 12-year old son feels much more at home learning with this type of environment, he can't appreciate why old-timers like myself work with command lines and vi! IDEs turn education into a kind of computer game.
Andrew Yeomans
Hm. Half of what you said is actually TRUE. It starts slow. But, unfortunately, after you do some things with it (like, guess what, compile a project with a couple of buttons and an edit box), it starts swapping the heck out of it, on 256MB of RAM. Which, to everyone's surprise, is slooow too. I remember switching from my old laptop (64MB) to the new (256MB) and thinking that I will be able to run Netbeans on it. Sweet innocence...
bogdan
The funny thing was, he was at least, if not more, insulting than you were.
I used a number of IDE's but about a year ago I fell back on ANT for my compilation. I now only use Forte for editing, primarily because it gives me a good overview of my file structure and allows me to open them by clicking on them. Besides that, most basic errors are filtered out immediately (CE 2.0 immeadiately shows if a file compiles or not).
After editing the files I run an ant buildscript which includes compilation, jar/war/ear creation and deployment. Basically, a basic editor (like Wordpad and the like), a file manager and ant do just fine for me.
The only added value that I am looking for is what Together offers: always in-sync code and UML. Unfortunately it costs a lot. Built-in CVS capabilities would be nice as well.
I use Emacs + JDEE. I like it. I like it a lot.
Adds java debugging, code completion, wizards, templates, instant javadoc in your favorite browser, and other stuff to all the other powerful features of Emacs.
Some people say emacs is hard to learn. I believe that only applies if one doesn't want to read, in which case perhaps one shouldn't be programming anyway.
Since emacs is the selfdocumenting editor, documentation for any feature is just a few key-presses away.
'C-h t' - The emacs tutorial
'C-h a' - Apropos (find the right function for what you want)
'C-h f function' - What does 'function' do?
'C-h k <key>' - What does <key> do?
'C-h w function' - Where is the key for 'function'?
'C-h ?' - What can i get help for besides this?
(C-h is Ctrl-h)
Emacs is a little unusual though. Since its default keybindings (among other things) are often unlike many other editors, it just takes a little while getting used to. (But then, any IDE takes a little while getting used to.) That is because emacs existed before many of those other editors.
Stumbling in the dark
I hear slavering of jaws
Eaten by a grue.
With this set up, I can:
Plus with a set of mappings from my Vim config, I:
etc. Why don't I use an IDE ? Becuase
Vim configs available on request!
Example of such a refactoring would be:
Stupidity is mis-underestimated.
For a product that does the visual building really well, especially the Swing GUI, look at Visaj (http://www.visaj.com). The Personal Edition is free for non-commercial use.
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"
Well that is a tough one. I looked high and low and checked out most of the tools the guys have mentioned. What struck me as the limiting factor for most real Java IDEs has been the speed. I found JBuilder and NetBeans (Forte I think they call it now) big on size and sluggish on performance. After some amount of searching,the best solution for me was to have a separate modelling tool and a separate editing tool.
I have used Rational Rose as the modelling tool which I found to be exhaustive and efficient, and for editing, the good old vim+ctags combo. Whereas I could design my system using Rose efficiently and then generate the skeleton code, the vim editor would give me the power of a fast, feature rich editor. This has worked out for me to a certain degree.
Debugging, still remains a problem however. I am still looking for a small, fast and efficient debugger. Any good suggestions out there ?
It really depends of what I need.
...
I have been using several IDEs. I currently use Together, JBuilder for development, Ultra Edit (or vi) when I need a quick fix.
But the power and increased productivity, you will get them from tools:
- Ant for building
- refactoring. Look at JRefactory, it's free and really good
- logging Log4J or other
- JUnit of course
-
E.g. I run Ant most of the time from the command line. Why? because it starts faster than clicking F9 in Jbuilder, even if I use AntRunner. Flexibility gives me that increase of productivity.
Of course it is nice if you have an IDE that can support your producitivity tools. Forte and Jbuilder do that well, beacuse they have nice plugin infrastructure.
My conclusion: depending on your task, you may want to use several IDEs/editors.
Perhaps one dedicated to refactoring like IDEA if you need to do a big refactoring task.
Don't stay stuck with an IDE. Use the best one for your task.
Remember a tool is tool, not an end by itself.
Sneak teach kids Algebra using a game
Every version of JBuilder, I hope that it gets faster. It never did.
throw in at least 700Mhz and 512MB and it is indeed usable.
If you do GUI works you have to restart every 30-40 Minutes to keep its memomry footprint under 200MB, but you may need a coffee break anyway
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...)
Actually, the best way to improve developer productivity is to throw away IDE's completely -- use a good text editor such as SciTE (www.scintilla.org) and for a build tool I'd recommend Jakarta Ant. IDE's tend to make programmers lazy, and thus don't actually think things through before they start coding.
If anyone hasn't looked at IntelliJ IDEA before, do yourselves a favour and do it now. I've used every IDE under the sun and got so frustrated with them that I mostly used Textpad text editor for serious development. IDEA is not only the best IDE I've ever seen (check the features yourself), but it's also the best piece of software I've seen for as long as I can remember. Tools that can automate tasks are generally tedious, except when they do exactly what you want. Try this tool before forking out money for J++, Forte, Cafe, JBuilder or anything else. I don't usually get passionate about software, but that's because I don't usually think software is any good.
Emacs
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!
There is a free download of JBuilder but the one I tried (maybe two months ago) was completely crippled, with no database functionality whatsoever. :^(
I remember a couple of years ago you had to buy the personal edition (it cost around 700 french francs - $100?) and it did have some database functionality. Now the free version is pretty useless, even for evaluation purposes
No, your children are not the special ones. Nor are your pets.
I write EJB web applications for a living and having tried a variety of IDEs I have to recommend IDEA, by IntelliJ. It is the IDE for rapid development, every feature is right where you need it, and nothing is in the way. I find that with IDEA I write better/cleaner code than with any other editor. I particularly appreciate the integrated ANT and CVS integration. It is a java app and was a breeze to install on Linux, Win2k and MacOS X. I won't be going back to any other IDE!
As many people already pointed out, what you need is a complete UML/software engineering tool. Program writing proper only accounts for about 15% of total development cycle, so you can only improve overall productivity of 7-8% if you found a way to code at double speed today. The essence is: there is no silver bullet: No Silver Bullet, by F.P. Brooks, Jr. Productivity DOES increase with new tools, editors, etc. but at a slow rate... I hope that your new president knows that.
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!
Helping with organizational effectiveness is our job.
http://www.bluette.com/
Pretty lightweight, somewhat less featured, but still pretty cool. And best of all: cheap!
Martijn
http://www.interbaseworkbench.com
IMO, I think it's important to be comfortable with more than one "type" of IDE when writing Java code. The sophisticated Java IDE's are often very slow to startup, especially if they are written in Java itself (e.g. JBuilder, Forte take upwards of 20 seconds to startup on my machine sometimes - JDK1.3, 512 MB, 400 MHz) which can be a pain in the arse for impulse coding or quick changes to code when the IDE is not running.
Therefore I've found it helpful to have two IDE's I'm comfortable with:
1) A stripped down, quick and dirty text editor which allows you to get in and out of files quick (e.g. notepad, ultraedit under Windows, whatever)
2) A whizz bang do everything for you IDE which provides a huge amount of features (Wizards, code management, plugins) like JBuilder, IBM VisualAge for Java, Forte, Oracle JDeveloper etc etc
See the following links for full lists of Java IDEs out there:
http://www.javaworld.com/javaworld/tools/jw-tools
http://www.webdeveloper.com/java/java_ides.html
Personally I've used about 10-15 editors tailored for Java and enjoy using Borland JBuilder5 (Enterprise) at the moment for the following reasons:
Wizards for just about any Java component you would want to create - Servlets/JSPs/EJBs/CORBA/Javabeans/XML. This avoids writing a lot of tedious code.
The ability to code all parts of a Java web app. with proper syntax highlighting, and code completion etc. in the one IDE (HTML, Servlets, JSPs, EJBs). The ability to preview the web. app. in the IDE without starting up the app. server. etc, can be helpful (JBuilder comes bundled with Tomcat (and Cocoon), supports Websphere, Weblogic, Borland Appserver and other plugins).
Code completion and insight - Java has lotsOfLongMethodNamesWhichAreSometimesABitTooDescr iptive and a pain to type
Rapid GUI prototyping (null, XYLayout) for Swing clients (if anyone still builds Swing clients, just joking ;-))
XML support, Cocoon, XML to DTD, DTD to XML, XSLT transformation previews. You'll may need something like XmlSpy for more sophisticated XML development however.
Full customisation of pretty much any part of the IDE, keymappings, toolbars etc - I like to use my own keymappings.
Having all parts of a Java component (e.g. methods, attributes) accessible by clicking on its name in a GUI IDE panel - this can be nice to locate sections of code when a Java class becomes large.
I could go on and on, the full feature matrix is here. Of course JBuilder Enterprise costs a *lot of money* and I probably would'nt buy it for home use.
One problem, I refuse to work on JBuilder with less than 512MB RAM. It's written entirely in Java and although they do a great job to make it as fast as it is (using custom class loaders I've read somewhere), stuff like code insight and code completion is painful with anything less than 512MB RAM.
apple's web objects via the project builder (which can also build stand-alone java apps), is where its at for me.
Use whatever makes you think more about Java, and less about menu options.
Developers should have their fingers on the keyboard. As soon as they touch the mouse they loose productivity.
Xemacs, maybe Forte.
Good on you. I hope more people take that approach since that means that my hourly rate will stay on the nice level it currently is. I sure like a skills shortage when you posess the skill :-)
Great product though.
Zilch
I used to use EditPlus as well and it is a decent editor but hasn't advanced in the slightest in 4 years...
Then I switched to Kawa, but that hasn't advanced much lately either...Also, now it is being cut by the company that bought the application (well, they aquired it as part of the Allaire purchase)... no more Kawa.
Then I switched to NetBeans (the open source basis for Sun's Forte) and it is a very nice IDE with all the features and since it is open source, it gets updated daily. They are also getting close to a new release (version 3.3 is in beta right now).
But when all is said and done, I think I rely most on vim. The new features of Vim 6.0 are awesome and let's face it, sometimes the most productive editors are those that you know the best and are the simplest. Since it is built for almost any platform, there is no excuse and with a little tweaking you can get it to do almost anything that the big IDEs do (I'm not quite sure how to get the code completion going, anyone know if there is a plugin that will do this for you???) The smart indentation and tabbing combined with abbreviations means it is the most productive editor in the repotiore.
Good luck!
bzzzt! wrong What's now mozilla0.9.5(latest?) and netscape6.1 is a complete rewrite... They started with the old cody but found it so craps that they though they rather start from scratch...
if (!signature) { throw std::runtime_error("No sig!"); }
I've been developing with IntelliJ since March 2000 or so. We've got about 10 developers using it. It's great! Runs on Solaris! Runs on Linux! Windows, even! I don't like those big monster "do-it-all-for-you" IDEs.... they try, but they don't. I don't want my IDE generating hundreds of lines of bloggy code for me. What ever code I do in my IDE I want to still be able to pop it up in vi if I need to. Forget all those super-duper debuggers...you don't need them if you write and test your code properly. Write code, not bugs! IDEA works really well, it has great syntax hilighting, excellent search tools (hmmm.. where is this class defined? Bingo!) It's also got ANT integration! Sweet! Weaknesses? If you are doing intense GUI work, IDEA does not give you GUI tools for windows and widgets. In that case, I'd go for Forte or JBuilder. Visual Age? Phooey! As for UML integration (Together), well, I do as much UML as needed to illustrate a concept and then I code the sucker. When you work on your UML, you must think "code". I want to spend time coding, not attempting to model every arcane concept in UML. Eventually, your UML and your code will NOT match, and then where will you be? Your code should be your reference! Ruthlessly keep your code lean, mean and clean! Documentation lies! Big fancy IDE's do not empower mediocre programmers! Don't believe the hype!
I've been using the VisualAge for Java product for several years now and I find it to be the most excellent Java development environment around. I've tried other Java tools (Forte, Visual Cafe, J++) - but they are very C/C++ like - files, compiling, etc. VisualAge is very much like Smalltalk - an image based, object-oriented programming language. Personally I don't think that you can truly grasp the power of object-oriented programming with the C/C++ approach of maintaining files/directories, etc. IBM wins hands-down.
I've used many Java IDE : JBuilder, Netbeans, Together/J, Code guide, CodeWarrior. Few months ago, i've found IDEA. For me, it's simply the best one. It isn't a RAD tool (who really loves RAD tools ?) but it is the most powerful Java editor i've ever seen.
I have never been as productive as I am now that i use Idea... For people who write serverside java code it can't be touched by any editor out there... built in refactorings, responsive comminity, cheap price, HIGHLY customizable.. It has some great integrations: ant, junit, and cvs... If you have a few minutes to dl and install a 5M package you should deffinetly give it a try... I have converted my entire development team over to it... we haven't missed a deadline since we switched.. I dont know if the two are related or not :) DO IT! www.intellij.com
I assaulted his remarks, he insulted my intelligence. Big difference there.
Derek Greene
JBuilder work at blazling speed with a 300mhz and 128Mo for me !
(Sure to get enough mem?)
Everything is pluggable from ground to roof thanks to the nice design pattern used !
....
....
...) come on and join the blackdown task force !!!!
For instance you may want to patch the IDE to have hyperlink features or create new kind of designers or a new versioning system
If design a nice opentools the at the fly lauch a decompiler and reinclude the result in the same context, i did it with 15 lines and 2 hours (including tests)
Thanks goes to Java because JBuilder (as well as netbeans) are 100% Java made !
I hope that more geeks will try to improve linux JDK (we need hardcoder that are x86 ASM fluent
-SK'.
try http://cedet.sourceforge.net/speedbar.shtml it's a great add-on to emacs, definitely increases productivity (especially when you're staring at those 1000+ line files).
Come on....everyone knows that VI is the best editor ever to come about. For those of you who want a windows gui there's gvim, for those who an old style console editor there vim. AND for you Winbloze Junkies you can even get it for Winbloze. www.vim.org
We use VAJ© It's the best IDE around, because of it's unique view of Java© It's keeps a "repository" and "workspace" that holds all source and class files© It's a big database that indexes everything down to the method level© The enterprise edition has a built-in EJB development and testing environment that lets you run and test your webapp from the desktop©
The biggest advantage ¥to me is the ability to subsitute code in a running app© You can run a test, make a code change, and run the test again without restarting your environment© The IDE also has method-level version control, so if you make a change you don't like, you can back it out with a click of the mouse©
It's got a full set of "wizards" that can do everything from creating an EJB to creating a full Swing-based app skeleton with a few clicks©
Disadvantages:
The "repository" and "workspace" take a lot of getting used to© You can't just mess with the code on the disk, because it's not in a directory hierarchy©
IBM is very slow about moving the JVM forward with new releases ¥VAJ 3©5©2 is still at JDK 1©2©2©
Only one Linux version was released, 3©02 professional, a few years ago©
Finally, the Enterprise version is expensive!
- It has a small memory footprint and requires very little CPU power.
- It will allow you to develop in many languages, including Java, C, C++ and FORTRAN.
- It also allows you to compose e-mail messages.
- It also allows you to build HTML pages (including ones containing JavaScript).
- It's available for just about every platform on the market.
As most of you might have guessed by now, of course I'm talking about "vi". I'm willing to do without an integrated debugger and whatever else a dedicated Java IDE has to offer in favor of the above features. I do not wish to learn a new editor and a new environment every time a new programming language comes out or every time I switch operating systems. I learned to use one editor, and I learned to use it well. In conjunction with a command-line compiler, a command-line debugger and a code repository tool such as CVS (all of which are usually free and available of most platforms), I feel that I have everything I need for a development environment. And this is NOT lack of experience talking; I've been developing code for 15 years.Of course, to each their own.
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.
This is the combination I use. After set up properly, it provides all the features one might want in a more "traditional" IDE, the notable exception being that it is not a GUI-builder. However, all my work is enterprise Java (J2EE stuffs), so that's a moot point.
I freely acknowledge that it's not for everyone. The learning curve for someone not accustomed to the "emacs way" is near unapproachable, but this is true of really any product that is more than Notepad or PICO. The learning curve for Microsoft's Visual Studio product line is insane too. So is Visual Cafe. So is VisualAge... on and on.
I was a JBuilder advocate for a while. I liked 4.0, used it for several large projects. However, with their pricing structure changes, they've lost my business, and I'll strongly recommend against it in any situation where I have any say.
I've been tasked with recommending IDE's and development environments for companies to standardize on. While I think it's a Good Idea to standardize on such things within an organization, I also believe that each individual has their own favorite tools, and is most productive and comfortable in a certain environment. Universally, my recommendation ends up being something along these lines:
Any editor or IDE that is used MUST be able to save or export code in a standard ASCII text format. The IDE must also have the ability to hook into a "standard" source control system such as CVS. Any IDE must have the ability to generate standard Javadoc API documentation.
Within those constraints, use whatever you're most comfortable and productive in.
cheers,
BM
Personally, I use netbeans, even though I don't really know how to use java ;)
Some features I'd want(many are in netbeans):
Easy linux install(rpm)
Modularity(A must-have)
Auto-update
Integrated Debugger
Integrated GUI editor
Fully searchable java documentation, with a treeview of all classes, their members, and a way to quickly open docs on the thing you select...
Same here. A couple of bugs, but IDEA is really a java IDE made by developers for developers. Very efficient. Understandable. Not bloated.
Cheers,
--fred
I've been using Sun's Forte for Java 3.0 for the past couple of months, and for a free product it really impresses me. It handles persistent objects, RMI, JDBC, CORBA (and pretty much anything else you care to think of). It has an XML creation tool that will generate a DTD based on your XML layout, as well as validate both the DTD and the XML document. It also has Swing form tools, but as a web application developer (excellent JSP support too, btw) I don't use that much. Let's see what else...built in support for Ant projects, the ability to mount CVS repositories (and JARs), the ability to create and manage JARs, built in Tomcat 3.2 webserver, EXCELLENT debugger, browser...
As for the standard stuff, it has a great context-sensitive popup help thing for syntax, with the ability to add additional classes and libraries. If you implement an interface it adds the methods you need to implement to your current class, along with any JavaDoc that was in your interface class. It also generates and compiles JavaDoc.
Too many things to list, and I'm finding new things every day. I'd definitely recommend that you check it out (free download). Although I will say this, use J2SE 1.4 with it if you can. It's still in beta but Forte runs a lot smoother with it.
I use an editor and an IDE. The editor I use is Visual SlickEdit. It is light, fast, and runs on every platform I've ever heard of. I also use an IDE that can generate code and manage J2EE archives. The IDE I use is the SilverStream eXtend Workbench. (I would note that I am a little biased since I was one of the people who wrote this IDE).
Congrats to the poster in pointing out something really critical. In order to design well, and communicate that design well, we need to emphasize abstractions. In the old days, this would have been known as the "conceptual design phase" of a project. I've come in on lots of projects in the middle and invariably, when I ask for the system design documents., somebody hands me a generated dump (pun intended) of all the objects/entities - whatever in the system (often, the proud owner points to a massive paper mosaic pinned to their wall.) I always reply...no let me see the conceptual design documents. Usually there ain't none. And I mean that in every way...there aint no conceptual design documents and there aint no conceptual design.
I want to be alone with the sandwich
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
Written in C, very fast and free as in beer (availible on tucows), I would recommend it on any project or team where you do not need team related tools. Its also one of the view IDEs I've used that also lets you print using the onscreen syntax highlighting, which is useful for thos people who prefer to refer to reams of paper rather then a small screen.
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
He obviously was not seriously saying that his mental abilities were greater than yours. Take a joke.
Why does a development environment have to be integrated?
I'm an optimist, so every year or so I try an IDE to see if I'm missing anything, then give up and go back to my text editor. I'd rather use the natural tools for my environment -- (X)Emacs (or vi), etags (or ctags), cvs, perl, grep, find, make, etc. -- than be stuck using a set of weak, inconsistent bundled tools.
IntelliJ IDEA is very nice.. and even though it's written in Java, as long as you have plenty of RAM, I have 256MB, it is quite snappy.. Lots of nice features.. Check it out!
I use Forte and I find it useful. It is a little slow but I am "only" running on a 700mhz Duron.
For just an editor I like HTML Toolkit. It seems to handle Java well.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
I used Rational Rose from version 98 to 2000. It's terrible. The app chokes on large code bases i.e. more than a few hundred classes. It doesn't cleanly support live roundtrip engineering and the quality of its diagrams is poor.
I don't understand how Booch, Rumbaugh and Jacobson allow such crap to be sold by Rational. Then again, they're probably not in control.
Also take a look at JDeveloper 9i, the beta you can download and production avaliable soon. (Free as in Beer)
This supports round trip UML class engineering. And is a top class around IDE.
Goto otn.oracle.com for the download.
(Disclaimer, I work for Oracle)
I have been hooked on IntelliJ IDEA for several months now. The interface is extremely powerful, yet uncluttered. Something like a text editor with lots of intelligent pop-ups.
It has everything the other IDEs offer with many tricks of its own. There are too many convenience features to go into here, but one substantial advantage is a nice set of refactoring tools. These tools facilitate slicing and dicing code to reorganize its structure, and similar tools have beem very popular with the smalltalk crowd.
Our whole team has been very impressed with this IDE, and I would recommend it to anyone. Give the free trial a spin. I seem to find some new feature to 'Ooh' and 'Aah' over every day.
http://www.intellij.com
One thing that is crutial for NetBeans performance is sufficient memory. If you were to try it on a machine with only 128MB or (god forbid) 64MB of memory you would conclude that it runs like molasses. Make sure you have enough memory to run such a feature rich IDE before you do so.
P.S. For what it's worth, NetBeans/Forte is an excellent IDE if you like one with lots of bells and whistles. It's built in support for GUI editing, CVS, and Ant all seem wonderful to me. I was using it's Javadoc auto comment feature just yesterday to touch up some code.
If you like something bare and stripped so it will be blindingly fast then this is not for you. If you like an IDE with everything and the kitchen sink, then you really should give it a look.
Sigs are for people who started using the net _after_ '86.
A lot of my friends think IDEs are for the weak, but what can I say, I like my syntax highliting.
I know it's been mentioned already, but I really like JCreator Pro. I tried Forte, J++, and all the others, but I hate IDEs that screw with my code. JCreator just compiles my stuff, does syntax completion (pro version only, I think), and syntax highliting. Just the stuff I want and nothing else.
Netbeans is a kick ass, open source Java IDE. Everyone at my company swears by it. It is even able to update itself. It is quite well written and has every feature I need.
My small ebusiness team at a large manufacturer use netbeans. It is the basis for Sun's Forte for Java. Netbeans is opensource, and is undergoing rapid development. It is free for download.
Implemented in Java, it should work anywhere you can install a Java2 JVM. There are prebuilt binaries for Linux and Windows, but you can always get the source and build it yourself. The current release is 3.2.1, but 3.3BETA3 is out. It might not do everything you want right now, but it is improving rapidly. The only thing I'm missing right now is EJB stuff which will probably be out in 3.4. It does have support in 3.3 for JSP and Servlets, there are db modules and you can plug in Poseidon UML tool. It interacts with CVS, PVCS, etc. Also has support for C++, makefiles, ANT, & JUnit!
The original poster says part of what's prompting this consideration of IDE's is a desire for greater productivity. Do you buy that assumption? As soon as someone starts thinking a tool will make developers code faster, I start thinking of various chapters in The Mythical Man-Month. There ain't no silver bullet!
I've gone from being IDE-dependent to IDE-free, largely as a result of moving from Mac OS 9 to Mac OS X. On 9, without a command line, an IDE was a practical neccessity -- for a project of several hundred source files, I'm not sure that the drag-and-drop javac (or jikes) would even work, since you needed the IDE to manage all those files and their dependencies. I started with the late, beloved Roaster, then moved on to CodeWarrior.
I changed jobs (bad move, but beside the point) and went to more of a Unix shop right around the time Mac OS X Public Beta was released. I coded on a Linux box until OS X was final, and have now gone Mac-only. As you'd expect in a unix shop, everything is done with makefiles, so you don't need the IDE to manage your dependencies. In a case like this, if your makefile is doing fancy stuff like building distribution jars, zips, or wars, making rmi stubs/skels, etc., the IDE actually will slow you down because you have to jump out of it and go to a command line to use make.
Some of my fellow team members are using IntelliJ just for the styled-text editing, but at this point, I'm using emacs in XFree86 with the wonderful OroborOSX window manager.
On the other hand, we're still using println's for debugging. I'm the only one here who understands jdb, and I rarely use it, so maybe that's an area where an IDE would help. Whether your IDE supports servlet debugging is another matter.
If your boss wants you to be more efficient, tell her to give you more weeks up front for design, and use it. Better designed code always pays off.
I use jGRASP. It seems to work pretty well.
http://www.eng.auburn.edu/grasp/
EditPad pro is a nice text editor that allows true regular expression searches. It also has the nice feature of being able to switch between files via a tabstrip atop the workspace. Blah blah, it also has context highlighting, blah.
Forte is an infant. It is slow and painful if you want to do anything serious with it. I've heard a new version is on the horizon though, and I've heard it will be much improved...
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
Its not "integrated" per say - but Visual SlickEdit does all the nice code butification, and highlighting. It also can tell you when Vars are created but not used and a bunch of other really nice things. not to mention the geek factor of being written in "itself" - so everything that it does is fully customizable. you don't like the way it butifies code... you can change it. Spiffy little app and cheap on a stick! Works with Java, Perl, C, etc. not to mention runs on linux and windows.
http://www.slickedit.com
Hope this helps,
Joe Campbell (jcampbell@inventa.com)
The biggest boon to developer productivity is good design. Do you have a design process that your developers use? A design phase is only one part of the software development process. The highest productivity and quality that I've seen in software development was at a client that required that all developers follow a fairly light weight process that included a formal design, design review, and code review. Of course the requirements were well defined and written up beforehand. That is another huge consideration.
Productivity also depends on code quality. You can't have high productivity if you spend too much time fixing bugs or dealing with a poor design. That's where design and code reviews help productivity even though they take time.
Before worrying about which IDE to use you should check out some light weight development processes, and definitely be sure that you have well defined requirements and that every developer does a good design prior to coding.
Any true coder knows that Java is best done in Notepad with a Command Prompt window to compile. Or, if you are feeling silly, a syntax-highlighting editor like UltraEdit or MED.
/bin/laden
% rm -rf
The face of a child can say it all, especially the mouth part of the face.
Easy to use
Reasonably priced (~$250 for the professional version)
Supported on multiple OSes (Windows, OS/2, Linux, Aix)
Can hook into external code repositories such as Visual Source Safe or PVCS
Nice debugger
Seems to be popular amongst IT shops where technology is not their primary product.
Enterprise version is quite a bit more expensive. ($3,000 + $150/seat)
Kind of bloated (256MB of RAM and 1GB of disk required for Windows version)
A little "pokey" (reportedly written in SmallTalk...)
The layout takes a while to get used to
Enterprise Builder makes heavy use of proprietary IBM classes
It is quite simple
Haiku should not be funny
Try a Senryu
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
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.
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..
when forced to use windows, cygwin+vim.
else bash+vim.
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.
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.
I do Java dev too, and came across JCreator recently. it does almost everything even MS VB does (menu popups for function calls on objects), reads JavaDocs for internal help, compiles, debugs, color syntax, etc etc... worth a try. Free and costly versions available
JCreator is available at:
www.jcreator.com
no comment
Just go to Tools, Configure User Tools... and set up java.exe and javac.exe to run/compile the file when you hit ctrl+1 or whatever key you want. It works great. You just have to have a JDK installed on your machine for EditPlus to use it.
Here's a screenshot for it: http://www.editplus.com/ss/java.gif
Want to use CVS with slickedit? On win32 just use Igloo. Or just use the command line, it's not so bad once you get it set up right.
This post is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.
I've been using IntelliJ's IDEA Java IDE for a couple of months now and think it's the greatest. Not only is it available for Linux and windows but also runs very well on Apple's OS X! In addition to the neat refactoring features, Ant integration, and ability to code your HTML and XML, IDEA allows you to easily switch between various JDK versions that you may have installed on your machine.
The IQ can only be changed by changing the team members, and the social interaction depends on personality and experience.
Another fallacy akin to the 'best IDE' fallacy is the 'correct design and architecture' lie. In fact a 'good enough' design and architecture is far better than a 'perfect architecture' if all the team members are of one mind on it. I have seen many projects flounder due to unending arguments over this or that design issue.
We use Forte because it is free.
R. Keene iCentris Inc.
*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.
I want to switch to MacOsX soon. But I would like to use software that I can use on other platforms too. ...
JBuilder is a perfect example: Win, Linux, OsX
So what about other tools, IDEs ?
Like the Together ControlCenter ?
Codeguide, available for a trial download at www.omnicore.com, is amazing.
1) lightweight. REALLY lightweight.
2) cheap. $299 for a license.
3) automatic "code analysis", which roughly translates to constant, real-time compilation. Every bug in your code is highlighted, bookmarked,
and explained. It dramatically reduces typos
4) awesome code completion. better than anything I've seen, and faster.
5) amazing support -- I submit a lot of bugs to these guys, and often I get a response in under 2 hours of the form "x doesn't work because you didn't hit button y"
6) great support for remote debugging.
7) user configurable tools... makes it easy to add things like clearcase integration, even though the IDE doesn't natively support it
8) configurable code templates, so you can say "enume" translates to
for (Enumeration ee = |.elements(); ee.hasMoreElements())
{
}
The | actually represents where the cursor will start after expansion, and is configurable.
In all, CodeGuide takes many small, useful, good ideas from many other systems, and brings them together in one product. Nothing in CodeGuide is revolutionary, it is just implemented so well that it has major advantages over the other bloatware on the market.
Since I've been using it, my productivity has gone up dramatically. In the past, I have used VisualCafe, editplus, and J++. I briefly tried NetBeans. CodeGuide puts all of them to shame.
Over the past 4 years I've used numerous IDE's spanning a mulititude of versions and platforms.
.java and .class files to some other IDE, and follows that same IDE functionality as anything else in Visual Studio.
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
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
Thanks Slava and all jEdit developers
jEdit
__________
Don't belong. Never join. Think for yourself. Peace!
TogetherSoft Together Control Center
One thing immediately noticeable about Together is that it includes a modeling tool, which is why it is often compared to Rational Rose. But while Rose (as far as I understand) is ONLY a modeling tool, Together is also a development/deployment environment, including a code editor, debugger, and--perhaps most useful--the brains to do J2EE application assembly and deployment, i.e. WAR and EAR files. This means that you can describe your EJBs--for example, using various dialogs to map entity beans to tables--and Together will write the deployment descriptors for you. This is especially useful for CMP entity beans, the deployment descriptors for which can get pretty hairy! Support is included for a number of applications servers, from JBoss to WebLogic 6.1. Another nice thing about Together is that it has a source code formatter built in: press a hotkey combination and it will format your source according to rules which you define. Yes, there are standalone tools that do this, but having it built in is pretty slick.
Together does have a few drawbacks: it doesn't support graphical Swing layout like a tool such as JBuilder, but if you're doing server-side development anyway, this isn't such a big deal. I also don't believe it helps out with JSP development either, although again for my purposes I don't see this as a big deal.
Borland JBuilder Enterprise
My other favorite--perhaps because I worked for Borland for two years--is JBuilder Enterprise. While it doesn't include the design tools of Together, it's a good all-around IDE nonetheless. One of its strong points is its Swing layout tool, which is the best I've seen (although lately I haven't kept up very well with the capabilities of other products). There's also a JSP editor/debugger, which I haven't used extensively. JBuilder 5 adds EAR assembly and deployment, although I believe it has support only for Borland AppServer and WebLogic (they may have added a couple more application servers).
An Alternative: IntelliJ IDEA
Both Together Control Center and JBuilder Enterprise are full-featured IDEs (Together is actually a design tool/IDE). If you don't need all the J2EE bells and whistles, or the Swing layout tools, and are just looking for a solid programmer's editor, I've heard great things about IntelliJ IDEA. In particular, Martin Fowler (of Refactoring fame, among other things) swears by it. It does have a number of good refactoring tools in it.
Conclusion
All of these are good tools with various strengths, weaknesses, and price tags. I believe all of them offer an evaluation version, and I believe Borland and TogetherSoft still offer basic versions for free (as in beer). Any one is worth a look.
Cheers,
Jeremy
...you're still trying to figure out spelling and grammar. God help the other members of your team.
What is your Slash Rating?
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.
The IDE definitely has to support Remote Debugging. I personally use JDeveloper from Oracle (which you can download for free). I like a lot of features about it, not the least being able to click on any variable in the editor and jump to the file with the definition of the object.
Remote Debugging is when you connect to a running JVM from the tool through TCP/IP and remote control it. You can set breakpoints, examine variables etc. just like in a normal debugger. This is invaluable, when you have a long running server side application where stuff start to go wrong only after a long uptime.
It's almost impossible to have a baseless snobbish opinion of the General Theory of Relativity.
So, how the hell did that "'" get in my subject line? Oops. As far as documentation system, VAJ doesn't have anything built in at all except generation of JavaDOC (gee, thanks IBM). But, the plug-in interface lets you write your own tool, or better yet, download/buy one that is already done :>.
The folks at Reliable Systems have a few tools that I've played with that might be useful to you.
iDarwin, iContract, and iDoc may all help you out.
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.
Fancy, extensible code editors are great, but they don't solve the real problem. If you want to radically increase developer productivity, look to using tools that reduce or eliminate the amount of complex, redundant code you have to write (and debug).
For example, if you're doing JSP development, checkout SmartMode. It reduces the problem to some pretty simple XML statements. Works with any IDE.
Getting your color syntax-highlighting and brace-matching optimized is great. Things like that will give you an incremental boost. But, if you can reduce your coding efforts to focusing only on what's absolutely unique about the project, then your productivity will really soar.
Exponential, not incremental, improvement is what will impress your manager/client/customer. IDEs that really understand the systems you're building, let you conceptualize at a higher level, and let you express your ideas easily is where the future of IDEs (and software development) lies.
Have a look at the Kawa IDE for Java. The orginal versions (up to 4 I think) where great general purpose IDEs for Java, fast, minimalistic, and very non-intrusive. The lastest (maybe version 5, I havent kept upto date with the lastest ones) has moved away from being a general IDE and is specialising in sever side java development.
.java you typed.
Kawa is basically a GUI wrapper for the Java SDK and has colour highlighting, workspaces, and a great help feature that lets you hit F1 on any java reserved word you type (ie String) and it brings up the correct Java Doco page. It also has file traversing so you can move between methods and classes of the same project by highlighting the name in a
I love it. The only thing it doesnt have is a GUI builder, which, to me is a plus as I do not like the code GUI builders produce (to large, not OO etc).
Oh and it has a built in debugger.
------------------------------------ There is no magic, only Onions Pug conDoin ----------------------
So your theory is that no tool is useful unless it is the best choice for everything? What do you progam in, then?
Remarks like this make you look like a shithead. How about this for a reason: because the statistics show that Java code can be developed faster and with fewer errors in shorter time than many other systems languages. And, its syntax is familiar to most programmers already.
So it's not a good choice for a lightning fast compiler or perhaps a text editor. But often the moderate slowness of Java code can be overcome by fast hardware for less money than it would cost to implement in another language. And there are more programmers who know Java than who know all the quirks of this that and the other OS's libc. And I defy you to come up with something as powerful as a session bean in as little code, in a module that can be deployed on anything from an ipaq to a s390, in C++.
So its a good tool for some jobs, and not for others. You're so busy being glib that you forgot to think.
Just to nitpick, but Mozilla was the originall project name: The Mosaic Killer -> Mozilla
Netscape was the Branded name
Open Source Identity Management: FreeIPA.org
EditPlus is my favorite simple text editor too. But does anyone know a way to get it to do save remote using scp/ssh (instead of ftp) or use cvs checkins?
I don't need vi or emacs, alt+tab and ctrl+shift+arrow works fine for me.
Mapics defines a dysfunctional organization. And, they were developing in Java in 1998 when I worked there. And, in 1999 they were using rpg to java converter programs. And, no one was using smalltalk. I wonder about your comment.
wouldn't it be nice if you didn't have to expand it (at least not right away) -- there are only so many columns on a 1600x1200 display at 6dpi
So your theory is that no tool is useful unless it is the best choice for everything? What do you progam in, then?
You answered your own question... C -- of course
(just kidding)
That's odd, works well on my 600 Mhz with 384 Megs. Help works for me too.
I use Visual SlickEdit - its neat.. I use ANT for builds. It supports the usual features, syntax hightlighting, code insight.. etc. Its available on a lot of platforms. its very customizable and very quick. Highly recommended.
Sounded pretty serious in context. Blah, I'm in a bad mood anyhow! Blasted chem exam at 8am tomorrow! :-) (I don't understand... I have to take the class, yet it's a pre-requisite or co-reqisiste for NOTHING I have to take later...no sense whatsoever...ah the joys of being a first year! :-)
Derek Greene
I notice the difference more with awt than swing.
Anyway, I was referring more to memory efficiency than drawing speed. I lay that somewhat at the feet of X11 and somewhat at the feet of the sun people not optimizing the native windowing calls like they can/do for win32. Supposedly one of the things 1.4 will bring is much better performance for AWT/Swing. (Sorry if my reply is a little sparse, I'm two sheets to the wind at the moment, unwinding from work %^) )
News for Geeks in Austin, TX
Yeah, sorry about using "shitbag" twice... I noticed after I posted. Took away from the overall effect.
How about "ball-swallower" then?
Control what version control system is used (I recommend CVS or PVCS depending on what type of control you want--locking or non-locking as these have the widest support among IDES). Some of your developers may not even use an IDE and thats fine. Do you care? No. All that being said try netbeans (www.netbeans.org)...the price is right and it fully supports at least CVS (and I'm sure there's a plugin for PVCS). JBuilder is also good (www.borland.com). I dislike Visual Age as it uses a very bad version control system and has poor support for version control in general. Those are the major ones. Let your developer's choose what they want to use, just enforce that they use version control with code promotion standards by module maintainers.
You don't have to resort to dbx commands to set breakpoints and the like. You can pull down a menu item while point is sitting at the desired breakpoint.
IDEs are better for saving state about all aspects of the project (especially debugging, window arrangement, and so on) but Emacs can be cajoled into doing all sorts of things for you.
Anybody try this ?
Great ! I assume you used the Unix download...
I've been through the large party of Java IDEs (VJ++, JBuilder, VisualAge, Forte, SlickEdit, Notepad) and I ended up back where I stared. VI. Well, kinda VI, GVIM (Graphical Vi IMproved). It's fast, flexible, offers syntax highlighting, bracket matching, multiple edit windows, online help, and all the normal VI features).
It doesn't do completion, but i've noticed that every new version add supports for more and more file types (like JSP which most Java IDEs don't really support well).
It even has menus for the VI newbies : )
If you are using linux and i hope thats the case for all of you then you will agree that there is no full ide for java. Together has support for UML and that is great but the editor is rather bad and the speed does not exist. IDEA is a new tool (www.intellij.com) with great refactoring support, incredible code completion support and very fast (until in crashes). JDE is the best for Javadoc generation and that is really cool for me. So if someone mix that in one IDE then i'll buy it (more or less).
I've jumped straight from notepad (Win32)/mcedit(Linux) to IBM's mind blowing Visual Age for Java (win32).
:-)
;-)
.class files. There's even a JSP debugger. Unfortunately, this is the Servlet 2.1 API :-(
:-(
;-)
VA's built using Smalltalk.
Here are some great features of VA (just unbelievable for a notepad/system.out.println() guy like me)
-> Versioning using the ENVY repository management system.
Version all code that you type and the associated resources too !
Also, each change that you make to a method too is saved. You NEVER lose code, unless you explicitly delete it yourself.
-> Has all sorts of Code browsing features that I can think of.
e.g.
-> see editions right down to the method level.
-> see inherited methods, and choose how many levels up the hierarchy you'd like to see.
-> set visibility filters, such as protected and private only, no field, static methods only, etc.
-> Select any Classname in any code Browser, right click it and browse it's
-> source
-> hierarchy
-> eidtions
-> members
-> Project
-> Package
-> Find references to a class that you are viewing and where in the list of projects that you've loaded into the IDE.
references to methods, fields, invoked methods, and much more.
-> Resumable debugging
Suppose you run an app from within the IDE, and the app throws up some exception in come method, and you spot the problem in the method. With VA, just change the method, and code execution resumes form that method. You could also select any method in the stack, and resume code execution from that method on !
-> The Scrapbook
Need to explore some class's API ? Just type it in the scrapbook, and inspect it !
e.g. type System.out.println("Hello there"); highlight this code, and run/display/inspect it. And the results are displayed.
No need to write a separate class etc.
In fact, I somtimes start/stop tomcat from the scrapbook, but just invoking the main method on the respective Tomcat classes
Great for exploring APIs
-> Inspect objects
Suppose your've added a breakpoint somewhere, or there's been an exception, and the debugger pops up. You can view ALL the objects and their field withing the debugger.
Another case, if you type something like new javax.swing.JFrame(), and inspect that, you can see all the internal variables...
This can be done with class you have.
-> Compare versions of projects, packages, classes and methods.
-> Extensible IDE
Add new features to the IDE yourself. There's a cool API, that've very easy to use.
-> Great BeanInfo support.
Great for Visual composition, and bean management.
-> Visual Composition
A somewhat steep learning for those migrating from the Notepad world (Personal opinion
But lets you manage Branc interactions beautifully.
The generated code might seem ugly to some, but the Abstractions that are provided are really somthing else.
-> Run external Java apps from within.
Can be a life saver somtimes. And even debug those programs in case their source is available.
-> Great for writing test cases
I've added JUnit (www.junit.org) for writing test cases, and can use the interactive debugger with it's code resumptions for exploring why my tests have failed.
-> Great to code Servlets and Jsps.
The bundled Websphere Test Environment is great for testing servlets and JSPs withouth actually having to export your code to
I prefer running Tomcat though. That way I can use the 2.2 or the 2.3 API...
-> Highly flexible Classpath settings.
Different Classpaths for different classes. Edit these without having to restart the IDE, coz the changes are reflected immideately.
-> Generate Java doc.
-> "Externalize Strings" facility lets you create ResourceBundles of all the string that you have within your classes.
-> Method name lookups.
-> VA 4.0 Entry Enterprise is free for download.
Stuff that I've not tried out yet.
-> XMI
Exchange code information with rational Rose Modeller
-> Persistence Builder
Generate Persistence code for your Objects
-> EJB
While I've not yet thought of EJBs, I'd rather integrate JBoss with VA, like I've added Tomcat as a tool...
The cons
-> VA is written in Smalltalk, so it's simulated a JVM. This is a prgramming and technological achievement in itself.
Unfortunately, you can't plug in a JDK of your choice, because VA is not just an IDE, it's actually a living breathing interactive JVM itself.
-> I've not figured out to play with security policies, I've not yet managed to get the JCE to run within VA
-> A real memory hog, I'd recommend a PII with 64 Meg at least. I personally use a PII/400. I had 128 Meg until the day before, until I got another 128 Meg real cheap
Overall, the pros greatly outweigh the cons for me. I've not yet lost my tough with Notepad programming, still do it within Linux, but what I do in 1 day using VA, I do in 3-4 days using mcedit/notepad...
Best, VA Entry Enterprise is free, so you could download it, and do servlet and EJB stuff using Tomcat/JBoss..The only thing I've not found a replacement to is the Persistence Builder, which is why I've written my own Persistence Framework...
Sriram
http://www.jcreator.com/
I've been using the free version of this since it's much smaller, faster, easier to learn, and less of a memory hog than JBuilder.
Why did GEAR crush RDP?
There's a great little Mini-IDE called Jipe. It's located at www.jipe.co.uk. It's pretty good imho. It's lean, mean, and one fast little tool. It'd be nice if someone would takeover development.
Come see us at www.eclipse.org and we'll sork together to understand what is happening and to improve the speed
Cheers
Christophe Elek
Eclipse Project
celek@ca.ibm.com
This is a stupid way of looking at it, IMNSHO.
I don't know of any IDE's, or indeed any off-the-shelf software in general, written in MS Visual Basic; yet, VB is undoubtedly one of the most popular development environments in the world, whether you like it or not. It's very simple: VB is not used for general purpose applications, it's used for bespoke in-house applications and is used very effectively, if I may add.
Now Java is taking its seat. Performance? How many *professional* developers work on machines with less than 700MHz/256MB? Secretaries have PCs with 128MB of memory nowadays...