Stephan Bergmann wrote:
On 02/12/10 09:30, Rich wrote:
speaking as a user here, not a coder - if software can continue with operating, it should. yes, it should warn me, but it should run as long as possible, either allowing me to save the document, copy data out of it or whatever.

The irony is, once you have hit a programming error, you can no longer have confidence in the program's behavior. It could happen that the data you still manage to save is subtly corrupted, so subtly that you do not notice immediately. This is indeed a dilemma, and there is no golden way out. That said, in the event of a crash (which would include the abort from an assertion in a non-product build) OOo already tries to save your open documents (and it appears to be somewhat effective at it).

i'd like to point out one thing i've noticed in other projects with user vs developer mentality. if a user reports program closing, it is a _crash_ for them. you might call that "assert", "controlled quit" - it does not matter. at all. to the user, software crashed. and that is the last thing i want from any software, especially one i rely some of my most important data ever to.

Sure, nobody wants to suffer the consequences of programming errors. However, the software industry happens to be in a state where errors are a frequent reality. The question, then, is how best to carry on once a programming error has been encountered (if the software has the luxury at all to even notice).

Fail fast (abort) has the potential to cause the least data loss and the least confusion (the program does not continue running in an uncontrolled state, corrupting the user's data or giving wrong answers to the user).

yes, that i can totally agree to. so we should distinguish two things here (which you already did in the previous email). 1. a problem, caused by outside data - opening a corrupted document, image or whatever - should never ever result in closure;

2. a problem "inside" code.

yeah, i understand that often figuring out which one has happened is hard or impossible, but hey :)

so we're interested in second category only here. still, i'd argue that software should attempt to let me revive as much of data as possible... it should not carry on ignoring the error, of course. it should popup some message, tell me to save my work and restart it. maybe it should add some "nagging" bar to inform me about it all the time and motivate to restart it.

what i have encountered in oo.org several times - i'm working on 4 or 5 documents at the same time, let's say 3 text documents and 2 presentations. if suddenly a problem arises in presentation code, i definitely do not want it to close and lose my changes to the text documents. i want to be notified and given a chance to check them.

while automatic saving for recovery is useful, it is also not easy enough to use and efficient :

1. it seems to ignore the fact that i have saved the document and offers it for restoring as well. that takes more time. 2. after all those files are restored i have to manually check each for differences from the manually saved versions (it is possible that either manually saved or automatically saved version is newer). again, this is cumbersome or near impossible for some types of documents. 3. if one of the input files triggered the failure, oo.org will crash again upon restoring them. yes, theoretically i can recover them manually from profile and remove, or i could hit cancel at first and then save files when prompted (but i am never sure when i will be offered to save them, and there is no way for user to know that there will be such a chance - huge usability problem, imho)

while problems with recovery are semi-offtopic, i hope they help to highlight reasons why i'd prefer a chance to salvage the data myself, especially when working on many files of different types.

i completely understand the argument about masked failures and data corruption risks. and i can't agree with them enough :) i'm not arguing against being in-your-face about such problems - it's just that i've been burned by such problems with oo.org and other software before, and lost data (or time :) )

Carry on regardless (ignoring the detection that the program has reached an uncontrolled state; what effectively happens when assertions are disabled in production systems) can be considered unacceptable behavior. It potentially leads to corrupting the user's data or giving wrong answers to the user, with the user not being aware that those answers are wrong.

Working around the detected *programming error* is probably the best for the user, but, as I outlined in my other response, nothing you can expect to happen in OOo in the near future (probably as unlikely as OOo not having any program errors to begin with).

a short summary - i'd prefer working around it only for as long as it would take for me to decide what data i want out and get it. whether saving, copying text or even taking a screenshot.

-Stephan
--
 Rich

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to