Getter interface for Local Storage considered clunky

I have been helping my 9yo daughter with Local Storage, and I have to say it’s not pleasant.

First off, the blocks are huge, and so take up an awful lot of screen real-estate for not doing much.

Second, the tooltip for the block is essentially useless: it just says “call a method from a component”. This is admittedly better than the tooltips that say “TODO: write a tooltip”, but not by much. Needless to say my kid had no idea what it meant, but fortunately it didn’t matter as much.

Much worse is the tooltip for the value block where the output of the getter goes. This was not … written for a kid, to put it politely. She literally could not make head or tail out of it. I was able to parse it, but still couldn’t help her understand what was written. And to be honest, even I did not entirely understand it, but I have enough programming experience and instinct that I could make a correct guess.

On top of this, I’m baffled by the getter interface in its entirety. A setter is a command/statement, but a getter should be an expression. She was trying to put the result of a get inside another expression (an addition), and her instinct was absolutely right: you expect the getter to return a value, so you nest it inside the addition. After all, this is exactly how you would nest the get from, say, a TextInput. But that nesting did not work, and she really had no idea what to do next.

I think this is a case of an implementation detail leaking into the interface. Sure, these may all be implemented as methods (and hence the blandly generic “call a method” tooltip), but there are statement-like methods and expression-like methods, and the distinction is crucial. Otherwise programming with these things is at the very least unnatural…and potentially buggy (separate post).