Limiting the range to the Basic Multilingual Plane (BMT) (plane 0), this comes to mind:
- From the Geometric Shapes block:
- Triangles:
▷
Instance,▶︎
Local - Diamonds:
◇
Instance,◆
Local - Other similar black/white pairings like circles, squares
- Triangles:
Otherwise, chars that are in the BMP and also part of the standard US keyboard layout:
- The quote marks:
›
Instance,»
Local - Simply:
>
Instance,>>
Local (might cause parsing problems?) - The dagger:
†
Instance,††
Local - Exclamation marks:
¡
Instance,!
Local
Semantics/semiotics:
The doubling as well as the white/black pairing has a semantic logic, since Local is more restricted than Instance (right?). The exclamation mark can be seen as resembling to the letter "i", as well as a warning that the variable is not accessible from outside of the macro (e.g. from embedded AppleScripts).
I'm not a friend of arbitrary chars like æ
and Æ
, because these are actually letters (not symbols) and the letters they are are not related to the initial letters of the subject (I
and L
).
Furthermore the different height of the glyphs makes for an ugly, unbalanced appearance, and we have to live with this decision for a long time
The only esthetically (halfway) pleasing and semantically meaningful Letterlike on the standard layout I could find is the Pound-L: £
Instance, ££
Local
Here a visual representation:
My favorites are the exclamation marks ¡
and !
, and to some degree, the Angle Quotation Marks ›
and »
.
Each of them can be typed with a single keystroke and they are somewhat meaningful, the ¡!
more than the ›»
.
Edit: An afterthought:
The more I think about the proposed ¡!
solution the better it appears to me!
Some facts:
- Extremely easy to type:
!
is Shift-1,¡
is Option-1 - The semantics are OK:
¡
resembles perfectly ani
like in "Instance"!
, well, with a bit of imagination you can se it as lowercasel
with a dot below- Both characters have the semantics of a warning: ‘you can’t access the variables from a script or from the shell!’
- The pragmatics are perfect:
- Local variables will be used way more often than Instance variables. And the sign for the local variable (
!
) is even printed on the keyboard (= easiest access possible) - The (less used) Instance variable sign (
¡
) is not printed on the keyboard but it doesn’t require any more keystrokes either. - Both are single-figure signs, that is they don’t lengthen the variable names like the proposed double signs do.
- Local variables will be used way more often than Instance variables. And the sign for the local variable (
- The esthetics are perfect too:
- Since KM Editor is using a proportional font, the
!
as well as the¡
are really thin, that is, non-obtrusive.
- Since KM Editor is using a proportional font, the
In fact, the ¡!
solution seems so good to me, that I’m almost sure that there is something in the way that prevented Peter from choosing it right from the start (referring to the KM8 update). Maybe a parsing problem in the context of calculations?
BTW, I wouldn’t care about the contradiction to the usual semantics of the !
as ‘not’. It is clear in the context that this is not an operator but just a Sigil.
The underplaying problem of all that is that KM’s variables are global and persistent by default.
KM variables should have been always, IMO, macro-local by default, with an option to create global/persistent variables when needed. But, as far as I know, Peter is not the original author of the program, and, of course changing this now would break a considerable part of all existing macros. So we have to live with that.
In future macros (if handled correctly by the author) the majority of variables will be local, and that’s why I think it is really important to find a decent, non-obtrusive solution.