Monday, April 02, 2007

We shall not use APEX!?

During the weekend John Scott and I were discussing an article on Chris Muir's blog. John commented on the article and posted his opinion on his blog (Carl Backstrom and Scott Spendolini posted also a very nice comment). I also added a comment to Chris' post and promised to go into more detail on my blog soon.

Chris' article "A career path for Oracle developers - consider JDeveloper!" is about the choice for JDeveloper as *the* tool for next generation Oracle development.

Do I share Chris' opinion? No. I believe in all Oracle tools but IF I had to go to a deserted island with only one Oracle tool, I would choose the Oracle Database (as I get APEX free of charge with it ;-))!

If one tool was best for everything, Oracle wouldn't have more tools... I strongly believe that APEX can do most of the development and is a true solution for most of the business problems of today. I also believe JDeveloper is a great tool and ADF has its place in this world too.
In my APEX projects I use also other tools like SQL Developer and JDeveloper! I really like the ERD, UML and PL/SQL-tools in JDeveloper.
Some years ago I made a production application in BC4J with JDeveloper. I liked this "new technology", but when I look back, BC4J is already "old" and today you should probably go for ADF or JSF (if you would like to stay in the JAVA arena). Just to say that the JAVA arena is changing quickly, as for APEX it's proven technology (SQL, PL/SQL, JavaScript, CSS, ...)

The comparison.

Last week I read this article (in Dutch). That company did an internal competition: 4 teams, each team uses his favourite technology. They got one day and a half to develop a business case with as much functionalities as possible (in the time frame of that 1,5 day).

The goal of the game

  • find the most suited tool to do RAD (Rapid Application Development).
The technology choices of the teams
  • Oracle Designer, Oracle JDeveloper (with ADF), Adobe Flex Builder and APEX.
Most important area's of the game
  • user friendliness and security.
How could a team score points
  • 80 business rules to implement from webservices, lovs, printing of pdf documents, authentication, calculation of positions etc.
The Game
  • Oracle Designer / Developer Suite
    They got the back-end nicely up and running, but at the front-end there was still some work to do
  • APEX
    The jury was impressed by their application, as they asked how much time they still need to make it a full application ;-) They got almost all back-end done and I can imagine that the front-end was nice and slick.
  • JDeveloper and ADF
    They needed a lot of time to make their data controls (webservices, java-beans, pl/sql functions etc.). They would use these data controls as components in their application (by drag-drop). They also needed a lot of time to make all pages individual, as also multi-record and master-detail screens. Their architecture was nice, but 1,5 day was a bit too short for these guys, I think ;-)
  • Flexbuilder
    This is a new tool of Adobe (I also did some testing with it, as you find in some other posts on this blog). It's a nice tool, but these guys made such a complex architecture that they couldn't get the prototype finished. So they retreated out of competition, but showed what it could do.
The Results
  • The jury was unanimous on this: APEX won the match, but the jury added that changing the templates to a custom lay-out would take some time, which would compensate some of the time they were ahead of the others.

So, shall we *not* use APEX? Hell no!!

The people reading this blog more often know I'm a big fan of Oracle and APEX.
That won't change that fast ;-)


Anonymous said...

I don't read Dutch unfortunately, but I wanted to add a small clarifying comment that BC4J is known these days as ADF Business Components, and that when developers use the recommend technology stack for Forms/4GL Developers, they are using ADF and JSF (with these business components formerly known as BC4J) as part of that solution. In other words, nothing is "already 'old'" about it. :-)

Alex said...

Not too surprising the result of the contest ;-)

And the "weakness" of customizing the templates is not as bad as it seems from my point of view: functionality and GUI design can be split easily ;-)

It would be interesting to have PHP or similiar in another contest.....


Dimitri Gielis said...

Hi Steve,

Thanks for your post. I don't want to argue with you, you're the expert! ;-)

I didn't realise ADF is the same as (or follow-up of) BC4J. I had the impression that the demos I saw from ADF were "different" and a lot more than I had a few years ago with BC4J. I suppose it's the evolution...

Thanks again, much appreciated,

Anonymous said...

I don't know much about other tools and i am from oracle database express edtion and without that much programming xps, but i can use apex and make applications, simple one, currently, It is good. I will keep going.


Anonymous said...

In Flex Builder's defense, although Flex is gaining acceptance and maturing, best practices and design methodology are things that developers are still exploring IMO. This is quickly changing, but also due to the fact that Flex is relatively new, you have to consider that the developers using it will of course be less experienced.

If you give a highly experienced non-apex developer a project, and a brand new Apex developer the same, you may have a very different result.

This sounds like a "fun" competition but due to this, and the short time scale (which definitely gave Apex the advantage), I would not consider this a scientific measure of the "best" solution by any means.

Also, it's not factoring in the fact that the final product of a Flex project will be superior to any web-based solution that requires server round-trips constantly--degrading users' experience and perception of quality significantly. And if you did this experiment with a more realistic project time table, so that Apex loses it's "quick start" advantage, or you start to add more complex business logic and/or graphical elements, you'd see different results.

I'm not saying Apex is an "inferior" solution by any means - it has it's place. But you'll be hard-pressed to find any one-size-fits-all IT solution nowadays, and writing off technologies (especially newer ones such as Flex) would be a mistake.

Morce said...

Hi Dimitri,

I've been using APEx with quite satisfaction for a couple of years. I don't share your enthusiasm because applications don't come out (to me) as easily as I expect, in the end I get beautiful applications but the developing effort is quit heavy.

The new IT chief seems to want "anything" but APEX or Forms, he's proposing a tool by ebdsoft ( that aparently seems to be a "better" APEX.

Do you know of more tools like APEX? I have not found any comparison of simple developing tools to interact with Oracle databases and It's hard for me to believe there are not more.