Saturday, 20 September 2008

Pro Oracle Application Express: My first thoughts

"So why is it called that?" a colleague asked me, looking at the copy of Pro Oracle Application Express lying on my desk. "Do they mean pro as in 'professional' or as in the opposite of anti? Either way it's not a great title, is it?"

I shrugged. I'd been waiting for this book for a week and a year (ordered: September 11, 2007 - received: September 18, 2008) so I wasn't about to quibble about its title. What I was curious about was if, during its year-long gestation period, the authors had kept the book up to date with the rapidly-changing world of Apex - after all, version 3.1 had come out in that time. I searched the index for 3.1's most impressive feature, interactive reports. No luck; not one mention. Not a good sign; had they delayed the book for so long that it was born outdated?

Flicking through the book didn't fill me with confidence either. I spotted a reference to the htmldb_application package. Nothing wrong with that, but I did wonder if it was the authors' preference or maybe a sign of how long ago the book was written that they hadn't used apex_application instead.

Not exactly filled with confidence I settled down to work my way through the first few chapters. I noted that the authors hadn't resorted to that chatty, overly-informal tone that many textbook authors use these days. Good for them; when I'm studying Application Express I don't need to feel like I'm having a beer in the pub with my mates. (When I'm in the pub, if you want to know, I start out talking about football and end up, when I'm thoroughly drunk, swearing I saw a UFO hovering over my local KFC in 2003. Not one mention of Apex.)

I also liked the way the authors approached the subject of Apex, the sequence in which they dealt with its various topics. Too many Oracle textbooks read like freeze-dried reference books; this book, I noted, seemed to have found the right middle point between reference book and those annoying "for dummies" books.

Some topics in the book struck me as a little strange. For instance, there's a bit about VPD, a useful subject for an Oracle developer to be knowledgeable about but not exactly Apex. I didn't mind this though; I'd been planning to read up about application contexts for a while now, so I was grateful for their concise explanations on the subject. On the other hand when I came across 2 pages demonstrating to me that putting double quotes around table names made them case sensitive I must admit that I felt as if I was being talked down to.

Two paragraphs ago I said that I liked the sequence in which the authors lined up their various topics, and that's the truth. However, I wonder if I would have found this book so welcoming if I was a complete Apex newbie. I dunno; maybe not.

So maybe the pro in the title does stand for 'professional', because for someone like me who has dipped their toes in Apex (and therefore is partway between a newbie and an expert) this book is perfectly positioned. Reading back over what I've written so far I suspect that you might think that this is aiming to be a negative review: the complete opposite is the truth. I am very glad that I bought this book - and in some respects I am even pleased I had to wait a year for it. Because already I am using things I am learning from it to fine-tune and improve my application.

But I'm beginning to ramble; I should summarise. What you probably want to know is should you buy the book? Well, if you're a newbie the answer is yes. Be warned though that this book won't replace the resources of the web; you'll still need to work through the Oracle By Example docs - maybe before you dig into this book. If you're not exactly a newbie but still no expert, then I think this book is most definitely for you. (I've just been reading the chapter on the Apex dictionary, for example, and that alone is - almost - worth the cover price.) And if you're an expert? Well, what do I know? - I've only been working with Apex for 6 months. Why do you want to take advice from me? Huh?

4 comments:

John Scott said...

David,

Thanks for the (I believe first) review of the book.

Regarding the title, I didn't really have too much say over that. APress have a section of their books dedicated to the "Pro" area (if you checkout their listings you'll see what I mean), so it seemed natural to just fit with their standards rather than trying to think up a 'spectacular' title.

Regarding the 3.1 specific features section, that was one (there were more) of the chapters that didn't make it into the book, however that chapter is available as a download from the APress website (my understanding is that if you have already bought the book then you should get the download PDF free, although I could be wrong about that as I have no control over that area of things).

The htmldb_application reference certainly slipped under the radar, however it is still perfectly valid to use since the htmldb_ references have not been removed from Apex to retain compatibility. You are correct though, ideally that should be corrected to apex_.

Regarding the tone of the book, thank you for the comment. Initially I struggled for a long time to find something that worked (or rather didn't annoy the heck out of me!), eventually it just made sense to write it as it was in my head and I hope that comes across.

I thought the VPD chapter might stir a few feathers. It is easy to look at that topic and say "But that's a database feature, not an APEX feature". However, I think one of the huge strengths of Apex is that you can leverage the DB features to compliment and enhance your application.

Many people are not even aware of the VPD functionality and would even go so far as to try and implement it themselves (I've seen people try that), even some people who are aware of the VPD functionality might not see practical uses for it in their application. I included it in the book because I absolutely, 100%, think that it's a great DB feature that should be used in production applications where security is a concern. I hope the chapter helps anyone struggling to find ways to incorporate that sort of security.

I also absolutely agree with you that the book should not be used as a substitute for the documentation, the 2-Day developer guide etc.

One thing I always try to stress with the book is that I did not try to detail all the features in Apex (the Apex documentation does a great job of doing that), instead I approached it more from the "I want to do XYZ, how can I do that?".

On a final note, I certainly did not intend the tone of the section on the 'double quotes' to be taken in the way you described. That is actually a situation that I've seen happen and had people confused for a while.

It is almost impossible to write a book that contains things that nobody else knows, so inevitably there will be things that aren't of interest to some people but are of great interest to other people. So my aim was not to write something that you would find every page useful, instead I hope that the book contains at least one (if not more) things that most people buying will be able to take away and use in their day-jobs.

Thanks again for the great review (in the sense you were completely honest). I started out thinking you didn't like the book, but reading between the lines I think you're happy with it?

John.

David Njoku said...

Yes, I'm definitely happy with it.

Monty Latiolais said...

David,

I, too, was surprised to see certain things that are widely celebrated, suspiciously absent from the book. That being said there are tons of useful information in it for me. I am well pleased.

Can I ask you a question?

We're a Forms and Reports shop and am considering going ApEx. Invariably there will be UI things that aren't going to transfer to ApEx (like slide bars, for example) what are some other UI things that users complained about the first time you replaced an existing Forms app with ApEx?

By the way, you're blog's hilarious!

John Scott said...

Monty,

Just as a follow-up to your comment -

>absent from the book

There were a huge number of extra things I could have put into that edition of the book, there comes a point when you have to draw the line and publish ;)

It is an almost insurmountable task to please everyone and I'm sure if the book had been 3 times the size then someone could still easily come up with something that wasn't covered.

My aim with the book wasn't to detail everything possible with APEX, it was to cover certain things but to hopefully cover them in enough detail to make them usable to people.

Hope this clarifies.

John.