By corporate mandate I’ve been using Oracle JDeveloper 10.1.3.1.0.3984, that version number is ridiculous and ought to tell us something, to develop Java EE web applications on and off for about 6 months now and I’ve never been so frustrated with a development environment in my life. I hear it from seasoned Oracle developers that the wizards are great, you can create web service in a few clicks, you can create an EJB effortlessly, and the application has come such a long way, my God how bad was it before. Honestly, I don’t give a flying fuck what you can do with the wizards if the core application is unusable. Coming from an Eclipse/RAD background my gripes are probably slanted, I’m used to being able to do simple things easily and quickly without the IDE flaking out on me completely.

Gripe #1 – The Application Project Structure is Horrendous
JDeveloper requires that you put your J2EE modules into an application project, this means that instead of just putting just creating the different modules of your application as individual projects, they must all live inside of an application. At an enterprise level this is extremely cumbersome, if I share an EJB and a 15 other Java modules among for different web applications I have to store sets of modules in different applications and then jump through hoops to get them to work with each other in order to build and run the application locally. It also causes issues within CVS or Subversion as far as how the modules are organized and you’re ability to figure out which application a module is inside. Eclipse on the other hand allows you to add projects/modules and multiple applications to your workspace based on a modular component structure and then just map these projects together based on classpath and runtime dependencies, a much more intuitive and flexible way to do things.

Gripe #2 – There’s no quick easy way to open an artifact
What may seem like a minor thing to some developers, that don’t work in huge enterprise web applications, I need an easy way to get to jsp’s, classes, css, js , image files, etc. JDeveloper only provides you a shortcut to get classes and recently opened files by name and even this is flawed. If you use Ctrl – you can do a class look up, but you better remember the beginning of the name of the class and not want to use any regular expressions. Ctrl + let’s you open recently opened artifacts quickly, but good luck finding something that you haven’t opened yet if it’s not a Class file. Eclipse on the other hand has Ctrl+Shift+R and Ctrl+Shift+T, these are the best I’ve seen, Ctrl+Shift+R let’s you look up any resource in your workspace – you can even use wildcards and regular expressions and choose the resource to open. Ctrl+Shift+T allows you to limit your look up to classes, which you can do with Ctrl+Shift+R, but it has one additional gem, you can look up classes inside of jars. Trust me on this if you’re an Eclipse user and you start using these shortcuts you’ll never work the same way again, if you develop thing with names that make sense you’ll be able to find the code you’re looking for without even expanding the navigator or tracing through the code. Don’t tell me either that I could just do a search, this is time intensive in any IDE, I need to open a file I know the name I want the file now.

Gripe #3 – Application and System Navigator cumbersome
The navigator’s are used to dig through the application hierarchy in search of that piece of code, or file, or to create/rename/delete files, they’re equivalent to the Navigator and Package Explorer in Eclipse. However a few things are missing from JDeveloper. I can’t collapse the entire hierarchy, I have to hit each node I’ve expanded to collapse everything down, I use this often if I’ve dug into the wrong structure looking for something and just dug too far and want to start back at the top. The Java packages and the web content get the same folder treatment, if I select a number to show at a time it’s going to show that number of folders before showing hierarchy, in Eclipse I always get a package explorer that shows complete disparate packages and a folder view that let’s me dig in by directory. It just looks weird and get’s visually confusing when looking at directories expressed this way, packages just make sense to be represented this way because this is how you use them when importing into a class. I’m sure it’s just a personal gripe, but that’s what this is, a gripe.

Gripe #4 – Window pane management and docking is painful at best
Okay, this one just frustrated the hell out of me. Eclipse puts everything in perspectives, inside the perspectives the panes are called views, the views can be moved around, docked, closed, opened to your liking in a perspective and then you can save that perspective with a name. Say you move something around in a perspective and you’ve totally screwed up the way your environment is configured, you can Reset the perspective and it will revert to the saved state. Genius!!!! I spent an hour in JDeveloper just the other day trying to get my console window to sit at the bottom of the main window under the Navigator and the main code window, dragging and dropping and docking is less than functional in this application, I finally gave up and minimized the Console to the bottom so that I could see my code and I just click on it when I want to see it. There is no way to reset to the default view, not an intuitive one that’s for sure and it’s ruined my environment which is where a coder lives.

Gripe #5 – Version Control support is completely lacking
Last or not least CVS and SVN support are such crap in JDeveloper that my entire team has agreed not to use it and instead we use Eclipse to synchronize with Version control. So I sneak into Eclipse and use it for editing all my files that aren’t Java classes. Which could be another gripe, why do I have to have two IDE’s just to do the work of one.

I’m sure I’ll get an earful from JDeveloper loyalists, everyone’s got to believe in something I guess, but is it a requirement at Oracle that their software be incredibly difficult to use. I think Oracle’s a great company and their definitely undercutting everybody else on ERP prices, but wouldn’t you have a lot more successful implementations if your software was just a little bit more usable? Of course, if it were too usable who would you be able to sell all those professional services to?