Tweak the variable monitors in Snap!, I'm suggesting this because it looks uncomfortable when I see how they look like, so I think these are the tweaks:
Make so that the variable monitors scale based on the stage scale, currently it stays in one size even you've scaled the stage.
Reduce the update time for variable monitors to a frequent value. Currently it updates every 0.5 seconds.
Remove the rounding errors found when using large numbers, like 1234567890130. Currently variable monitors with value 1234567890130 displays as 1234567890129.9998.
So these are the tweaks I've found so far. Any ideas?
Their scale also depend on the Zoom blocks setting.
A better alternative is to use speech bubbles (like the SAY block). You can attach them inside a forever loop and it will constantly update.
I have more:
The monitors are only available for some primitives, you can't create your own custom monitors from reporters, you can only use variables if you want custom monitors.
Their layering cannot be controlled and is behind sprites that are at the topmost layer (I already know this was discussed before)
I agree with your first point about the scale. When using show variable [ V], you can end up with monitors that go below the stage, and it's impossible to get rid of them.
From what I know, variable monitors were made to, as the name suggests, monitor a variable for debugging, not to be used as a (reliable) display in projects. If you want to reliably display a value, use the write block in the pen category.
This can also be fixed with the write block.
Or as other people have said, use the say block.
One common excuse for variable monitors not updating immediately id for performance, since constantly updating would slow down the editor. I genuinely don't buy that, since tables, which have more values, update immediately. It shouldn't be more expensive to update a single value than 20 different values. Not to mention, it could even be optimized to only update the watchers whenever the variable value is changed. For example, setting a variable could tell the watcher to update on the next render frame. That way it's not updating immediately after every single variable change, but instead whenever the rest of the screen renders.
Oh, sorry about that. I do still think it's better to use something like the say block or the write block, if you're trying to display info. For debugging, I prefer monitors.