@WTFE said in UX: It's time for The Talk:
Or even better just make setting a command! set <property> <target> <foo>
. And to read it get <source> <property>
and to read it in code get(<source>, <property>)
and so on.
For your command there, is property
allowed to have spaces? Is target
? If they are, am I required to put quotes around them? That's not going to be super-intuitive to a lot of non-coders (or at least, people who aren't used to UNIX shells) either.
The problem is that computers aren't people. To us, if you have "Captain Aardvark" as a character, and want to set the 'approved' value to 'true' on Cap, set Captain Aardvark approved true
makes sense. But the computer's going to see that as setting Aardvark
to approved true
on the character Captain
, which may not work so well for your chargen approval code.
So you go, well, I'll separate the property
and target
... let's do set <target>=<property> <foo>
. But now what if you wanted a space in that property? Well, let's separate THOSE too, and... hey, hang on, now we have set <target>=<property>:<foo>
, which is the actual MUSH syntax (minus the @ on the front).
It's a terrible syntax, but it arises to solve genuine parser problems.
Now, there's probably better methods to do this than stateless single-line commands. You could have, for instance:
edit Captain Aardvark
set approved to true
set approver Sparks
show
save
done
...which would be like opening a document, tweaking things, and then saving it
Part of the problem arises with MUSH, where commands and code are identical; you want @set Captain Aardvark=approved:true
because it needs to be a command usable in code, not just for a user. That interactive session might be great for a user, but it's not so hot for code that's basically a glorified batch script.
With newer stuff like Ares or Evennia, the code (in Ruby or Python) and the commands (actually entered by the user) are wildly different. That's where we get freedom to come up with wholly new commands and interaction models for even the lowest-level stuff. The problem is, the hobby is still made up of folks who are used to doing things a certain way, and many of us get grumpy when we discover that, hey, it's not page WTFE=How are you doing?
anymore, but instead, say, tell WTFE Hey, how are you doing?
or tell "Captain Aardvark" Hey, were you up for that scene?
Heck, I've seen people get grumpy at Arx for requiring commas in the mail recipient list, when @mail/quick is otherwise more or less identical in syntax to MUX2.