Genii Weblog
"Just because" is a lousy answer
Thu 4 Dec 2003, 11:26 PM
Tweetby Ben Langhinrichs
Sometimes it is clear why things are the way they are. Sometimes it is not. Reading through the Gold forums, I hear a lot of complaints about how things are, and a lot of plaintive "But why doesn't..." or "But why does...". Often, the only answer is "Just because". A good example might be GetDocumentByUNID, which does not return Nothing if the universal id is invalid, but instead raises an error, even though other similar methods such as GetDocumentByKey do return Nothing if not found. Raising an error might make sense in Java or C++, but in LotusScript, it is bloody annoying, and at the very least, the behavior should be consistent, not to mention clear in the documentation. So people ask and ask and ask, but the answer is still "Just because".
Well, in my smug and self-satisfied way, I assume that our products do not suffer from such annoying "features". So, it was with a great deal of chagrin and embarrassment that I sat on the phone with somebody a couple of days ago explaining why our Midas Rich Text LSX can connect to a document using a note id, but not a universal id. "It doesn't make sense", he said, "since I am much more likely to have the universal id than the note id, especially if I get it from a URL or something like that. Why can't you just use a universal id if that is what you have?"
Ouch! Double yikes with a cherry on top! The only answer would seem to be "Just because", and I realize what a horrible answer that is.
So, even though Midas came out in the summer of 1997, and even though we have over 850 thousand licensed users in 43 countries, and even though I am supposedly "THE acknowledged expert on Notes Rich Text", I must contritely admit that I never really thought about what a total nuisance this limitation would present, and have no idea how many developers have shaken their heads over the stupidity of the limitation. Well, at least they won't have to live with it much longer. In Version 3.21, only about fifty or sixty releases into the lifespan of the product, I have modified the Connect method to accept a universal id instead of a note id, if that is what you want to use.
How much time did this radical change take? How much effort did it take to make people's lives easier when doing the most basic function possible in Midas, connecting to a rich text field? How long did I have to struggle to fit it into a model where it had never been before, including modifying the documentation and writing a release note, and then writing this note of contrition?
Two hours.
Copyright © 2003 Genii Software Ltd.
What has been said:
78.1. Jan Van Puyvelde (12/05/2003 12:00 AM)
I also had an issue with GetDocumentByUNID, but I don't know it's the same.
It seemed that method returned deletion stubs. When Accessing a field resulted in an error.
Is this the same problem ?
Now I test for doc.NoteID = "". This will return True for the invalid docs.
78.2. Tom Duff (12/05/2003 06:48 AM)
Great post, Ben... and so true.