K
Kelsey Bjarnason
[snips]
I might not be, either... but I'm not going to be overly annoyed, either,
for the simple reason that it's a screen, not a permanent or even
semi-permanent record, so if it gets zapped, well, it was a scratch in the
first place, what the heck did I expect, especially when running an app
with unknown outputs smack bang in the middle of the scratch area?
If I did that and it, say, dumped crap into my kernel files, I'd be
_really_ annoyed; those are _not_ scratch data.
Indeed, in the ideal world, if you need to "clear the screen", do it in a
"window", even where that window is, itself, the full screen - then dump
the original contents back.
I just find the notion of getting upset that an app clears a scratch area
about as silly as complaining that it creates temp files in the temp file
dir. It's a transitory medium, and a lot of apps do unpredictable things
with it - not just clearing screens; could be simply dumping volumes of
data out fast enough to flush the scrollback buffer before you can kill
it. Didn't clear the screen, but the data's still gone. Relying on the
screen as a storage medium, then complaining when the storage gets nuked,
is just damnfoolishness.
My program may or may not be that important - that's for you to decide.
And you did decide it was that important, by running it in the middle of
your storage area. In fact, in doing so, you demonstrated that your
on-screen data has absolutely _zero_ value. Why? Simple: the app you're
complaining about is clearing the screen. If you _knew_ it was going to
do this, you'd have run it in another console, or saved your existing data
somewhere, etc.
Instead, the clear screen took you by surprise. This means you have no
idea what the output of the application is, whether it clears the screen,
locks up the computer, floods the scrollback buffers, etc. Doesn't matter
the actual details, the fact that it's taking you by surprise means you
simply _do not know_. If you don't know what the output is, but you're
running it in the middle of your data store, then you, yourself, are, by
that very action, defining the value of your data in the store. The value
is zero. If it were anything else, you wouldn't be running unknown
applications in the middle of it.
In the case of some silly-ass little app that does nothing more than
asking for a number, no, there's not much point. That doesn't mean that
there aren't apps where the author feels there _is_ a point in clearing
the screen. Or dumping enormous quantities of data. Or whatever.
I understand your key concept, that apps should be "well behaved", and I,
at least, generally try to achieve that end myself. On the other hand,
having been bitten once or twice by exactly this sort of thing - buffer
floods, screen clears, etc - I simply ask myself if what I've already got
matters. If it doesn't, run the app. If it does, and I run the app and
lose the data, I've got nobody to blame but myself.
Ok, so my screen is a scratchpad, and I shouldn't depend on any
information on it sticking around for long. But it's *my* scratchpad,
and if a program clears it for no good reason, I'm not going to be
pleased.
I might not be, either... but I'm not going to be overly annoyed, either,
for the simple reason that it's a screen, not a permanent or even
semi-permanent record, so if it gets zapped, well, it was a scratch in the
first place, what the heck did I expect, especially when running an app
with unknown outputs smack bang in the middle of the scratch area?
If I did that and it, say, dumped crap into my kernel files, I'd be
_really_ annoyed; those are _not_ scratch data.
If your program needs to take control of the entire screen (say, it's a
text editor), on many systems it can use a system-specific library that
allows it to save and restore the current screen contents.
Indeed, in the ideal world, if you need to "clear the screen", do it in a
"window", even where that window is, itself, the full screen - then dump
the original contents back.
I just find the notion of getting upset that an app clears a scratch area
about as silly as complaining that it creates temp files in the temp file
dir. It's a transitory medium, and a lot of apps do unpredictable things
with it - not just clearing screens; could be simply dumping volumes of
data out fast enough to flush the scrollback buffer before you can kill
it. Didn't clear the screen, but the data's still gone. Relying on the
screen as a storage medium, then complaining when the storage gets nuked,
is just damnfoolishness.
What's on my screen is probably the output of the last program (or
programs) I ran. Your own program's output isn't so important that you
need to erase *my* (possibly unimportant) data.
My program may or may not be that important - that's for you to decide.
And you did decide it was that important, by running it in the middle of
your storage area. In fact, in doing so, you demonstrated that your
on-screen data has absolutely _zero_ value. Why? Simple: the app you're
complaining about is clearing the screen. If you _knew_ it was going to
do this, you'd have run it in another console, or saved your existing data
somewhere, etc.
Instead, the clear screen took you by surprise. This means you have no
idea what the output of the application is, whether it clears the screen,
locks up the computer, floods the scrollback buffers, etc. Doesn't matter
the actual details, the fact that it's taking you by surprise means you
simply _do not know_. If you don't know what the output is, but you're
running it in the middle of your data store, then you, yourself, are, by
that very action, defining the value of your data in the store. The value
is zero. If it were anything else, you wouldn't be running unknown
applications in the middle of it.
Unless you can think of a good reason why any program should need to
clear the screen before printing "Please enter a number"?
In the case of some silly-ass little app that does nothing more than
asking for a number, no, there's not much point. That doesn't mean that
there aren't apps where the author feels there _is_ a point in clearing
the screen. Or dumping enormous quantities of data. Or whatever.
I understand your key concept, that apps should be "well behaved", and I,
at least, generally try to achieve that end myself. On the other hand,
having been bitten once or twice by exactly this sort of thing - buffer
floods, screen clears, etc - I simply ask myself if what I've already got
matters. If it doesn't, run the app. If it does, and I run the app and
lose the data, I've got nobody to blame but myself.