« Session Reviews: SML301 & SML203 | Main| McCain Clinton 2008 »

@IfError Obsolete in R7

QuickImage Category Show-n-Tell Thursday

When R6 came out, there were three new @Functions that I was really excited about.

There were a bunch of others, but these three in particular made me very happy. These were, (in order of my excitement level):

  1. @ThisValue
  2. @ThisName
  3. @IfError

@ThisValue and @ThisName made creating generic formulas a breeze, particularly with input translation & input validation. @IfError helped, as you can probably guess, to make error-trapping & handling a whole lot easier. From the day I installed R6 I started using @IfError in almost every piece of code I wrote. And since R6 came out, I've written a lot of code.

Today, while reading through the "Whats New in Domino Designer 7" area of Designer Help, I came across this little nugget:

FORMULA LANGUAGE


@IfError

Returns a null string ("") or the value of an alternative statement if a statement returns an error.

Note This @function is new with Release 6.

Note This @command is obsolete in Release 7.

Syntax
@IfError( statement1 ; statement2 )

...

(Note: You can read the full help here.

In case you missed it, allow me to repeat (emphasis mine):

Note This @command is obsolete in Release 7.

Now, I don't want to go off on a rant, but...wait a minute, I absolutely want to rant about this.

<rant>
"This @command is obsolete in Release 7." - WTF? They released a totally cool thing, and then made it obsolete in the next major release? Yes, I know how to work around this, but that's not the point. There were known issues with this @Formula (attention IBM documentation folks: This is NOT an @Command), and they were documented. Now, I understand how difficult it can be to fix a bug -especially those that involve mixed data types; but obsoleting the code instead of fixing it is absolutely unacceptable.

This isn't like when a small ISV screws up a minor product. This is friggen IBM! This is a HUGE, IMPORTANT product, with a MASSIVE installed customer base. Open up the checkbook, hire a few more developers, and FIX THE ISSUE.

As I stated earlier, I know how to work around this problem. I can very easily write error-trapping & handling code that doesn't use @IfError; but I shouldn't have to.

I can go through every application I've worked on since the release of R6 and modify every formula where I used @IfError; but I shouldn't have to.

I can explain to my boss and every one of my customers why I'm going to have to bill them for this special "maintenance work"; but I shouldn't have to.

IBM, please stop acting like that other major software company (you know, the folks in Redmond whose concern for their customers is best measured in micro-givashits). Pull your head out and FIX THE ISSUE.

Backwards compatible, my ass.
</rant>

-Devin

Comments

Gravatar Image1 - nice pic

Gravatar Image2 - Thanks amigo. I thought it was appropriate.
-Devin.

Gravatar Image3 - I really cannot understand what the technical difference is by implementing @IfError or @If(@IsError. In fact, this should be the exact same code in background.

@IfError(Val; "Nothing")
@If(@IsError(Val); "Nothing"; Val)


Gravatar Image4 - @Thomas
There's a major difference in your code: you need 'Val' twice!
I also use @iferror a lot, mostly in combination with @dblookup:
@iferror(@dblookup(...);"")
And I do regret it being 'banned' !

Search

Wowsers! A Tag Cloud!

Links

MiscLinks