tecosaur/About.jl

Method effects description confusing when double negatives are used

Closed this issue ยท 4 comments

Great job on this package!

If I can make a suggestion, here's a screenshot you shared on Slack:

image

When consistent has a X next to it, I can mentally parse it as not consistent

  • consistent - might not return or terminate consistently
  • terminates - guaranteed to always terminate

Should it should be the same for no undefined behaviour? When there's a X next to no undefined behaviour, I'm reading this as no no undefined behaviour.

  • no undefined behaviour - may execute undefined behaviour

Is there alternative naming that would help? Maybe safe instead of no undefined? It would read like so:

  • safe behaviour - may execute undefined behaviour

I believe you are choosing the property name to always remain the same across different invocations of this function, and checkbox and the description change based on the value of the property. Is there a way to make that more obvious? Perhaps the checkbox and description should be closer to each other? The checkbox in the middle of the property and the description? Color the description the same as the checkbox but leave the property names gray in color? fwiw, red and green are not so great for people with red green color blindness.

I like that you've chosen formatting and colors that are copy paste friendly, and would like to preserve that feature. I'm just wondering about more effective ways to communicate the same information.

Thanks for the complements, and the issue!

Yea, I can absolutely see how this is confusing. I think it can be pinned on the mix of these two things:

  • Using green for good and red for bad
  • Modelling the effect names after the Core.Compiler.Effects properties

So this issues is essentially a conflict between two things:

  • Making the effect display match Core.Compiler.Effects
  • Making the effect display intuitive to interpret

I'm not sure how this should best be resolved.

Just one note that I missed when initially reading this:

fwiw, red and green are not so great for people with red green color blindness.

I'm well aware ๐Ÿ˜‰

That's why we use StyledStrings and semantic face names ๐Ÿ™‚

# ~/.julia/config/faces.toml
success = { fg = "blue" }
warning = { fg = "cyan", italic = true }
error = { fg = "magenta" }

and you'll get

image

I'll close this issue as this is intentional design.

Well, I'd say the colouring is "no need to fix", and the wording/layout is done in an attempt to match the Core.Compiler.Effects property names, but I'm very much open to tweaking the wording/layout if I can make it clearer while keeping the property name matching ๐Ÿ™‚