Visual Age for Java (VAJ) is IBM's big honkin IDE for developing Java applications. I've only used it as an administrator (deploying java apps to WebSphere) so my opinion is from that perspective. The developers I work with complain mostly about performance (click a project, wait a few minutes for it show, click a package, wait a few minutes for it to show - this is on PIII-800's with 768M RAM and NT4sp6a), the non-standard interface (their words), and the (shudder) repository.

The VAJ repository sucks in a way that few pieces of technology I've ever worked with have sucked. When a developer releases a class or EJB, they often have to go through several attempts to actually get the repository to recognize that it's released. There are two ways to access the repository: VAJ, and command line pulls of source code. You cannot look at what's in the repository without VAJ, so you have to spend a fair amount of time in VAJ when writing shell scripts to grab things out of it for deployment to WebSphere (which it allegedly integrates with seamlessly). If your local workspace meta information doesn't perfectly match the repository (e.g. your machine crashed, you lost your network connection and closed VAJ, etc) then it has to rebuild your local workspace which can take upwards of an hour.