views:

147

answers:

1

Firstly, in my opinion, this question is relative to programming, as much as the answers (and the question itself) is subjective, I would like to see some of these subjective opinions, and other ideas that come from it.

My company is deep in bed with oracle. They are making a strong move towards java, and well forcing JDeveloper down on us (me) as the 'best tool' for the job. Now, dont get me wrong, JDeveloper looks amazing, it has all these nice trinkets that would make anyone smile when unwrapping. But...

I tend to always end up having to investigate some tiny problem that the IDE suffers to do right. Essentially bugs. Like at times when for no reason EJB's do not deploy anymore. Or the ADF front end stop calling data controls for action buttons. Then I have the times that It crashes out completely when editing persistance information. In the end, I spend more time figuring out what is wrong with it, to no avail. And well, my company is not about the take out money to get support for the development tool. I end up sitting with problems that take hours up to days to resolve, which should be taking 10 minutes.

I have seen and experienced similar productivity killing problems in IBM's websphere products too. And not It's not just me, I have seen teams unable to work for days because of issues.

My solution to this has always been to use the eclipse j2ee set. It allows me to be more in control of everything that's being used. And so, even if eclipse gives me problems, I can resolve these issues. And well, personally, I would prefer my company accepting that as a preferred tool, as solving problems would be easier, and there would be more 'professionals' arround, as our problems would more likely be j2ee related, and server related rather than IDE related (We get tons of server side support). I feel the 'abstraction' that larger IDE's provide can cause lots of headache's and tend to be a project killer.

Why do I struggle so much with JDeveloper. Am I alone? Is it wrong of me to take a stand and recommend going against JDeveloper as the core development tool in our company? Because well, this is the 'campaign' I would like to walk into now, up to the point of demonstrating the flaws, as the video's only show the perfect moments.

+2  A: 

You are not alone! I could rail against JDeveloper but i'll restrain myself.

Unfortunately, JDeveloper is the only IDE that supports all the Oracle-centric technology. So, while i'm sorry for your pain, and, trust me when i say, i understand more than you know, but, in an Oracle house, no other IDE will do. It's a real shame that you don't have support though. You'll likely need to file lots of bugs.

It's really unfortunate that Oracle seems insistent on continuing with JDeveloper even now that they own NetBeans. JDeveloper is far behind Eclipse and NetBeans. They'd have far greater developer acceptance of their technology if they actively supported Eclipse and/or NetBeans, at the very least, in parallel with JDeveloper. There's actually quite a nice, extensive set of technology in ADF that is being hidden behind and hampered by such a horrendous development tool.

And as a means to try and help you solve all the problems you'll encounter with JDeveloper, try this. Use two local mercurial or git repositories. One for your JDev system folder (init in the parent of system/) and a repo for your application/project. Before finishing (or starting) any wizard, add and commit (hg com -Am 'savepoint' or git commit -am 'savepoint') both repos. This'll give you a way to rollback and also diffs of how JDeveloper broke a working project which might give you clues about how to fix things.

Also, you might want to keep a log for your managers to show how much time you spend managing JDeveloper instead of progressing on your projects.

Good luck.

Note: Version control on the jdev system folder is a little questionable for rollbacks since it seems jdev buffers some writes and keeps some files open. Which means you might take a snapshot of an inconsistent or incomplete state. It's better to use that repo as an ongoing view of what is changing.

EDIT: Also see Oracle Enterprise Pack for Eclipse

nicerobot
I think the savpoint/log idea is probably a great starting point. Maybe that will help people see that either support will be required or a different approach. I really love ADF so much, I would love to be able to make better use of it. But I'm so afraid of it too :-PAnother question, would some form of advanced training help with this? I mean, I have read tons and tons of the documentation, but maybe some insight from someone that grew with jdeveloper would help?
Training should always be an option if you can find courses that'll teach you and not just cover what you already know, especially if they're taught by instructors with practical experience. But you should be sure to go into training with a fairly clear and complete understanding of the application you need to build. That way, you'll be able to get the most from the training by asking questions geared toward your specific problems.
nicerobot