GreatWebGuy Self-proclaimed greatness is a hard thing to prove.

16Aug/0720

The functional mess that is Oracle JDeveloper

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?

Comments (20) Trackbacks (0)
  1. Welcome to the world of JDeveloper.
    Let me see if I can help a little.
    1. The same project can be added to multiple applications, and you can have one project depend on another one (project properties->dependencies).

    2. There is a “goto file” extension for JDeveloper that you can download and install. In 11 it is part of the tool and also support camel casing.
    More info here:
    http://blogs.oracle.com/shay/2007/05/31#a382

    3. Try to switch to View->System navigator this can give you a package/directory view of your source and you can also play with the directory levels that are being displayed.

    4. A simple way to go back to the way it all started is described here:
    http://blogs.oracle.com/shay/2006/11/10#a266

    5. We would love to hear more specifics about what exactly are you finding lacking in the CVS/SVN support so we can improve these.

    For comments and further questions try the JDeveloper discussion forum on OTN.
    http://forums.oracle.com/forums/forum.jspa?forumID=83

    Shay

  2. Shay,

    It’s great to hear from you. Thanks for addressing some of my concerns, I should have griped 6 months ago when I started this mess.

    What you describe in number 1 is what we did, to me it just seems a pain to manage especially with a large number of applications and modules, we’ve got drives and projects mapped to the wazzoo and that makes it hard to configure a new environment. It also seems to make the application less portable, which violates what Java is all about.

    I’ll be downloading that “goto file” plug-in straight away, I know it will improve my experience 10-fold. I’ll have to check on the specifics of the version control issues, I believe it had a lot to do with the visual cues when synchronizing and determining what was incoming and outgoing and resolving conflicts that was just confusing, it has been a while since any of us have looked.

    As much as I can gripe about Oracle’s software I do see a visible effort to fix it and make it better, which a commend. Thanks again.

  3. The GOTO FILE plugin, while a step in the right direction, doesn’t come near the power and usefulness of the eclipse ctrl+shift+r. For example, I can’t just go *Panel* to see what Panels have been written. Plus it doesn’t span projects.

    The effort to accomodate users is certainly appreciated.

  4. My hopes and dreams crushed, I really had high hopes for this plugin, as the majority of a developers interaction with the IDE is spent finding and editing files, it’s been disappointment abound with this IDE.

    It’s almost like the Firefox and IE7 battle, damn if Microsoft doesn’t try, but they’ll never have the usability extended by Firefox’s add-on framework and even if/when they do catch up the next version will blow them out of the water and put them 3 years behind again.

    I hate to say it but Oracle probably should have taken other Application Server providers lead, like IBM and BEA, and based their IDE tooling on Eclipse, something established and something that works. There’s no shame in not reinventing the wheel and focusing on your core product.

  5. I feel your pain.
    I’ve got to use the same POS, by corporate mandate. And listen to some folks on how great their IDE is, and how they have a forum to handle problems.
    But they apparently dont seem to eat their own dogfood. There are places in the same company that use RAD over JDeveloper. That speaks a lot for their IDE.

  6. Do you have to use BC4J? Count your lucky stars if you don’t. Man, it’s a big mess. Even the core developers of BC4J agreed that it was a completely unusable mess at one point in time. I don’t know how many projects, companies and careers it killed. Now comes Fusion, the next Oracle tech stack. Guess what is used in Fusion, not TopLink, but ADF, the new incarnation of BC4J.

  7. No BC4J on my end, we are using ADF, but luckily for me just OC4J and I think that’s a piece of junk too. Somebody please tell me why, on my Windows development machine, I have to run my server on port 1024 and have no reasonable option of changing it? I don’t want to hear the excuse, on linux you have to be at 1024 unless it’s the root user, I want to test on port 80 and 443 so I can switch between ssl/non ssl and know confidently my site is working as it should. Another gripe.

    We’ve bought into the Fusion stack, Oracle’s hodge podge of purchased companies that they haven’t completely figured out how all their products are going to talk to each other yet, a pipe dream. I’m curious if any companies have successfully implemented this stack. I’m still pushing to keep WebSphere around and ditch OAS, I could give a crap about the rest of the stack. The first thing the Oracle consultants said when we showed them our current performance statistics was, oh we can’t do that :)

  8. Regarding part of gripe #4, double click on the title bar of any window – such as a code editor – to maximize it within the IDE. Double-click again to return it to its previous size. A handy way to immediately hide all other windows and focus on the task at hand.

    • I must be missing something bcause double-clicking does nothing for me. I inherited this environment so, is there a configuration/setting that would allow me to re-establish this ‘standard’ windows behaviour that I was certainly expecting and sorely miss :(

  9. The last good Oracle development tool was SQL Forms 3. I did a stint on Oracle Developer/2000 and that was absolutely awful. It amazes me how they managed to sell that to developers…

    That was ten years ago and I see things haven’t progressed much.

  10. @richard, you know when i did that my palettes suddenly gone and i could not double click again to restore my IDE setup i cannot show panes even if i select View -> …
    wtf?

    Oracle, drop Jdev and use eclipse already!

  11. If Jdeveloper is a tangible object I will fucken blend it in no time! It’s a fucken piece of junk! Do you feel my anger now?!

  12. Almost a year later from this writing..

    JDeveloper still buggy as ever. When working with BPEL project, I have to close and reopen the IDE a lot, because the type explorer won’t refresh after I change the payload type. I also got bitten by a big “unresponsive code editor” bug right in my lip..

    Some weeks ago, the management had the ‘coolest’ idea to code everything in BPEL. Yes, everything.. making BPEL the implementation of even the finest grained logic. And now, after they (and I) realized that it was the craziest thing and that full graphical programming is still as utopian as democracy in the ice age and that JDeveloper is full of bugs that might bite my nipples, we are ready to refactor everything and use.. (drumroll).. ADF BC (neo BC4J).. (crying out loud)

  13. Found this older article while looking for info about JDeveloper. From what I’ve been able to gather, JDeveloper is just a piece of crap. Unless you’re a Oracle DBA doing development, you’re better off either with Eclipse or NetBeans. The idea that they seem to be planning to dump/kill NetBeans for this piece of crap is just unbelievable. NetBeans is pretty simply and has an incredible heritage, including that from Sun Studio, et al., for many different programming languages/environments.
    Oracle stuff; what a mess!

  14. I could not agree more. We’re using JDeveloper for a project and it’s been nothing but frustrations. We’re using 11g. It’s extremely buggy. Once you get an exception it starts behaving strangely. SVN support is terrible and cumbersome (compared to eclipse or tortoise). Application navigator is, mildly put, ridiculous – there is just no normal mapping between directories and what you see in the pane.

    And then there is their entire ADF framework.. I don’t want to even get started with that…

    I think Oracle should stick to database world.

    • @mujo45o If nothing else, it brightens my day to come to work and use IBM Rational tools, great to see Oracle still moving forward by acquisition and not by improving their products. Whoever picked ADF in your environment should be fired :) Sorry for your pain, may you one day get a job where you never have to deal with JDeveloper again.

  15. Dear All,

    I switched from netbeans 6.8 to jdeveloper 11g a few months a go because of some project and at fist i could not even make a deployment… :) :) All of these deployment plans… depoly as webapp depoly as war deploy as webservice …. hahaha mercy! I finnaly got used to it but i feel everyone pain !!

  16. Been “trying” to use JDeveloper for 1yr now.. seen tons of demos and classroom sales.. Its CRAP. Its not as buggy as it use to be but the whole idea that coding is removed and ‘configurations’ begins is BS. Yes you can wire up a whole lotta crap and not write code, however you now get to use expression builder… Its really stupid, less code unless you work from the source pages.. even then the structure and controls and bindings is SO HARD to mentally grasp at a high level its ridiculous! Lets speed up development, take out the coding, but now try to rebuild or change one thing.. BANG! your F@!$%! start over again.
    JUNK JUNK JUNK… stay away DONT LISTEN TO THE SALE PEOPLE. Nice white collar folks.. then you hit their support team after the sale, foreigners and MOST dont even have the skills in Jdeveloper 11g and Fusion!!!!! You wouldnt believe how long it takes to get answers on the “bleeding edge” technology. STICK WITH .NET, PHP, ColdFusion, Java EE, DONT WASTE YOUR TIME IN ADF… they dont have it ready yet, and most ‘experts’ out there don’t exist yet “period”

  17. Hai everyones, I’ve been using JDeveloper along with it’s ADF Faces and ADFBC for 2,5 yrs. In my prespective Jdev is not for developer who comes from the world of – ‘all codes written by yourself’… Honestly before I develop our core banking system, I used to do it all with eclipse, yeaaahh the best java IDE everrrr… and when I had to turn for JDeveloper 10 version what everr… the world turned so slowwww…. because JDeveloper is also becoming slower and slower as the project goes larger…. so I just want ot say JDev is not for US… but for the ‘one-click-do-it-all’ or simple lazy or probabaly st***p ones, upsss i mean The Rest of Us…


Leave a comment

(required)

No trackbacks yet.