На самом деле «лучшего» не существует - но set
имеет преимущество в присвоении имени переменной, которая сама является переменной (как вы показали в своем примере).
Я смущен вашей путаницей в последнем примере, хотя ...... если вы хотите, чтобы 20 был назначен глобалу с именем gv, тогда вы должны поставить галочку перед gv, иначе `gv set 20;
и наоборот, если вы хотите, чтобы 20 был назначен символу / имени, содержащемуся в gv, тогда не используйте обратный тик, он же gv set 20;
Последнее замечание: вы также можете создавать глобальные переменные вкорневые каталоги / пространства имен с использованием одного двоеточия
q){.this.that:1;}[]
q)
q).this
| ::
that| 1