Monday, May 04, 2009

Collaborate 09 - Monday

As usual I woke up at 4 am, but I'm still doing good.

Today I started slow... I didn't follow any sessions before noon.

My first session of the day was "Running Oracle in the Amazon EC2 Cloud" by Tony Jedlinski.
Tony described how he created his Oracle Enterprise Linux instance with Oracle Database XE on Amazon EC2. His presentation was based on the white paper of Justin Lokitz, but Tony extended it with the new Amazon UI. I liked the presentation as he brought the message at a nice peace and I think most of the people knew how to get started now.
We have been playing with Oracle and APEX on Amazon too and so far everything went well. We are not to far off to actually use it for production hosting. Another tip I can say is that next to the UI Amazon provides there is also a nice plugin for Firefox called Elasticfox.

The next session I attended was "Oracle Application Express 3.2 Forms Conversion" by David Peake. I've seen that presentation many times now, but I always find it interesting to see how the public reacts to the presentation, which questions they have etc.
David gave a quick intro into APEX as some people where completely new to it and then started to talk about the conversion tool. He also demoed it of course!

I really looked forward to my last session of the day: "An Architectural Review of Application Express" by Dr. Paul Dorsey. I have a lot of respect for Paul, he's a very knowledgeable guy in different areas especially PL/SQL, Forms and JDeveloper. So I wondered what he thought about APEX. Paul is also an advocate of thick databases and he developed a product called BRIM to support that idea. APEX is living in the database, so that is inline with his view of thick databases. Yesterday I was sitting next to him at dinner and we had a nice talk about a project he's currently doing in Ethiopia. There he has the challenge of delivering applications with very limited bandwidth. His BRIM product is much lighter (transferring data) than any other development tool, including APEX, so I knew a bit more about his background.


I did enjoy the talk and he raised some very interesting points, but on some things I have a different view on. My impression was he reviewed APEX as is for ex. he said that an APEX page can only be linked to one table, which is not completely true. If you base the standard process on a view and you use instead of triggers as I described here, you can support multiple tables. So Paul looked at everything APEX allows you to do with the wizards and how APEX is behaving out of the box, but nothing more. So in that respect I can understand what he was saying. But I see different levels of people using APEX:

  • Level 1: You just use the wizard in APEX and are able to be productive with it
  • Level 2: You know also the Oracle database including SQL and PL/SQL and include that knowledge into you APEX applications (APEX is living inside the database so you can use all the database features)
  • Level 3: You know also more about web development like javascript and css and use that in your APEX applications
  • Level 4: You know also web 2.0 and use AJAX, jquery, json and other plugins to get exactly what you want
Paul talked about staying in the APEX sandbox (level 1) and don't try to do other things with it. Of course it's true that you need to have (other) knowledge to achieve what the wizard is not doing for you, but I don't agree you should stay in the sandbox. APEX has some nice API's you can use, so why not doing it? If you first look at APEX you might not know about them, I agree with that, but if you follow training and/or you ask more experienced APEX people to coach you, it doesn't take that long to know how to achieve other things.

Although Paul was sometimes very critical on APEX, he didn't flame it. He even said he liked APEX and it's a great tool in some cases, but does not full-fill in others, which I can agree with. You need to use the tool that fits within the projects. And he made a very nice quote at the end of his presentation: "APEX is frequently used to prototype or “get something out the door quickly” until the “real” application is built using some enterprise-level took architecture. APEX systems are typically completed in a few months and two years later, people are still waiting for the “real” application to work."

Paul is doing this presentation again at ODTUG this year, so I'm interested to know other people's reactions.

After the presentation I went to the Exhibition hall and the party to get some drinks, food and had talks with some nice people like Sue Harper, OracleNerd (Ched) and his wife, David Peake, Tony Jedlinski, Jeremy Sneyder and many others...

13 comments:

Anonymous said...

Hi Dmitri,

I think you are being very diplomatic about this guy!

Without being too defensive about Apex...oh damnit....I've changed my mind. What is this guy on, sounds like he wants to try using Apex before offering his expert opinion.

My experience in the last 3.5 years of developing Apex apps for clients (including some large blue chips), is that those Apex applications are there to stay. They work well, they scale, and the clients just keep coming back to Apex when looking at new projects.

Rant over.

Paul Brookes.

Monty Latiolais said...

Paul,

I used to think that Dr. Dorsey, was too quick to dismiss ApEx, but as I read more and more stuff from him on the list-servs, I've changed my opinion. He's not bashful when it comes to discussing what he views as weaknesses, but overall I think he sees an ongoing role for ApEx - certainly until something better comes along. He may never end up being the biggest proponent, but I don't see him being the biggest detractor either.

I'm looking forward to hearing his presentation at ODTUG.

Monty

Unknown said...

I liked your levels of capability. I would expand them slightly:

• Level 1: Knowledgeable and productive with the APEX wizards.
• Level 2: Knowledgeable of the Oracle database including SQL and PL/SQL and include that capability into APEX applications.
o Level 2.1: Skilled in organizing business logic into PL/SQL packages.
o Level 2.2: Skilled in organizing business logic using PL/SQL Object-Oriented capabilities.
• Level 3: Able to include web development technologies JavaScript and CSS.
o Level 3.1: Skilled in adding and customizing APEX HTML templates.
o Level 3.2: Able to include web 2.0 features using AJAX, jquery, json and other plug-ins.

Louis-Guillaume said...

Hi Dimitri,

I like your resume of the session "An Architectural Review of Application Express".

It's nice to see the different levels of APEX developers.

Keep posting! :)

Anonymous said...

stupid

Mark Lancaster said...

Hi Dimitri

I agree with your reference to different levels of use of Apex.

Oracle initially pitched Apex to the public as a "quick-win" solution, something to replace spreadsheets and access databases.

It sounds like Dr Paul Dorsey is just endorsing the Oracle message.
Whilst this is true, it can be much, much more.

The reality is, Apex uses PL/SQL and the PL/SQL Web toolkit, so anything you can do in PL/SQL, you can do with Apex. If PL/SQL is not enough, you can use PL/SQL wrappers or web-services over Java or C as well.

You can get so far using the built-in wizards, and if you want to go further, it's just up to your imagination.

As far as "enterprise" vs "quick-win" goes, that is a project decision.
Are you building an exterprise application or not?
If you are, you adjust your time frames, development methodology and interface standards accordingly.

The real question for enterprise applications should be "Is Apex the appropriate tool to use, or are there other more suitable tools?".

Regards

Mark

oraclenerd said...

chet not ched. I should be glad you didn't call me "shit" though. ;)

Anonymous said...

so you say APEX is too hard for beginners to learn?

Anonymous said...

yay he says that it can only do some simple things but to do more u need 2 be a god

mabe you should look at ruby or java? they are more powerful tool

Dimitri Gielis said...

No not at all. APEX is an excellent tool for both business users and developers and it has a very low learning curve. You are basically able to create an application within the same day you started to learn.

However I said that you might not know about the APEX API's and the more advanced techniques from day 1.

So I'm not sure how you could interpret my words so you conclude: "so you say APEX is too hard for beginners to learn?"

Anonymous said...

so u admit the api makes it hard to learn?

I see it clear, u say apex is not easy?

Anonymous said...

ok thanks for clarifing

i will look at ruby

Anonymous said...

hi dimitri,

paul made the comment that the Apex documentation wasn't very good. Has he looked at his own brim tool? The documentation is terrible even the videos dont work.

he should make sure his own stuff is better before calling out the 'competition'!!!!!