Which Oracle Development Tool?
The Problem
In the "old" days of client/server computing it was easy for us Oracle developers: it was all Oracle forms. If you were so inclined you could go the extra step and generate your forms from Designer. Then you could feel smug about how you quickly you could generate ugly grey screens.
Then along came the internet and complicated it all. Suddenly our users asked us for applications that looked like web pages. Oracle introduced a whole range of development tools and we didn't know which to use.
Well, now we do.
The Solution
For us, there are two main criteria: firstly, the application has to meet the needs of the business (sorry to state the obvious, but I'll explain), and secondly, it has to be productive. There was a third criteria, that it had to leverage our existing Oracle skills, but I reckon you guessed that from the title.
I'll deal with the productivity first. We were used to Designer and cranking out screens at a fantastic rate. They were ugly as sin, but they did the job and we built them fast. We therefore had a small team with a high throughput. Our new tool had to allow us to continue to meet our customer's demands. Application Express (APEX) turned out to be the most productive tool we found.
Meeting the needs of the business was a trickier criteria to translate into a rational for using one tool rather than another. After all, most of the tools could produce almost anything if you kicked them hard enough. We thought initially that the complexity of the application would be the key criteria, but it turns out that APEX is well suited for complex applications.
The key differentiator turned out to be how "data-centric" the application was.
What I mean by this is that if the application is about data entry and requires tabular screens, master-detail screens and lots of forms or reports, then we found Application Express to be the best tool for the job.
However, if the application is less structured, or the screens are not closely aligned with the database table structures, then we have found that writing jsp pages in JDeveloper to be a better option.
We dabbled for a long time with Orcle's ADF, but between the steep learning curve and the fact that it favours screen layouts very similar to that achieved more easily by Application Express, we didn't see much point. We now hand-code our jsp applications. The productivity is lower in terms of screens generated by day, so we only use this approach where the need for absolute control of the html is necessary.
The types of application we use JDeveloper includes our intranet, where content is pulled from our document management system and displayed on demand. There are only a few pages of code to write, but each page is used so much that we can easily justify spending longer on getting it just right. When a screen is used by hundreds of people several times each day there is no excuse for clunkiness - the page has to work quickly and be easy on the eye. Jsp pages can do both.

